You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/12/29 14:12:53 UTC

[groovy] branch refine-groovydoc updated (f2a4fc8 -> 9557566)

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a change to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git.


    from f2a4fc8  Extract javadoc via traversing AST
     new 728b978  Update git repository link in the README
     new 59c8f14  GROOVY-8928: Bump jackson-dataformat-yaml and jackson-databind to 2.9.8
     new 66aadb2  GROOVY-8777/GROOVY-8776: @MapConstructor on inner class in conjunction with @CompileStatic
     new 141c1bf  Trivial refactoring: replace with direct class object access
     new 20e7c41  Trivial refactoring: remove unnecessary condition
     new 03a5c97  Trivial refactoring: remove unused imports
     new e96f20b  GROOVY-8914: Error compiling static inner class that extends some other (static) inner class
     new 38e2795  GROOVY-7233: Pre-factor some non-consequential changes
     new f600178  GROOVY-7233: Pre-factor (fix merge glitch)
     new 008509f  build tweak: move test to use a slightly earlier phase to avoid stray class files from being produced
     new 6acd8e0  GROOVY-8931: AstNodeToScriptVisitor - wrong "extends/implements" order
     new c7060d1  GROOVY-8931: AstNodeToScriptVisitor - wrong "extends/implements" order (tweak test)
     new 254c7c8  GROOVY-8936: NPE occurred when `null` message passed into `MissingPropertyException`(closes #844)
     new 61ecb74  GROOVY-8937: Bump antlr to 4.7.2
     new 5422c81  GROOVY-8935: Provide a @NullCheck AST transformation similar to Lombok's NonNull (closes #845)
     new f4ad23e  GROOVY-7233: Configurable Access Modifier for Log AST Transformations (closes #843)
     new e305312  revert to gradle 4.10.3 to check impact on CI server
     new f40f76a  GROOVY-8843: Fix illegal reflective access within o.c.g.vmplugin.v7.Java7 (closes #811)
     new 01b4dba  GROOVY-8939: Add methods in StringGroovyMethods for better API Usage (closes #846)
     new a924cfd  cleanup/remove @author tags as per Apache recommended practices for groovy-ant, groovy-console, groovy-groovydoc
     new 25a8365  cleanup/remove @author tags as per Apache recommended practices for groovy-groovysh, groovy-macro
     new 77ab47e  Fix typos (closes #842)
     new b3c9aff  cleanup/remove @author tags as per Apache recommended practices for groovy-servlet, groovy-sql
     new 86f0aae  fix typo
     new 8a176f2  cleanup/remove @author tags as per Apache recommended practices for groovy-test, groovy-xml, parser-antlr4
     new 982c8b1  cleanup/remove @author tags as per Apache recommended practices for groovy-nio, groovy-swing, groovy-templates
     new da2aabb  cleanup/remove @author tags as per Apache recommended practices for groovy-swing (typo)
     new 9557566  cleanup/remove @author tags as per Apache recommended practices for groovy-bsf, groovy-jmx, groovy-json, groovy-jsr223

The 28 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README.adoc                                        |   2 +-
 build.gradle                                       |  12 +-
 gradle.properties                                  |   2 +-
 gradle/pomconfigurer.gradle                        | 114 ++++-
 gradle/wrapper/gradle-wrapper.jar                  | Bin 56177 -> 55741 bytes
 gradle/wrapper/gradle-wrapper.properties           |   2 +-
 gradlew                                            |   2 +-
 gradlew.bat                                        |   2 +-
 .../groovy/groovy/lang/GroovyRuntimeException.java |   7 +-
 src/main/groovy/groovy/lang/GroovyShell.java       |   3 +-
 .../groovy/lang/MissingPropertyException.java      |   3 +
 src/main/groovy/groovy/transform/NullCheck.java    |  83 ++++
 .../transform/options/DefaultPropertyHandler.java  |   8 +-
 src/main/groovy/groovy/util/logging/Commons.java   |  19 +-
 src/main/groovy/groovy/util/logging/Log.java       |  24 +-
 src/main/groovy/groovy/util/logging/Log4j.java     |  20 +-
 src/main/groovy/groovy/util/logging/Log4j2.java    |  18 +-
 src/main/groovy/groovy/util/logging/Slf4j.java     |  20 +-
 .../codehaus/groovy/ast/tools/GeneralUtils.java    |   4 +
 .../classgen/InnerClassCompletionVisitor.java      |  11 +-
 .../groovy/runtime/StringGroovyMethods.java        | 516 +++++++++++++++++++++
 .../groovy/transform/LogASTTransformation.java     |  85 +++-
 .../transform/NullCheckASTTransformation.java      |  92 ++++
 .../transform/SortableASTTransformation.java       |   1 -
 .../transform/ToStringASTTransformation.java       |   1 -
 .../transform/stc/StaticTypeCheckingVisitor.java   |   4 +-
 .../org/codehaus/groovy/vmplugin/v7/Java7.java     |  67 +--
 .../org/codehaus/groovy/vmplugin/v9/Java9.java     |  66 ++-
 src/spec/doc/design-pattern-composite.adoc         |   2 +-
 src/test/gls/innerClass/InnerClassTest.groovy      |  21 +
 src/test/groovy/GroovyMethodsTest.groovy           | 334 +++++++++++++
 src/test/groovy/bugs/ByteIndexBug.groovy           |   3 -
 .../lang/MissingPropertyExceptionTest.java}        |  62 +--
 src/test/groovy/util/logging/CommonsTest.groovy    |  84 +++-
 src/test/groovy/util/logging/Log4j2Test.groovy     |  89 +++-
 src/test/groovy/util/logging/Log4jTest.groovy      |  96 +++-
 src/test/groovy/util/logging/LogTest.groovy        | 107 ++++-
 src/test/groovy/util/logging/Slf4jTest.groovy      |  75 ++-
 src/test/org/codehaus/groovy/dummy/FooHandler.java |   3 -
 .../transform/MapConstructorTransformTest.groovy   |  43 ++
 .../main/groovy/groovy/util/FileNameFinder.groovy  |   3 -
 .../src/main/java/groovy/util/AntBuilder.java      |   5 -
 .../groovy/ant/AntProjectPropertiesDelegate.java   |   3 -
 .../codehaus/groovy/ant/CompileTaskSupport.java    |   2 -
 .../java/org/codehaus/groovy/ant/FileIterator.java |   2 -
 .../java/org/codehaus/groovy/ant/FileScanner.java  |   3 -
 .../groovy/ant/FileSystemCompilerFacade.java       |   2 -
 .../org/codehaus/groovy/ant/GenerateStubsTask.java |   2 -
 .../java/org/codehaus/groovy/ant/GroovycTask.java  |   2 -
 .../org/codehaus/groovy/ant/LoggingHelper.java     |   2 -
 .../org/codehaus/groovy/ant/RootLoaderRef.java     |   1 -
 .../org/codehaus/groovy/ant/UberCompileTask.java   |  25 +-
 .../groovy/org/codehaus/groovy/ant/GroovyTest.java |   2 -
 .../org/codehaus/groovy/ant/GroovycTest.java       |   5 +-
 .../codehaus/groovy/bsf/CachingGroovyEngine.java   |   2 -
 .../java/org/codehaus/groovy/bsf/GroovyEngine.java |   7 +-
 .../test/java/org/codehaus/groovy/bsf/BSFTest.java |   5 +-
 .../java/org/codehaus/groovy/bsf/CacheBSFTest.java |   2 -
 .../src/main/groovy/groovy/inspect/TextNode.groovy |   2 -
 .../groovy/groovy/inspect/TextTreeNodeMaker.groovy |   2 -
 .../inspect/swingui/AstNodeToScriptAdapter.groovy  |   4 +-
 .../groovy/inspect/swingui/ObjectBrowser.groovy    | 123 ++---
 .../inspect/swingui/ScriptToTreeNodeAdapter.groovy |   3 -
 .../main/groovy/groovy/ui/ConsoleIvyPlugin.groovy  |   3 -
 .../src/main/groovy/groovy/ui/ConsoleSupport.java  |   2 -
 .../main/groovy/groovy/ui/ConsoleTextEditor.java   |   5 -
 .../groovy/groovy/ui/text/FindReplaceUtility.java  |   3 -
 .../main/groovy/groovy/ui/text/GroovyFilter.java   |   4 -
 .../ui/text/StructuredSyntaxDocumentFilter.java    |   4 -
 .../groovy/ui/text/StructuredSyntaxHandler.java    |   3 -
 .../groovy/ui/text/StructuredSyntaxResources.java  |   2 -
 .../src/main/groovy/groovy/ui/text/TextEditor.java |   2 -
 .../groovy/groovy/ui/text/TextUndoManager.java     |   2 -
 .../swingui/AstNodeToScriptAdapterTest.groovy      |   8 +-
 .../swingui/ScriptToTreeNodeAdapterTest.groovy     |   2 -
 .../ui/HistoryRecordGetTextToRunTests.groovy       |   4 -
 .../groovy/groovy/ui/text/GroovyFilterTests.groovy |   3 -
 .../groovy/tools/groovydoc/GroovyDocTool.java      |   3 -
 .../groovy-groovydoc/src/spec/doc/groovydoc.adoc   |   2 -
 .../groovy/tools/groovydoc/CustomGroovyDoc.java    |   2 -
 .../groovy/tools/groovydoc/GroovyDocTest.java      |   3 -
 .../tools/groovydoc/GroovyRootDocBuilderTest.java  |   3 -
 .../groovydoc/SimpleGroovyRootDocTests.groovy      |   3 -
 .../groovy/tools/shell/BufferManager.groovy        |   2 -
 .../org/codehaus/groovy/tools/shell/Command.groovy |   2 -
 .../groovy/tools/shell/CommandAlias.groovy         |   2 -
 .../groovy/tools/shell/CommandException.groovy     |   2 -
 .../groovy/tools/shell/CommandRegistry.groovy      |   2 -
 .../groovy/tools/shell/CommandSupport.groovy       |   2 -
 .../tools/shell/ComplexCommandSupport.groovy       |   2 -
 .../groovy/tools/shell/ExitNotification.groovy     |   2 -
 .../codehaus/groovy/tools/shell/Groovysh.groovy    |   2 -
 .../tools/shell/InteractiveShellRunner.groovy      |   4 -
 .../codehaus/groovy/tools/shell/Interpreter.groovy |   2 -
 .../org/codehaus/groovy/tools/shell/Parser.groovy  |   2 -
 .../org/codehaus/groovy/tools/shell/Shell.groovy   |   2 -
 .../codehaus/groovy/tools/shell/ShellRunner.groovy |   2 -
 .../tools/shell/commands/AliasCommand.groovy       |   2 -
 .../tools/shell/commands/ClearCommand.groovy       |   2 -
 .../tools/shell/commands/DisplayCommand.groovy     |   2 -
 .../groovy/tools/shell/commands/DocCommand.groovy  |   3 -
 .../groovy/tools/shell/commands/EditCommand.groovy |   2 -
 .../groovy/tools/shell/commands/ExitCommand.groovy |   2 -
 .../groovy/tools/shell/commands/GrabCommand.groovy |   2 -
 .../groovy/tools/shell/commands/HelpCommand.groovy |   2 -
 .../tools/shell/commands/HistoryCommand.groovy     |   2 -
 .../tools/shell/commands/ImportCommand.groovy      |   2 -
 .../tools/shell/commands/InspectCommand.groovy     |   4 -
 .../groovy/tools/shell/commands/LoadCommand.groovy |   2 -
 .../tools/shell/commands/PurgeCommand.groovy       |   2 -
 .../tools/shell/commands/RecordCommand.groovy      |   2 -
 .../tools/shell/commands/RegisterCommand.groovy    |   2 -
 .../groovy/tools/shell/commands/SaveCommand.groovy |   2 -
 .../groovy/tools/shell/commands/SetCommand.groovy  |   2 -
 .../tools/shell/commands/ShadowCommand.groovy      |   2 -
 .../groovy/tools/shell/commands/ShowCommand.groovy |   2 -
 .../shell/completion/CommandNameCompleter.groovy   |   2 -
 .../shell/completion/GroovySyntaxCompletor.groovy  |   2 -
 .../shell/util/DefaultCommandsRegistrar.groovy     |   2 -
 .../groovy/tools/shell/util/SimpleCompletor.groovy |   2 -
 .../tools/shell/util/XmlCommandRegistrar.groovy    |   5 +-
 .../tools/shell/ShellRunnerTestSupport.groovy      |   3 -
 .../tools/shell/commands/AliasCommandTest.groovy   |   2 -
 .../tools/shell/commands/ClearCommandTest.groovy   |   2 -
 .../tools/shell/commands/CommandTestSupport.groovy |   2 -
 .../commands/ComplexCommandSupportTest.groovy      |   2 -
 .../tools/shell/commands/DisplayCommandTest.groovy |   2 -
 .../tools/shell/commands/DocCommandTest.groovy     |   3 -
 .../tools/shell/commands/EditCommandTest.groovy    |   2 -
 .../tools/shell/commands/ExitCommandTest.groovy    |   2 -
 .../tools/shell/commands/GrabCommandTest.groovy    |   2 -
 .../tools/shell/commands/HelpCommandTest.groovy    |   2 -
 .../tools/shell/commands/HistoryCommandTest.groovy |   2 -
 .../tools/shell/commands/ImportCommandTest.groovy  |   2 -
 .../tools/shell/commands/InspectCommandTest.groovy |   2 -
 .../tools/shell/commands/LoadCommandTest.groovy    |   2 -
 .../tools/shell/commands/PurgeCommandTest.groovy   |   2 -
 .../tools/shell/commands/RecordCommandTest.groovy  |   2 -
 .../shell/commands/RegisterCommandTest.groovy      |   2 -
 .../tools/shell/commands/SaveCommandTest.groovy    |   2 -
 .../tools/shell/commands/SetCommandTest.groovy     |   2 -
 .../tools/shell/commands/ShowCommandTest.groovy    |   2 -
 .../shell/expr/ClassWithPrivateConstructor.groovy  |   2 -
 .../groovy/tools/shell/expr/ExprTestSupport.groovy |   2 -
 .../groovy/tools/shell/expr/TimeItTest.groovy      |   2 -
 .../tools/shell/util/MessageSourceTest.groovy      |   6 +-
 .../jmx/builder/JmxAttributeInfoManager.groovy     |   8 +-
 .../groovy/jmx/builder/JmxBeanExportFactory.groovy |  10 +-
 .../groovy/jmx/builder/JmxBeanFactory.groovy       |  16 +-
 .../groovy/jmx/builder/JmxBeanInfoManager.groovy   |   8 +-
 .../groovy/jmx/builder/JmxBeansFactory.groovy      |  21 +-
 .../groovy/groovy/jmx/builder/JmxBuilder.groovy    |  24 +-
 .../groovy/jmx/builder/JmxBuilderTools.groovy      | 135 +++---
 .../jmx/builder/JmxClientConnectorFactory.groovy   |   7 +-
 .../groovy/jmx/builder/JmxEmitterFactory.groovy    |  14 +-
 .../groovy/jmx/builder/JmxListenerFactory.groovy   |  29 +-
 .../groovy/jmx/builder/JmxMetaMapBuilder.groovy    | 136 +++---
 .../jmx/builder/JmxOperationInfoManager.groovy     |  17 +-
 .../jmx/builder/JmxServerConnectorFactory.groovy   |  19 +-
 .../groovy/jmx/builder/JmxBuilderException.java    |   2 -
 .../groovy/jmx/builder/JmxBuilderModelMBean.java   |   3 -
 .../java/groovy/jmx/builder/JmxEventEmitter.java   |   1 -
 .../groovy/jmx/builder/JmxEventEmitterMBean.java   |   1 -
 .../java/groovy/jmx/builder/JmxEventListener.java  |   1 -
 .../src/main/java/groovy/util/GroovyMBean.java     |   4 -
 subprojects/groovy-jmx/src/spec/doc/jmx.adoc       |   4 +-
 .../groovy/jmx/builder/JmxBeansFactoryTest.groovy  |   4 -
 .../src/test/java/groovy/util/MBeanTest.java       |   2 -
 .../src/main/java/groovy/json/JsonBuilder.java     |   2 -
 .../src/main/java/groovy/json/JsonDelegate.java    |   2 -
 .../src/main/java/groovy/json/JsonException.java   |   1 -
 .../src/main/java/groovy/json/JsonLexer.java       |   1 -
 .../src/main/java/groovy/json/JsonOutput.java      |   6 -
 .../src/main/java/groovy/json/JsonParser.java      |   2 +-
 .../src/main/java/groovy/json/JsonParserType.java  |   1 -
 .../src/main/java/groovy/json/JsonSlurper.java     |   3 -
 .../main/java/groovy/json/JsonSlurperClassic.java  |   1 -
 .../src/main/java/groovy/json/JsonToken.java       |   1 -
 .../src/main/java/groovy/json/JsonTokenType.java   |   1 -
 .../java/groovy/json/StreamingJsonBuilder.java     |   4 -
 .../apache/groovy/json/internal/ArrayUtils.java    |   3 -
 .../groovy/json/internal/BaseJsonParser.java       |   2 -
 .../apache/groovy/json/internal/ByteScanner.java   |   3 -
 .../org/apache/groovy/json/internal/Cache.java     |   1 -
 .../org/apache/groovy/json/internal/CacheType.java |   3 -
 .../org/apache/groovy/json/internal/CharBuf.java   |   3 -
 .../apache/groovy/json/internal/CharScanner.java   |   3 -
 .../groovy/json/internal/CharSequenceValue.java    |   3 -
 .../groovy/json/internal/CharacterSource.java      |   3 -
 .../java/org/apache/groovy/json/internal/Chr.java  |   3 -
 .../org/apache/groovy/json/internal/Dates.java     |   3 -
 .../apache/groovy/json/internal/Exceptions.java    |   3 -
 .../java/org/apache/groovy/json/internal/IO.java   |   3 -
 .../groovy/json/internal/JsonFastParser.java       |   2 -
 .../groovy/json/internal/JsonParserCharArray.java  |   6 +-
 .../apache/groovy/json/internal/JsonParserLax.java |   3 -
 .../internal/JsonParserUsingCharacterSource.java   |   3 -
 .../groovy/json/internal/JsonStringDecoder.java    |   3 -
 .../org/apache/groovy/json/internal/LazyMap.java   |   2 -
 .../apache/groovy/json/internal/LazyValueMap.java  |   2 -
 .../apache/groovy/json/internal/MapItemValue.java  |   2 -
 .../apache/groovy/json/internal/NumberValue.java   |   3 -
 .../json/internal/ReaderCharacterSource.java       |   3 -
 .../apache/groovy/json/internal/SimpleCache.java   |   3 -
 .../java/org/apache/groovy/json/internal/Type.java |   3 -
 .../org/apache/groovy/json/internal/Value.java     |   3 -
 .../groovy/json/internal/ValueContainer.java       |   3 -
 .../org/apache/groovy/json/internal/ValueList.java |   3 -
 .../org/apache/groovy/json/internal/ValueMap.java  |   3 -
 .../apache/groovy/json/internal/ValueMapImpl.java  |   2 -
 .../src/test/groovy/groovy/json/CharBufTest.groovy |   3 -
 .../src/test/groovy/groovy/json/IOTest.groovy      |   2 -
 .../test/groovy/groovy/json/JsonBuilderTest.groovy |   3 -
 .../test/groovy/groovy/json/JsonLexerTest.groovy   |   3 -
 .../test/groovy/groovy/json/JsonOutputTest.groovy  |   4 -
 .../test/groovy/groovy/json/JsonSlurperTest.groovy |   3 -
 .../groovy/groovy/json/JsonTokenTypeTest.groovy    |   4 -
 .../groovy/groovy/json/JsonTokenValueTest.groovy   |   3 -
 .../groovy/groovy/json/RealJsonPayloadsTest.groovy |   3 -
 .../groovy/json/StreamingJsonBuilderTest.groovy    |   4 -
 .../groovy/jsr223/GroovyCompiledScript.java        |   3 +-
 .../groovy/jsr223/GroovyScriptEngineFactory.java   |   5 +-
 .../groovy/jsr223/GroovyScriptEngineImpl.java      |   6 +-
 .../org/codehaus/groovy/jsr223/JSR223Test.groovy   |   3 -
 .../codehaus/groovy/jsr223/JSR223SecurityTest.java |   2 -
 .../macro/matcher/ContextualClassCodeVisitor.java  |   1 -
 .../org/codehaus/groovy/macro/runtime/Macro.java   |   2 -
 .../groovy/macro/runtime/MacroBuilder.java         |   1 -
 .../groovy/macro/runtime/MacroContext.java         |   1 -
 .../codehaus/groovy/macro/runtime/MacroStub.java   |   1 -
 .../transform/MacroCallTransformingVisitor.java    |   1 -
 .../groovy/macro/transform/MacroMethodsCache.java  |   2 +-
 .../macro/transform/MacroTransformation.java       |   2 -
 .../org/codehaus/groovy/macro/MacroTest.groovy     |  41 +-
 .../codehaus/groovy/runtime/NioGroovyMethods.java  | 175 +++----
 .../org/codehaus/groovy/runtime/WritablePath.java  |   3 -
 .../groovy/runtime/NioGroovyMethodsTest.groovy     |   3 -
 .../java/groovy/servlet/AbstractHttpServlet.java   |   3 -
 .../main/java/groovy/servlet/GroovyServlet.java    |   6 -
 .../main/java/groovy/servlet/ServletBinding.java   |   8 -
 .../main/java/groovy/servlet/TemplateServlet.java  |   4 -
 .../groovy/servlet/AbstractHttpServletTest.groovy  |   2 -
 .../groovy/servlet/ServletBindingTest.groovy       |   2 -
 .../sql/BatchingPreparedStatementWrapper.java      |   3 -
 .../src/main/java/groovy/sql/CallResultSet.java    |   2 -
 .../src/main/java/groovy/sql/DataSet.java          |   4 -
 .../src/main/java/groovy/sql/ExpandedVariable.java |   2 -
 .../src/main/java/groovy/sql/GroovyResultSet.java  |   4 -
 .../java/groovy/sql/GroovyResultSetExtension.java  |   1 -
 .../main/java/groovy/sql/GroovyResultSetProxy.java |   2 -
 .../src/main/java/groovy/sql/GroovyRowResult.java  |   2 -
 .../src/main/java/groovy/sql/InOutParameter.java   |   2 -
 .../src/main/java/groovy/sql/InParameter.java      |   2 -
 .../src/main/java/groovy/sql/OutParameter.java     |   2 -
 .../java/groovy/sql/ResultSetOutParameter.java     |   2 -
 .../groovy-sql/src/main/java/groovy/sql/Sql.java   |  10 -
 .../main/java/groovy/sql/SqlOrderByVisitor.java    |   4 -
 .../src/main/java/groovy/sql/SqlWhereVisitor.java  |   3 -
 .../test/groovy/groovy/bugs/ForAndSqlBug.groovy    |   3 -
 .../src/test/groovy/groovy/sql/SqlBatchTest.groovy |   2 -
 .../src/test/groovy/groovy/sql/SqlCacheTest.groovy |   2 -
 .../src/test/groovy/groovy/sql/SqlCallTest.groovy  |   2 -
 .../test/groovy/groovy/sql/SqlStatementTest.groovy |   2 -
 .../groovy/sql/SqlTransactionConnectionTest.groovy |   2 -
 .../groovy/sql/SqlTransactionDataSourceTest.groovy |   2 -
 .../groovy/sql/SqlTransactionTestCase.groovy       |   2 -
 .../groovy/groovy/sql/SqlWithBuilderTest.groovy    |   3 -
 .../groovy/sql/SqlWithTypedResultsTest.groovy      |   4 -
 .../swing/binding/AbstractButtonProperties.java    |   1 -
 .../swing/binding/JComboBoxMetaMethods.groovy      |  37 +-
 .../groovy/swing/binding/JComboBoxProperties.java  |   1 -
 .../groovy/swing/binding/JComponentProperties.java |   1 -
 .../groovy/swing/binding/JListMetaMethods.groovy   |  48 +-
 .../groovy/swing/binding/JListProperties.groovy    | 119 +++--
 .../groovy/swing/binding/JScrollBarProperties.java |   1 -
 .../groovy/swing/binding/JSliderProperties.java    |   1 -
 .../groovy/swing/binding/JSpinnerProperties.java   |   1 -
 .../swing/binding/JTextComponentProperties.java    |   1 -
 .../groovy/swing/factory/ActionFactory.groovy      |  20 +-
 .../groovy/groovy/swing/factory/BeanFactory.groovy |   9 +-
 .../groovy/groovy/swing/factory/BindFactory.groovy |  52 +--
 .../groovy/swing/factory/BindProxyFactory.groovy   |   9 +-
 .../groovy/swing/factory/CellEditorFactory.groovy  |  25 +-
 .../groovy/swing/factory/ColumnFactory.groovy      |  36 +-
 .../groovy/swing/factory/ColumnModelFactory.groovy |  11 +-
 .../groovy/groovy/swing/factory/ListFactory.groovy |  13 +-
 .../groovy/swing/factory/RendererFactory.groovy    |  20 +-
 .../swing/factory/RichActionWidgetFactory.groovy   |  52 +--
 .../swing/factory/TextArgWidgetFactory.groovy      |  22 +-
 .../groovy/swing/impl/ClosureCellEditor.groovy     |  35 +-
 .../groovy/groovy/swing/impl/ClosureRenderer.java  |   3 -
 .../groovy/groovy/swing/impl/DefaultAction.java    |   2 -
 .../groovy/swing/impl/ListWrapperListModel.java    |   2 -
 .../main/groovy/groovy/swing/impl/TableLayout.java |   2 -
 .../groovy/groovy/swing/impl/TableLayoutCell.java  |   2 -
 .../groovy/groovy/swing/impl/TableLayoutRow.java   |   2 -
 .../main/java/groovy/inspect/swingui/TableMap.java |   2 -
 .../java/groovy/inspect/swingui/TableSorter.java   |   3 -
 .../src/main/java/groovy/model/ClosureModel.java   |   2 -
 .../main/java/groovy/model/DefaultTableColumn.java |   2 -
 .../main/java/groovy/model/DefaultTableModel.java  |   2 -
 .../src/main/java/groovy/model/FormModel.java      |   2 -
 .../main/java/groovy/model/NestedValueModel.java   |   2 -
 .../src/main/java/groovy/model/PropertyModel.java  |   2 -
 .../src/main/java/groovy/model/ValueHolder.java    |   2 -
 .../src/main/java/groovy/model/ValueModel.java     |   2 -
 .../groovy/binding/AbstractFullBinding.java        |   1 -
 .../codehaus/groovy/binding/AggregateBinding.java  |   2 +-
 .../org/codehaus/groovy/binding/BindingProxy.java  |   1 -
 .../codehaus/groovy/binding/BindingUpdatable.java  |   1 -
 .../groovy/binding/ClosureSourceBinding.java       |   1 -
 .../groovy/binding/EventTriggerBinding.java        |   1 -
 .../org/codehaus/groovy/binding/FullBinding.java   |   1 -
 .../groovy/binding/MutualPropertyBinding.java      |   1 -
 .../codehaus/groovy/binding/PropertyBinding.java   |   2 -
 .../org/codehaus/groovy/binding/SourceBinding.java |   1 -
 .../groovy/binding/SwingTimerTriggerBinding.java   |   2 -
 .../org/codehaus/groovy/binding/TargetBinding.java |   1 -
 .../codehaus/groovy/binding/TriggerBinding.java    |   1 -
 .../groovy/runtime/SwingGroovyMethods.java         |   2 -
 .../groovy/groovy/beans/BindableSwingTest.groovy   |   3 -
 .../groovy/groovy/beans/VetoableSwingTest.groovy   |   3 -
 .../test/groovy/groovy/bugs/Groovy303_Bug.groovy   |   6 +-
 .../groovy/swing/SwingMetaMethodsTest.groovy       |   4 -
 .../org/codehaus/groovy/runtime/DummyBean.java     |   3 -
 .../groovy/groovy/text/SimpleTemplateEngine.java   |   5 -
 .../groovy/text/StreamingTemplateEngine.java       |   3 -
 .../src/main/groovy/groovy/text/Template.java      |   2 -
 .../main/groovy/groovy/text/TemplateEngine.java    |   2 -
 .../main/groovy/groovy/text/XmlTemplateEngine.java |   3 -
 .../groovy/text/markup/AutoNewLineTransformer.java |   2 -
 .../groovy/groovy/text/markup/BaseTemplate.java    |   2 -
 .../groovy/text/markup/DelegatingIndentWriter.java |   5 +-
 .../groovy/groovy/text/markup/IncludeType.java     |   5 +-
 .../text/markup/MarkupBuilderCodeTransformer.java  |   2 -
 .../groovy/text/markup/MarkupTemplateEngine.java   |   2 -
 .../MarkupTemplateTypeCheckingExtension.groovy     |   2 -
 .../groovy/groovy/text/markup/TagLibAdapter.groovy |   2 -
 .../groovy/text/markup/TemplateASTTransformer.java |   2 -
 .../groovy/text/markup/TemplateConfiguration.java  |   2 -
 .../groovy/text/markup/TemplateResolver.java       |   2 -
 .../groovy/SimpleGStringTemplateEngineTest.groovy  |  50 +-
 .../groovy/groovy/SimpleTemplateEngineTest.groovy  |   3 -
 .../src/test/java/groovy/text/TemplateTest.java    |   3 -
 .../groovy/groovy/lang/GroovyLogTestCase.groovy    |  43 +-
 .../groovy/groovy/mock/interceptor/Demand.groovy   |   1 -
 .../groovy/groovy/mock/interceptor/Ignore.groovy   |   2 -
 .../mock/interceptor/LooseExpectation.groovy       |   1 -
 .../groovy/groovy/mock/interceptor/MockFor.groovy  |   3 -
 .../groovy/mock/interceptor/MockInterceptor.groovy |   2 -
 .../mock/interceptor/StrictExpectation.groovy      |   1 -
 .../groovy/groovy/mock/interceptor/StubFor.groovy  |   3 -
 .../groovy/groovy/util/GroovyShellTestCase.groovy  |   4 +-
 .../groovy/util/JavadocAssertionTestBuilder.groovy |   2 -
 .../groovy/util/JavadocAssertionTestSuite.groovy   |   2 -
 .../mock/interceptor/MockProxyMetaClass.java       |   2 -
 .../src/main/java/groovy/test/GroovyAssert.java    |   4 -
 .../java/groovy/transform/NotYetImplemented.java   |   4 -
 .../src/main/java/groovy/util/AllTestSuite.java    |   4 -
 .../src/main/java/groovy/util/GroovyTestCase.java  |   5 -
 .../src/main/java/groovy/util/GroovyTestSuite.java |   2 -
 .../NotYetImplementedASTTransformation.java        |   5 -
 .../src/test/groovy/GroovyTestCaseTest.groovy      |   2 -
 .../groovy/lang/GroovyLogTestCaseTest.groovy       |   6 +-
 .../groovy/groovy/test/GroovyAssertTest.groovy     |   4 -
 .../groovy/groovy/util/AllTestSuiteTest.groovy     |   1 -
 .../NotYetImplementedTransformTest.groovy          |   4 -
 .../src/main/groovy/groovy/xml/StaxBuilder.groovy  |   3 -
 .../src/main/java/groovy/util/XmlNodePrinter.java  |   1 -
 .../src/main/java/groovy/util/XmlSlurper.java      |   1 -
 .../java/groovy/util/slurpersupport/Attribute.java |   2 -
 .../groovy/util/slurpersupport/Attributes.java     |   2 -
 .../util/slurpersupport/FilteredAttributes.java    |   2 -
 .../util/slurpersupport/FilteredNodeChildren.java  |   2 -
 .../groovy/util/slurpersupport/GPathResult.java    |   2 -
 .../groovy/util/slurpersupport/NoChildren.java     |   2 -
 .../main/java/groovy/util/slurpersupport/Node.java |   2 -
 .../java/groovy/util/slurpersupport/NodeChild.java |   2 -
 .../groovy/util/slurpersupport/NodeChildren.java   |   2 -
 .../groovy/util/slurpersupport/NodeIterator.java   |   2 -
 .../groovy/util/slurpersupport/NodeParents.java    |   2 -
 .../util/slurpersupport/ReplacementNode.java       |   2 -
 .../src/main/java/groovy/xml/DOMBuilder.java       |   2 -
 .../src/main/java/groovy/xml/MarkupBuilder.java    |   4 -
 .../main/java/groovy/xml/MarkupBuilderHelper.java  |   2 -
 .../src/main/java/groovy/xml/NamespaceBuilder.java |   2 -
 .../java/groovy/xml/NamespaceBuilderSupport.java   |   5 -
 .../src/main/java/groovy/xml/SAXBuilder.java       |   2 -
 .../src/main/java/groovy/xml/XmlUtil.java          |   2 -
 .../src/main/java/groovy/xml/dom/DOMCategory.java  |   3 -
 .../codehaus/groovy/runtime/XmlGroovyMethods.java  |   3 -
 .../org/codehaus/groovy/tools/xml/DomToGroovy.java |   3 -
 .../src/spec/test/UserGuideDOMCategory.groovy      |   2 -
 .../spec/test/UserGuideMarkupBuilderTest.groovy    |   2 -
 .../UserGuideStreamingMarkupBuilderTest.groovy     |   2 -
 .../src/spec/test/UserGuideXmlParserTest.groovy    |   2 -
 .../src/spec/test/UserGuideXmlSlurperTest.groovy   |   2 -
 .../src/spec/test/UserGuideXmlUtilTest.groovy      |   2 -
 .../test/groovy/groovy/bugs/Groovy249_Bug.groovy   |   3 -
 .../test/groovy/groovy/bugs/Groovy593_Bug.groovy   |   3 -
 .../test/groovy/groovy/bugs/TedsClosureBug.groovy  |   3 -
 .../groovy/groovy/xml/BuilderTestSupport.groovy    |   4 -
 .../groovy/xml/GpathSyntaxTestSupport.groovy       |   3 -
 .../groovy/groovy/xml/MarkupBuilderTest.groovy     |   4 -
 .../groovy/xml/StreamingMarkupBuilderTest.groovy   |   3 -
 .../src/test/groovy/groovy/xml/TestXmlSupport.java |   3 -
 .../src/test/groovy/groovy/xml/XmlTest.java        |   3 -
 .../src/test/groovy/groovy/xml/XmlUtilTest.groovy  |   3 -
 .../groovy/groovy/xml/vm6/StaxBuilderTest.groovy   |   3 -
 .../groovy/tools/xml/DomToGroovyTest.groovy        |   4 -
 subprojects/groovy-yaml/build.gradle               |   4 +-
 .../org/apache/groovy/parser/AbstractParser.java   |   3 -
 .../org/apache/groovy/parser/Antlr2Parser.java     |   3 -
 .../org/apache/groovy/parser/Antlr4Parser.java     |   3 -
 .../groovy/parser/antlr4/Antlr4ParserPlugin.java   |   3 -
 .../groovy/parser/antlr4/Antlr4PluginFactory.java  |   3 -
 .../apache/groovy/parser/antlr4/AstBuilder.java    |   3 -
 .../groovy/parser/antlr4/GroovyLangLexer.java      |   3 -
 .../groovy/parser/antlr4/GroovyLangParser.java     |   3 -
 .../antlr4/TryWithResourcesASTTransformation.java  |   3 -
 .../antlr4/internal/DescriptiveErrorStrategy.java  |   3 -
 .../antlr4/internal/atnmanager/AtnManager.java     |   3 -
 .../groovy/parser/antlr4/SyntaxErrorTest.groovy    |   3 -
 .../groovy/parser/antlr4/util/AstDumper.groovy     |   6 -
 424 files changed, 2588 insertions(+), 1831 deletions(-)
 create mode 100644 src/main/groovy/groovy/transform/NullCheck.java
 create mode 100644 src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java
 copy src/test/{org/codehaus/groovy/runtime/MetaClassHelperTest.java => groovy/lang/MissingPropertyExceptionTest.java} (69%)


[groovy] 20/28: cleanup/remove @author tags as per Apache recommended practices for groovy-ant, groovy-console, groovy-groovydoc

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit a924cfdded9797b0d82e7807e7d717f3da3d057a
Author: Paul King <pa...@asert.com.au>
AuthorDate: Thu Dec 27 20:30:06 2018 +1000

    cleanup/remove @author tags as per Apache recommended practices for groovy-ant, groovy-console, groovy-groovydoc
---
 gradle/pomconfigurer.gradle                        |   8 +-
 .../main/groovy/groovy/util/FileNameFinder.groovy  |   3 -
 .../src/main/java/groovy/util/AntBuilder.java      |   5 -
 .../groovy/ant/AntProjectPropertiesDelegate.java   |   3 -
 .../codehaus/groovy/ant/CompileTaskSupport.java    |   2 -
 .../java/org/codehaus/groovy/ant/FileIterator.java |   2 -
 .../java/org/codehaus/groovy/ant/FileScanner.java  |   3 -
 .../groovy/ant/FileSystemCompilerFacade.java       |   2 -
 .../org/codehaus/groovy/ant/GenerateStubsTask.java |   2 -
 .../java/org/codehaus/groovy/ant/GroovycTask.java  |   2 -
 .../org/codehaus/groovy/ant/LoggingHelper.java     |   2 -
 .../org/codehaus/groovy/ant/RootLoaderRef.java     |   1 -
 .../org/codehaus/groovy/ant/UberCompileTask.java   |  25 ++---
 .../groovy/org/codehaus/groovy/ant/GroovyTest.java |   2 -
 .../org/codehaus/groovy/ant/GroovycTest.java       |   5 +-
 .../src/main/groovy/groovy/inspect/TextNode.groovy |   2 -
 .../groovy/groovy/inspect/TextTreeNodeMaker.groovy |   2 -
 .../groovy/inspect/swingui/ObjectBrowser.groovy    | 123 +++++++++++----------
 .../inspect/swingui/ScriptToTreeNodeAdapter.groovy |   3 -
 .../main/groovy/groovy/ui/ConsoleIvyPlugin.groovy  |   3 -
 .../src/main/groovy/groovy/ui/ConsoleSupport.java  |   2 -
 .../main/groovy/groovy/ui/ConsoleTextEditor.java   |   5 -
 .../groovy/groovy/ui/text/FindReplaceUtility.java  |   3 -
 .../main/groovy/groovy/ui/text/GroovyFilter.java   |   4 -
 .../ui/text/StructuredSyntaxDocumentFilter.java    |   4 -
 .../groovy/ui/text/StructuredSyntaxHandler.java    |   3 -
 .../groovy/ui/text/StructuredSyntaxResources.java  |   2 -
 .../src/main/groovy/groovy/ui/text/TextEditor.java |   2 -
 .../groovy/groovy/ui/text/TextUndoManager.java     |   2 -
 .../swingui/ScriptToTreeNodeAdapterTest.groovy     |   2 -
 .../ui/HistoryRecordGetTextToRunTests.groovy       |   4 -
 .../groovy/groovy/ui/text/GroovyFilterTests.groovy |   3 -
 .../groovy/tools/groovydoc/GroovyDocTool.java      |   3 -
 .../groovy-groovydoc/src/spec/doc/groovydoc.adoc   |   2 -
 .../groovy/tools/groovydoc/CustomGroovyDoc.java    |   2 -
 .../groovy/tools/groovydoc/GroovyDocTest.java      |   3 -
 .../tools/groovydoc/GroovyRootDocBuilderTest.java  |   3 -
 .../groovydoc/SimpleGroovyRootDocTests.groovy      |   3 -
 38 files changed, 80 insertions(+), 172 deletions(-)

diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index b4d5d5c..e000950 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -449,7 +449,7 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Edwin Tellman'
             }
             contributor {
-                name 'Evan A Slatis'
+                name 'Evan "Hippy" Slatis'
             }
             contributor {
                 name 'Mike Dillon'
@@ -657,6 +657,12 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Tom Nichols'
             }
             contributor {
+                name 'Ingo Hoffmann'
+            }
+            contributor {
+                name 'Sergii Bondarenko'
+            }
+            contributor {
                 name 'mgroovy'
             }
             contributor {
diff --git a/subprojects/groovy-ant/src/main/groovy/groovy/util/FileNameFinder.groovy b/subprojects/groovy-ant/src/main/groovy/groovy/util/FileNameFinder.groovy
index 519ccd1..f066f52 100644
--- a/subprojects/groovy-ant/src/main/groovy/groovy/util/FileNameFinder.groovy
+++ b/subprojects/groovy-ant/src/main/groovy/groovy/util/FileNameFinder.groovy
@@ -21,9 +21,6 @@ package groovy.util
 /**
  * Find files according to a base directory and an includes and excludes pattern.
  * The include and exclude patterns conform to Ant's fileset pattern conventions.
- *
- * @author Dierk Koenig
- * @author Paul King
  */
 class FileNameFinder implements IFileNameFinder {
 
diff --git a/subprojects/groovy-ant/src/main/java/groovy/util/AntBuilder.java b/subprojects/groovy-ant/src/main/java/groovy/util/AntBuilder.java
index 92e4f7d..ae176e0 100644
--- a/subprojects/groovy-ant/src/main/java/groovy/util/AntBuilder.java
+++ b/subprojects/groovy-ant/src/main/java/groovy/util/AntBuilder.java
@@ -61,11 +61,6 @@ import java.util.logging.Logger;
  * you will need to add one or more additional jars from the ant distribution to
  * your classpath - see the <a href="http://ant.apache.org/manual/install.html#librarydependencies">library
  * dependencies</a> for more details.
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Dierk Koenig (dk)
- * @author Marc Guillemot
- * @author Paul King
  */
 public class AntBuilder extends BuilderSupport {
 
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/AntProjectPropertiesDelegate.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/AntProjectPropertiesDelegate.java
index 034e77d..5b511e6 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/AntProjectPropertiesDelegate.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/AntProjectPropertiesDelegate.java
@@ -26,9 +26,6 @@ import java.util.Hashtable;
 import java.util.Map;
 import java.util.Set;
 
-/**
- * @author Guillaume Laforge
- */
 public class AntProjectPropertiesDelegate extends Hashtable {
 
     private final Project project;
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/CompileTaskSupport.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/CompileTaskSupport.java
index e7e9025..ecc8f65 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/CompileTaskSupport.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/CompileTaskSupport.java
@@ -35,8 +35,6 @@ import java.security.PrivilegedAction;
 
 /**
  * Support for compilation related tasks.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 public abstract class CompileTaskSupport
     extends MatchingTask
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileIterator.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileIterator.java
index 86f726c..46fec99 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileIterator.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileIterator.java
@@ -29,8 +29,6 @@ import java.util.NoSuchElementException;
 /**
  * <p><code>FileIterator</code> is an iterator over a
  * number of files from a collection of FileSet instances.
- *
- * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  */
 public class FileIterator implements Iterator {
 
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileScanner.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileScanner.java
index ddfb2c1..335e24c 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileScanner.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileScanner.java
@@ -29,9 +29,6 @@ import java.util.List;
 /** 
  * <p><code>FileScanner</code> is a bean which allows the iteration
  * over a number of files from a collection of FileSet instances.
- *
- * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
- * @author Marc Guillemot
  */
 public class FileScanner extends Task {
 
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileSystemCompilerFacade.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileSystemCompilerFacade.java
index e17a683..88f3041 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileSystemCompilerFacade.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/FileSystemCompilerFacade.java
@@ -27,8 +27,6 @@ import java.util.List;
 /**
  * This is a helper class, to provide a controlled entry point for the groovyc
  * ant task forked mode.
- *
- * @author <a href="mailto:blackdrag@gmx.org">Jochen "blackdrag" Theodorou</a>
  */
 public class FileSystemCompilerFacade {
     private static final String[] EMPTY_STRING_ARRAY = new String[0];
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GenerateStubsTask.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GenerateStubsTask.java
index f32df10..ae79737 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GenerateStubsTask.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GenerateStubsTask.java
@@ -27,8 +27,6 @@ import java.io.File;
 
 /**
  * Generates Java stubs from Groovy sources.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 public class GenerateStubsTask
     extends CompileTaskSupport
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GroovycTask.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GroovycTask.java
index eceea41..a02015f 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GroovycTask.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/GroovycTask.java
@@ -30,8 +30,6 @@ import java.io.File;
 
 /**
  * Compiles Groovy source files.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 public class GroovycTask
     extends CompileTaskSupport
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/LoggingHelper.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/LoggingHelper.java
index bd33609..88016bb 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/LoggingHelper.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/LoggingHelper.java
@@ -23,8 +23,6 @@ import org.apache.tools.ant.Task;
 
 /**
  * Helper to make logging from Ant easier.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 public class LoggingHelper {
     private final Task owner;
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/RootLoaderRef.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/RootLoaderRef.java
index 4afe725..27e7c79 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/RootLoaderRef.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/RootLoaderRef.java
@@ -54,7 +54,6 @@ import org.codehaus.groovy.tools.RootLoader;
  * with different classloaders are different, so ant would not be able to find the method.
  *
  * @see org.codehaus.groovy.tools.RootLoader
- * @author Jochen Theodorou
  */
 public class RootLoaderRef extends MatchingTask {
     private String name;
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/UberCompileTask.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/UberCompileTask.java
index 8ea1c4c..9c6baba 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/UberCompileTask.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/UberCompileTask.java
@@ -33,16 +33,11 @@ import java.io.IOException;
  * Compiles Java and Groovy source files.
  *
  * This works by invoking the {@link GenerateStubsTask} task, then the
- * {@link Javac} task and then the {@link GroovycTask}.  Each task can
- * be configured by creating a nested element.  Common configuration
- * such as the source dir and classpath is picked up from this tasks
- * configuration.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
+ * {@link Javac} task and then the {@link GroovycTask}.  Each task can be
+ * configured by creating a nested element.  Common configuration such as
+ * the source dir and classpath is picked up from this tasks configuration.
  */
-public class UberCompileTask
-    extends Task
-{
+public class UberCompileTask extends Task {
     private Path src;
 
     private File destdir;
@@ -215,9 +210,7 @@ public class UberCompileTask
     // Nested task adapters
     //
     
-    private class GenStubsAdapter
-        extends GenerateStubsTask
-    {
+    private class GenStubsAdapter extends GenerateStubsTask {
         public FileSet getFileSet() {
             return super.getImplicitFileSet();
         }
@@ -227,9 +220,7 @@ public class UberCompileTask
         }
     }
 
-    private class JavacAdapter
-        extends Javac
-    {
+    private class JavacAdapter extends Javac {
         public FileSet getFileSet() {
             return super.getImplicitFileSet();
         }
@@ -239,9 +230,7 @@ public class UberCompileTask
         }
     }
 
-    private class GroovycAdapter
-        extends GroovycTask
-    {
+    private class GroovycAdapter extends GroovycTask {
         public FileSet getFileSet() {
             return super.getImplicitFileSet();
         }
diff --git a/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovyTest.java b/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovyTest.java
index 53c0e86..a6a6834 100644
--- a/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovyTest.java
+++ b/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovyTest.java
@@ -37,8 +37,6 @@ import java.util.regex.Pattern;
  * Caution: the *.groovy files used by this test should not get compiled with the rest of the
  * test classes compilation process otherwise they would be available in the classpath
  * and the tests here would be meaningless (tested by testClasspath_missing).
- *
- * @author Marc Guillemot
  */
 public class GroovyTest extends GroovyTestCase {
     public static String FLAG = null;
diff --git a/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java b/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java
index 70f7b9f..e3d97bb 100644
--- a/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java
+++ b/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java
@@ -31,10 +31,7 @@ import java.util.regex.Pattern;
  * <p>
  * NB the *.groovy files in this directory should not get compiled with the rest of the test classes
  * since that would ruin the whole point of testing compilation by the Ant tasks.  In fact it doesn't
- * matter as the tests remove all class files that should not pre-exist from this directory at each
- * step
- *
- * @author Russel Winder
+ * matter as the tests remove all class files that should not pre-exist from this directory at each step.
  */
 public class GroovycTest extends GroovyTestCase {
     private final String classDirectory = "target/classes/groovy/test/org/codehaus/groovy/ant/";
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextNode.groovy b/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextNode.groovy
index 31b8a02..1179769 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextNode.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextNode.groovy
@@ -18,8 +18,6 @@
  */
 /**
  * Represents a plain text node for use in the AST tree made by ASTBrowser 
- * 
- * @author Roshan Dawrani
  */
 package groovy.inspect
 
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextTreeNodeMaker.groovy b/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextTreeNodeMaker.groovy
index 29f893e..d47db95 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextTreeNodeMaker.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/inspect/TextTreeNodeMaker.groovy
@@ -18,8 +18,6 @@
  */
 /**
  * A factory class for plain text nodes for use in the AST tree made by ASTBrowser 
- * 
- * @author Roshan Dawrani
  */
 package groovy.inspect
 
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ObjectBrowser.groovy b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ObjectBrowser.groovy
index 52939f2..76cac96 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ObjectBrowser.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ObjectBrowser.groovy
@@ -24,63 +24,70 @@ import groovy.swing.SwingBuilder
 import javax.swing.*
 import java.awt.*
 
-/**
-A little GUI to show some of the Inspector capabilities.
-Starting this script opens the ObjectBrowser on "some String".
-Use it in groovysh or groovyConsole to inspect your object of
-interest with
-<code>
-ObjectBrowser.inspect(myObject)
-</code>.
+import static groovy.inspect.Inspector.MEMBER_DECLARER_IDX
+import static groovy.inspect.Inspector.MEMBER_EXCEPTIONS_IDX
+import static groovy.inspect.Inspector.MEMBER_MODIFIER_IDX
+import static groovy.inspect.Inspector.MEMBER_NAME_IDX
+import static groovy.inspect.Inspector.MEMBER_ORIGIN_IDX
+import static groovy.inspect.Inspector.MEMBER_PARAMS_IDX
+import static groovy.inspect.Inspector.MEMBER_TYPE_IDX
+import static groovy.inspect.Inspector.MEMBER_VALUE_IDX
 
-@author Dierk Koenig
-**/
+/**
+ * A little GUI to show some of the Inspector capabilities.
+ * Starting this script opens the ObjectBrowser on "some String".
+ * Use it in groovysh or groovyConsole to inspect your object of interest with:
+ * <code>
+ * ObjectBrowser.inspect(myObject)
+ * </code>.
+ */
 class ObjectBrowser {
-    
+
     def inspector
     def swing, frame, fieldTable, methodTable, itemTable, mapTable
 
     static void main(args) {
         inspect('some String')
     }
-    static void inspect(objectUnderInspection){
+
+    static void inspect(objectUnderInspection) {
         def browser = new ObjectBrowser()
         browser.inspector = new Inspector(objectUnderInspection)
         browser.run()
     }
-    
+
     void run() {
         swing = new SwingBuilder()
-        
-        frame = swing.frame(title:'Groovy Object Browser', location:[200,200],
-                size:[800,600], pack: true, show:true,
+
+        frame = swing.frame(title: 'Groovy Object Browser', location: [200, 200],
+                size: [800, 600], pack: true, show: true,
                 iconImage: swing.imageIcon(groovy.ui.Console.ICON_PATH).image,
-                defaultCloseOperation:WindowConstants.DISPOSE_ON_CLOSE) {
-                
+                defaultCloseOperation: WindowConstants.DISPOSE_ON_CLOSE) {
+
             menuBar {
-                menu(text:'Help') {
-                    menuItem {action(name:'About', closure: this.&showAbout)}
+                menu(text: 'Help') {
+                    menuItem { action(name: 'About', closure: this.&showAbout) }
                 }
             }
             panel {
                 borderLayout()
-                panel(  name:'Class Info',
-                        border: emptyBorder([5,10,5,10]),
-                        constraints:NORTH) {
-                    flowLayout(alignment:FlowLayout.LEFT)
+                panel(name: 'Class Info',
+                        border: emptyBorder([5, 10, 5, 10]),
+                        constraints: NORTH) {
+                    flowLayout(alignment: FlowLayout.LEFT)
                     def props = inspector.classProps
                     def classLabel = '<html>' + props.join('<br>')
                     label(classLabel)
                 }
-                tabbedPane(constraints:CENTER){
+                tabbedPane(constraints: CENTER) {
                     if (inspector.object instanceof Collection) {
                         scrollPane(name: ' Collection data ') {
                             itemTable = table {
                                 int i = 0
                                 def data = inspector.object.collect { val -> [i++, val] }
-                                tableModel(list:data) {
-                                    closureColumn(header:'Index', read:{it[0]})
-                                    closureColumn(header:'Value', read:{it[1]})
+                                tableModel(list: data) {
+                                    closureColumn(header: 'Index', read: { it[0] })
+                                    closureColumn(header: 'Value', read: { it[1] })
                                 }
                             }
                         }
@@ -90,10 +97,10 @@ class ObjectBrowser {
                             itemTable = table {
                                 int i = 0
                                 def data = inspector.object.collect { key, val -> [i++, key, val] }
-                                tableModel(list:data) {
-                                    closureColumn(header:'Index', read:{it[0]})
-                                    closureColumn(header:'Key',   read:{it[1]})
-                                    closureColumn(header:'Value', read:{it[2]})
+                                tableModel(list: data) {
+                                    closureColumn(header: 'Index', read: { it[0] })
+                                    closureColumn(header: 'Key', read: { it[1] })
+                                    closureColumn(header: 'Value', read: { it[2] })
                                 }
                             }
                         }
@@ -102,45 +109,45 @@ class ObjectBrowser {
                         fieldTable = table {
                             def data = Inspector.sort(inspector.publicFields.toList())
                             data.addAll(Inspector.sort(inspector.propertyInfo.toList()))
-                            tableModel(list:data) {
-                                closureColumn(header:'Name',        read:{it[Inspector.MEMBER_NAME_IDX]})
-                                closureColumn(header:'Value',       read:{it[Inspector.MEMBER_VALUE_IDX]})
-                                closureColumn(header:'Type',        read:{it[Inspector.MEMBER_TYPE_IDX]})
-                                closureColumn(header:'Origin',      read:{it[Inspector.MEMBER_ORIGIN_IDX]})
-                                closureColumn(header:'Modifier',    read:{it[Inspector.MEMBER_MODIFIER_IDX]})
-                                closureColumn(header:'Declarer',    read:{it[Inspector.MEMBER_DECLARER_IDX]})
+                            tableModel(list: data) {
+                                closureColumn(header: 'Name', read: { it[MEMBER_NAME_IDX] })
+                                closureColumn(header: 'Value', read: { it[MEMBER_VALUE_IDX] })
+                                closureColumn(header: 'Type', read: { it[MEMBER_TYPE_IDX] })
+                                closureColumn(header: 'Origin', read: { it[MEMBER_ORIGIN_IDX] })
+                                closureColumn(header: 'Modifier', read: { it[MEMBER_MODIFIER_IDX] })
+                                closureColumn(header: 'Declarer', read: { it[MEMBER_DECLARER_IDX] })
                             }
                         }
                     }
-                    scrollPane(name:' (Meta) Methods ' ) {
+                    scrollPane(name: ' (Meta) Methods ') {
                         methodTable = table {
                             def data = Inspector.sort(inspector.methods.toList())
                             data.addAll(Inspector.sort(inspector.metaMethods.toList()))
 
-                            tableModel(list:data) {
-                                closureColumn(header:'Name',        read:{it[Inspector.MEMBER_NAME_IDX]})
-                                closureColumn(header:'Params',      read:{it[Inspector.MEMBER_PARAMS_IDX]})
-                                closureColumn(header:'Type',        read:{it[Inspector.MEMBER_TYPE_IDX]})
-                                closureColumn(header:'Origin',      read:{it[Inspector.MEMBER_ORIGIN_IDX]})
-                                closureColumn(header:'Modifier',    read:{it[Inspector.MEMBER_MODIFIER_IDX]})
-                                closureColumn(header:'Declarer',    read:{it[Inspector.MEMBER_DECLARER_IDX]})
-                                closureColumn(header:'Exceptions',  read:{it[Inspector.MEMBER_EXCEPTIONS_IDX]})
+                            tableModel(list: data) {
+                                closureColumn(header: 'Name', read: { it[MEMBER_NAME_IDX] })
+                                closureColumn(header: 'Params', read: { it[MEMBER_PARAMS_IDX] })
+                                closureColumn(header: 'Type', read: { it[MEMBER_TYPE_IDX] })
+                                closureColumn(header: 'Origin', read: { it[MEMBER_ORIGIN_IDX] })
+                                closureColumn(header: 'Modifier', read: { it[MEMBER_MODIFIER_IDX] })
+                                closureColumn(header: 'Declarer', read: { it[MEMBER_DECLARER_IDX] })
+                                closureColumn(header: 'Exceptions', read: { it[MEMBER_EXCEPTIONS_IDX] })
                             }
                         }
                     }
                 }
             }
         }
-        
+
         // Add a bit of formatting
         addSorter(itemTable)
         addSorter(mapTable)
         addSorter(fieldTable)
         addSorter(methodTable)
-        
+
         frame.toFront()
     }
-    
+
     void addSorter(table) {
         if (table != null) {
             def sorter = new TableSorter(table.model)
@@ -148,13 +155,13 @@ class ObjectBrowser {
             sorter.addMouseListenerToHeaderInTable(table)
         }
     }
-    
+
     void showAbout(EventObject evt) {
-         def pane = swing.optionPane()
-         // work around GROOVY-1048
-         def version = GroovySystem.version
-         pane.setMessage('An interactive GUI to explore object capabilities.\nVersion ' + version)
-         def dialog = pane.createDialog(frame, 'About Groovy Object Browser')
-         dialog.show()
+        def pane = swing.optionPane()
+        // work around GROOVY-1048
+        def version = GroovySystem.version
+        pane.setMessage('An interactive GUI to explore object capabilities.\nVersion ' + version)
+        def dialog = pane.createDialog(frame, 'About Groovy Object Browser')
+        dialog.show()
     }
 }
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapter.groovy b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapter.groovy
index 1ffc55c..3d1b790 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapter.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapter.groovy
@@ -264,7 +264,6 @@ class ScriptToTreeNodeAdapter {
 
 /**
  * This Node Operation builds up a root tree node for the viewer.
- * @author Hamlet D'Arcy
  */
 class TreeNodeBuildingNodeOperation extends PrimaryClassNodeOperation {
 
@@ -455,8 +454,6 @@ class TreeNodeBuildingNodeOperation extends PrimaryClassNodeOperation {
 
 /**
 * This AST visitor builds up a TreeNode.
- *
- * @author Hamlet D'Arcy
 */
 @PackageScope
 class TreeNodeBuildingVisitor extends CodeVisitorSupport {
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleIvyPlugin.groovy b/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleIvyPlugin.groovy
index 31aec95..c411035 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleIvyPlugin.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleIvyPlugin.groovy
@@ -28,9 +28,6 @@ import org.apache.ivy.core.event.resolve.StartResolveEvent
  * Groovy Swing console.
  *
  * Adds Groovy Grape feedback (via an Ivy listener).
- *
- * @author Guillaume Laforge
- * @author Paul King
  */
 class ConsoleIvyPlugin {
     Console savedConsole
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleSupport.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleSupport.java
index a367696..eb6e590 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleSupport.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleSupport.java
@@ -29,8 +29,6 @@ import java.awt.*;
 
 /**
  * Base class for console
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public abstract class ConsoleSupport {
 
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleTextEditor.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleTextEditor.java
index f05f6e8..a4e9c8a 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleTextEditor.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/ConsoleTextEditor.java
@@ -44,11 +44,6 @@ import java.util.prefs.Preferences;
 
 /**
  * Component which provides a styled editor for the console.
- *
- * @author hippy
- * @author Danno Ferrin
- * @author Tim Yates
- * @author Guillaume Laforge
  */
 public class ConsoleTextEditor extends JScrollPane {
     public String getDefaultFamily() {
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/FindReplaceUtility.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/FindReplaceUtility.java
index 4ac5b1e..11caad0 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/FindReplaceUtility.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/FindReplaceUtility.java
@@ -35,9 +35,6 @@ import java.awt.event.TextEvent;
 import java.awt.event.TextListener;
 import java.util.EventListener;
 
-/**
- * @author Evan "Hippy" Slatis
- */
 public final class FindReplaceUtility {
 
     public static final String FIND_ACTION_COMMAND = "Find";
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/GroovyFilter.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/GroovyFilter.java
index 11f799a..b804235 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/GroovyFilter.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/GroovyFilter.java
@@ -32,10 +32,6 @@ import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
 
-
-/**
- * @author Evan "Hippy" Slatis
- */
 public class GroovyFilter extends StructuredSyntaxDocumentFilter {
 
     // java tab policy action
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxDocumentFilter.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxDocumentFilter.java
index 796aeb3..93fa288 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxDocumentFilter.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxDocumentFilter.java
@@ -40,10 +40,6 @@ import java.util.TreeSet;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-/**
- *
- * @author Evan "Hippy" Slatis
- */
 public class StructuredSyntaxDocumentFilter extends DocumentFilter {
     
     public static final String TAB_REPLACEMENT = "    ";
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxHandler.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxHandler.java
index 922e89c..2979bf5 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxHandler.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxHandler.java
@@ -23,9 +23,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.helpers.DefaultHandler;
 
-/**
- * @author Evan "Hippy" Slatis
- */
 public class StructuredSyntaxHandler extends DefaultHandler {
 
     //StyleConstants.
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxResources.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxResources.java
index 62beed8..e04feaf 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxResources.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/StructuredSyntaxResources.java
@@ -24,8 +24,6 @@ import java.awt.datatransfer.Clipboard;
 /**
  * Contains all the basic resources and values used by the utility frame work
  * framework.
- *
- * @author Evan "Hippy" Slatis
  */
 public final class StructuredSyntaxResources {
 
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextEditor.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextEditor.java
index 34df868..ec30af1 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextEditor.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextEditor.java
@@ -44,8 +44,6 @@ import java.util.regex.Pattern;
 
 /**
  * A simple text pane that is printable and wrapping is optional.
- *
- * @author Evan "Hippy" Slatis
  */
 public class TextEditor extends JTextPane implements Pageable, Printable {
 
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextUndoManager.java b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextUndoManager.java
index 05a9d24..7cfc89d 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextUndoManager.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/ui/text/TextUndoManager.java
@@ -29,8 +29,6 @@ import java.beans.PropertyChangeListener;
  * To use this, simply drop this as an UndoableEditListener into your document,
  * and then create actions to call undo/redo as needed (checking can undo/redo
  * first, of course).
- *
- * @author Evan "Hippy" Slatis
  */
 public class TextUndoManager extends UndoManager {
 
diff --git a/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapterTest.groovy b/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapterTest.groovy
index 371d8b4..29dff39 100644
--- a/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapterTest.groovy
+++ b/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapterTest.groovy
@@ -30,8 +30,6 @@ import junit.framework.AssertionFailedError
  * The assertions in this test case often assert against the toString() representation of
  * an object. Normally, this is bad form. However, the class under test is meant to display
  * toString() forms in a user interface. So in this case it is appropriate. 
- *
- * @author Hamlet D'Arcy
  */
 class ScriptToTreeNodeAdapterTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-console/src/test/groovy/groovy/ui/HistoryRecordGetTextToRunTests.groovy b/subprojects/groovy-console/src/test/groovy/groovy/ui/HistoryRecordGetTextToRunTests.groovy
index dde57c4..c012233 100644
--- a/subprojects/groovy-console/src/test/groovy/groovy/ui/HistoryRecordGetTextToRunTests.groovy
+++ b/subprojects/groovy-console/src/test/groovy/groovy/ui/HistoryRecordGetTextToRunTests.groovy
@@ -20,10 +20,6 @@ package groovy.ui
 
 import junit.framework.TestCase
 
-/*
- * @author Sergii Bondarenko
- * @author Pascal Schumacher
- */
 class HistoryRecordGetTextToRunTests extends TestCase {
      
     void testImport() {
diff --git a/subprojects/groovy-console/src/test/groovy/groovy/ui/text/GroovyFilterTests.groovy b/subprojects/groovy-console/src/test/groovy/groovy/ui/text/GroovyFilterTests.groovy
index 7085053..f11c51a 100644
--- a/subprojects/groovy-console/src/test/groovy/groovy/ui/text/GroovyFilterTests.groovy
+++ b/subprojects/groovy-console/src/test/groovy/groovy/ui/text/GroovyFilterTests.groovy
@@ -18,9 +18,6 @@
  */
 package groovy.ui.text
 
-/**
- * @author Andre Steingress
- */
 class GroovyFilterTests extends GroovyTestCase {
 
     void testDecimalIntegerLiteral() {
diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyDocTool.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyDocTool.java
index 9566cea..402c41d 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyDocTool.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyDocTool.java
@@ -28,9 +28,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
-/**
- * @author Jeremy Rayner
- */
 public class GroovyDocTool {
     private final Logger log = Logger.create(GroovyDocTool.class);
     private final GroovyRootDocBuilder rootDocBuilder;
diff --git a/subprojects/groovy-groovydoc/src/spec/doc/groovydoc.adoc b/subprojects/groovy-groovydoc/src/spec/doc/groovydoc.adoc
index 04b481b..ca44a81 100644
--- a/subprojects/groovy-groovydoc/src/spec/doc/groovydoc.adoc
+++ b/subprojects/groovy-groovydoc/src/spec/doc/groovydoc.adoc
@@ -199,8 +199,6 @@ import org.codehaus.groovy.ant.Groovydoc;
 
 /**
  * Overrides GroovyDoc's default class template - for testing purpose only.
- *
- * @author Andre Steingress
  */
 public class CustomGroovyDoc extends Groovydoc {
 
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/CustomGroovyDoc.java b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/CustomGroovyDoc.java
index 6d97d4d..619a7be 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/CustomGroovyDoc.java
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/CustomGroovyDoc.java
@@ -22,8 +22,6 @@ import org.codehaus.groovy.ant.Groovydoc;
 
 /**
  * Overrides GroovyDoc's default class template - for testing purpose only.
- *
- * @author Andre Steingress
  */
 public class CustomGroovyDoc extends Groovydoc {
 
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocTest.java b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocTest.java
index 42a1f15..2537f04 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocTest.java
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocTest.java
@@ -27,9 +27,6 @@ import java.io.FilenameFilter;
 import java.nio.charset.Charset;
 import java.util.List;
 
-/**
- * @author Andre Steingress
- */
 public class GroovyDocTest extends BuildFileTest {
 
     private static final String SRC_TESTFILES;
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilderTest.java b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilderTest.java
index 128f7d1..22c7e51 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilderTest.java
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilderTest.java
@@ -22,9 +22,6 @@ import groovy.util.GroovyTestCase;
 
 import java.util.ArrayList;
 
-/**
- * @author Paul King
- */
 public class GroovyRootDocBuilderTest extends GroovyTestCase {
     private String src = "/**\n" +
             " * <h1>Description</h1>\n" +
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/SimpleGroovyRootDocTests.groovy b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/SimpleGroovyRootDocTests.groovy
index 70b78f6..7f631c1 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/SimpleGroovyRootDocTests.groovy
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/SimpleGroovyRootDocTests.groovy
@@ -18,9 +18,6 @@
  */
 package org.codehaus.groovy.tools.groovydoc
 
-/**
- * @author Andre Steingress
- */
 class SimpleGroovyRootDocTests extends GroovyTestCase {
 
     // GROOVY-6017


[groovy] 14/28: GROOVY-8937: Bump antlr to 4.7.2

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 61ecb74d72d44b02aaebbff5153dfe6f63c6431f
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Dec 23 18:37:05 2018 +0800

    GROOVY-8937: Bump antlr to 4.7.2
---
 build.gradle | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/build.gradle b/build.gradle
index b710540..520420b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -162,7 +162,7 @@ ext {
     xmlunitVersion = '1.6'
     xstreamVersion = '1.4.11.1'
     spockVersion = '1.2-groovy-2.4-SNAPSHOT' // supports 3.0
-    antlr4Version = '4.7.1'
+    antlr4Version = '4.7.2'
     spotbugsannotationsVersion = '3.1.9'
 }
 
@@ -462,4 +462,4 @@ licenseReport {
 //
 //licenseFormat.dependsOn licenseFormatCustom
 //licenseFormat.dependsOn licenseFormatGradle
-//
\ No newline at end of file
+//


[groovy] 12/28: GROOVY-8931: AstNodeToScriptVisitor - wrong "extends/implements" order (tweak test)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit c7060d136f82c85b7f3cf53b5404a95acf86ed33
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue Dec 18 21:32:17 2018 +1000

    GROOVY-8931: AstNodeToScriptVisitor - wrong "extends/implements" order (tweak test)
---
 .../groovy/inspect/swingui/AstNodeToScriptAdapterTest.groovy      | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/AstNodeToScriptAdapterTest.groovy b/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/AstNodeToScriptAdapterTest.groovy
index 085a553..e42f173 100644
--- a/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/AstNodeToScriptAdapterTest.groovy
+++ b/subprojects/groovy-console/src/test/groovy/groovy/inspect/swingui/AstNodeToScriptAdapterTest.groovy
@@ -109,7 +109,7 @@ class AstNodeToScriptAdapterTest extends GroovyTestCase {
                    int size() {}
                 }'''
         String result = compileToScript(script, CompilePhase.SEMANTIC_ANALYSIS)
-        assert result.contains('public class MyList<E> implements java.util.List<E> extends java.util.AbstractList<E> {')
+        assert result.contains('public class MyList<E> extends java.util.AbstractList<E> implements java.util.List<E> {')
     }
 
     void testGenericBoundsOnClass() {
@@ -117,8 +117,8 @@ class AstNodeToScriptAdapterTest extends GroovyTestCase {
                     abstract class MyClass<T extends String & Callable<String>, U extends Integer> extends AbstractList<String> implements Callable<? super Number> { }  '''
         String result = compileToScript(script, CompilePhase.SEMANTIC_ANALYSIS)
         assert result.contains('MyClass<T extends java.lang.String & java.util.concurrent.Callable<String>, U extends java.lang.Integer> ' +
-                'implements java.util.concurrent.Callable<? super java.lang.Number> ' +
-                'extends java.util.AbstractList<String> {')
+                'extends java.util.AbstractList<String> ' +
+                'implements java.util.concurrent.Callable<? super java.lang.Number> {')
     }
 
     void testGenericsInVariables() {
@@ -156,7 +156,7 @@ class AstNodeToScriptAdapterTest extends GroovyTestCase {
                                  void addBranch(Tree<? extends V> branch) { branches.add(branch); }
                              } '''
         String result = compileToScript(script, CompilePhase.CLASS_GENERATION)
-        assert result.contains('public class Tree<V> implements groovy.lang.GroovyObject extends java.lang.Object')
+        assert result.contains('public class Tree<V> extends java.lang.Object implements groovy.lang.GroovyObject')
         assert result.contains('private java.lang.Object<V> value') // todo: is Object<V> correct? How do you know?
         assert result.contains('private java.util.List<Tree> branches') // should the <? extends V> be dropped?
         assert result.contains('branches = new java.util.ArrayList<Tree>()') // should the <? extends V> be dropped?


[groovy] 22/28: Fix typos (closes #842)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 77ab47ed2c4b08cd363eaeced16461e1fb1632ad
Author: Javier S. López <js...@gmail.com>
AuthorDate: Sun Dec 16 12:29:37 2018 +0100

    Fix typos (closes #842)
---
 src/spec/doc/design-pattern-composite.adoc   | 2 +-
 subprojects/groovy-jmx/src/spec/doc/jmx.adoc | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/spec/doc/design-pattern-composite.adoc b/src/spec/doc/design-pattern-composite.adoc
index e307431..32ce50e 100644
--- a/src/spec/doc/design-pattern-composite.adoc
+++ b/src/spec/doc/design-pattern-composite.adoc
@@ -29,7 +29,7 @@ Consider this usage of the composite pattern where we want to call `toString()`
 
 image::assets/img/CompositeClasses.gif[]
 
-In Java, the `Component` class is essential as it provides the type used for both leaf and composite nodes. In Groovy, because of duck-typing, we don't need it for that purpose, however, it can still server as a useful place to place common behaviour between the leaf and composite nodes.
+In Java, the `Component` class is essential as it provides the type used for both leaf and composite nodes. In Groovy, because of duck-typing, we don't need it for that purpose, however, it can still serve as a useful place to place common behaviour between the leaf and composite nodes.
 
 For our purposes, we will assemble the following hierarchy of components.
 
diff --git a/subprojects/groovy-jmx/src/spec/doc/jmx.adoc b/subprojects/groovy-jmx/src/spec/doc/jmx.adoc
index 5c748c6..935e33a 100644
--- a/subprojects/groovy-jmx/src/spec/doc/jmx.adoc
+++ b/subprojects/groovy-jmx/src/spec/doc/jmx.adoc
@@ -712,7 +712,7 @@ JmxBuilder **supports the explicit description and export of constructors** defi
 
 ==== Export all Constructors with "*"
 
-You can use the builder's special '""' **notation to *export all constructors** declared on the underlying bean. The builder will use default values to describe the MBean constructors.
+You can use the builder's special "*" **notation to export all constructors** declared on the underlying bean. The builder will use default values to describe the MBean constructors.
 
 [source,groovy]
 ----
@@ -747,7 +747,7 @@ Similar to constructors, JmxBuilder supports the description and export of MBean
 
 ==== Export All Operations with "*"
 
-You can use the builder's special '""'' **notation to *export all operations** defined on the bean to be exposed for management. The builder will use default descriptor values for the operations being exported.
+You can use the builder's special "*" **notation to export all operations** defined on the bean to be exposed for management. The builder will use default descriptor values for the operations being exported.
 
 [source,groovy]
 ----


[groovy] 28/28: cleanup/remove @author tags as per Apache recommended practices for groovy-bsf, groovy-jmx, groovy-json, groovy-jsr223

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 95575663ccb34069bd289bfeb57a773fd759d41f
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Dec 28 22:09:24 2018 +1000

    cleanup/remove @author tags as per Apache recommended practices for groovy-bsf, groovy-jmx, groovy-json, groovy-jsr223
---
 gradle/pomconfigurer.gradle                        |   9 ++
 .../codehaus/groovy/bsf/CachingGroovyEngine.java   |   2 -
 .../java/org/codehaus/groovy/bsf/GroovyEngine.java |   7 +-
 .../test/java/org/codehaus/groovy/bsf/BSFTest.java |   5 +-
 .../java/org/codehaus/groovy/bsf/CacheBSFTest.java |   2 -
 .../jmx/builder/JmxAttributeInfoManager.groovy     |   8 +-
 .../groovy/jmx/builder/JmxBeanExportFactory.groovy |  10 +-
 .../groovy/jmx/builder/JmxBeanFactory.groovy       |  16 ++-
 .../groovy/jmx/builder/JmxBeanInfoManager.groovy   |   8 +-
 .../groovy/jmx/builder/JmxBeansFactory.groovy      |  21 ++--
 .../groovy/groovy/jmx/builder/JmxBuilder.groovy    |  24 ++--
 .../groovy/jmx/builder/JmxBuilderTools.groovy      | 135 ++++++++++----------
 .../jmx/builder/JmxClientConnectorFactory.groovy   |   7 +-
 .../groovy/jmx/builder/JmxEmitterFactory.groovy    |  14 +--
 .../groovy/jmx/builder/JmxListenerFactory.groovy   |  29 +++--
 .../groovy/jmx/builder/JmxMetaMapBuilder.groovy    | 136 ++++++++++-----------
 .../jmx/builder/JmxOperationInfoManager.groovy     |  17 ++-
 .../jmx/builder/JmxServerConnectorFactory.groovy   |  19 ++-
 .../groovy/jmx/builder/JmxBuilderException.java    |   2 -
 .../groovy/jmx/builder/JmxBuilderModelMBean.java   |   3 -
 .../java/groovy/jmx/builder/JmxEventEmitter.java   |   1 -
 .../groovy/jmx/builder/JmxEventEmitterMBean.java   |   1 -
 .../java/groovy/jmx/builder/JmxEventListener.java  |   1 -
 .../src/main/java/groovy/util/GroovyMBean.java     |   4 -
 .../groovy/jmx/builder/JmxBeansFactoryTest.groovy  |   4 -
 .../src/test/java/groovy/util/MBeanTest.java       |   2 -
 .../src/main/java/groovy/json/JsonBuilder.java     |   2 -
 .../src/main/java/groovy/json/JsonDelegate.java    |   2 -
 .../src/main/java/groovy/json/JsonException.java   |   1 -
 .../src/main/java/groovy/json/JsonLexer.java       |   1 -
 .../src/main/java/groovy/json/JsonOutput.java      |   6 -
 .../src/main/java/groovy/json/JsonParser.java      |   2 +-
 .../src/main/java/groovy/json/JsonParserType.java  |   1 -
 .../src/main/java/groovy/json/JsonSlurper.java     |   3 -
 .../main/java/groovy/json/JsonSlurperClassic.java  |   1 -
 .../src/main/java/groovy/json/JsonToken.java       |   1 -
 .../src/main/java/groovy/json/JsonTokenType.java   |   1 -
 .../java/groovy/json/StreamingJsonBuilder.java     |   4 -
 .../apache/groovy/json/internal/ArrayUtils.java    |   3 -
 .../groovy/json/internal/BaseJsonParser.java       |   2 -
 .../apache/groovy/json/internal/ByteScanner.java   |   3 -
 .../org/apache/groovy/json/internal/Cache.java     |   1 -
 .../org/apache/groovy/json/internal/CacheType.java |   3 -
 .../org/apache/groovy/json/internal/CharBuf.java   |   3 -
 .../apache/groovy/json/internal/CharScanner.java   |   3 -
 .../groovy/json/internal/CharSequenceValue.java    |   3 -
 .../groovy/json/internal/CharacterSource.java      |   3 -
 .../java/org/apache/groovy/json/internal/Chr.java  |   3 -
 .../org/apache/groovy/json/internal/Dates.java     |   3 -
 .../apache/groovy/json/internal/Exceptions.java    |   3 -
 .../java/org/apache/groovy/json/internal/IO.java   |   3 -
 .../groovy/json/internal/JsonFastParser.java       |   2 -
 .../groovy/json/internal/JsonParserCharArray.java  |   6 +-
 .../apache/groovy/json/internal/JsonParserLax.java |   3 -
 .../internal/JsonParserUsingCharacterSource.java   |   3 -
 .../groovy/json/internal/JsonStringDecoder.java    |   3 -
 .../org/apache/groovy/json/internal/LazyMap.java   |   2 -
 .../apache/groovy/json/internal/LazyValueMap.java  |   2 -
 .../apache/groovy/json/internal/MapItemValue.java  |   2 -
 .../apache/groovy/json/internal/NumberValue.java   |   3 -
 .../json/internal/ReaderCharacterSource.java       |   3 -
 .../apache/groovy/json/internal/SimpleCache.java   |   3 -
 .../java/org/apache/groovy/json/internal/Type.java |   3 -
 .../org/apache/groovy/json/internal/Value.java     |   3 -
 .../groovy/json/internal/ValueContainer.java       |   3 -
 .../org/apache/groovy/json/internal/ValueList.java |   3 -
 .../org/apache/groovy/json/internal/ValueMap.java  |   3 -
 .../apache/groovy/json/internal/ValueMapImpl.java  |   2 -
 .../src/test/groovy/groovy/json/CharBufTest.groovy |   3 -
 .../src/test/groovy/groovy/json/IOTest.groovy      |   2 -
 .../test/groovy/groovy/json/JsonBuilderTest.groovy |   3 -
 .../test/groovy/groovy/json/JsonLexerTest.groovy   |   3 -
 .../test/groovy/groovy/json/JsonOutputTest.groovy  |   4 -
 .../test/groovy/groovy/json/JsonSlurperTest.groovy |   3 -
 .../groovy/groovy/json/JsonTokenTypeTest.groovy    |   4 -
 .../groovy/groovy/json/JsonTokenValueTest.groovy   |   3 -
 .../groovy/groovy/json/RealJsonPayloadsTest.groovy |   3 -
 .../groovy/json/StreamingJsonBuilderTest.groovy    |   4 -
 .../groovy/jsr223/GroovyCompiledScript.java        |   3 +-
 .../groovy/jsr223/GroovyScriptEngineFactory.java   |   5 +-
 .../groovy/jsr223/GroovyScriptEngineImpl.java      |   6 +-
 .../org/codehaus/groovy/jsr223/JSR223Test.groovy   |   3 -
 .../codehaus/groovy/jsr223/JSR223SecurityTest.java |   2 -
 83 files changed, 225 insertions(+), 423 deletions(-)

diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index d98454a..828d408 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -501,6 +501,12 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Philip Milne'
             }
             contributor {
+                name 'Tiago Fernandez'
+            }
+            contributor {
+                name 'Steve Button'
+            }
+            contributor {
                 name 'Joachim Baumann'
             }
             contributor {
@@ -690,6 +696,9 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Martin Ghados'
             }
             contributor {
+                name 'Martin Stockhammer'
+            }
+            contributor {
                 name 'Alberto Mijares'
             }
             contributor {
diff --git a/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/CachingGroovyEngine.java b/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/CachingGroovyEngine.java
index aa5b078..9d49673 100644
--- a/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/CachingGroovyEngine.java
+++ b/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/CachingGroovyEngine.java
@@ -39,8 +39,6 @@ import java.util.logging.Logger;
 
 /**
  * A Caching implementation of the GroovyEngine
- *
- * @author James Birchfield
  */
 public class CachingGroovyEngine extends GroovyEngine {
     private static final Logger LOG = Logger.getLogger(CachingGroovyEngine.class.getName());
diff --git a/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/GroovyEngine.java b/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/GroovyEngine.java
index 1c524fe..5722d4a 100644
--- a/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/GroovyEngine.java
+++ b/subprojects/groovy-bsf/src/main/java/org/codehaus/groovy/bsf/GroovyEngine.java
@@ -30,12 +30,9 @@ import org.codehaus.groovy.runtime.InvokerHelper;
 import java.util.Vector;
 
 /**
- * A BSF Engine for the <a href="http://groovy-lang.org/">Groovy</a>
- * scripting language.
+ * A BSF Engine for the <a href="http://groovy-lang.org/">Groovy</a> scripting language.
  * <p>
- * It's derived from the Jython / JPython engine
- *
- * @author James Strachan
+ * It's inspired from the Jython engine
  */
 public class GroovyEngine extends BSFEngineImpl {
     protected GroovyShell shell;
diff --git a/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/BSFTest.java b/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/BSFTest.java
index 1c1d384..44bb433 100644
--- a/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/BSFTest.java
+++ b/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/BSFTest.java
@@ -29,10 +29,7 @@ import java.util.List;
 import java.util.Vector;
 
 /**
- * Tests the BSF integration
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Paul King
+ * Tests the BSF integration.
  */
 public class BSFTest extends TestCase {
     private static final Class ENGINE = GroovyEngine.class;
diff --git a/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/CacheBSFTest.java b/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/CacheBSFTest.java
index b8ef811..4a09ebe 100644
--- a/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/CacheBSFTest.java
+++ b/subprojects/groovy-bsf/src/test/java/org/codehaus/groovy/bsf/CacheBSFTest.java
@@ -28,8 +28,6 @@ import java.util.Vector;
 
 /**
  * Tests the Caching BSF integration
- *
- * @author James Birchfield
  */
 public class CacheBSFTest extends TestCase {
 
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxAttributeInfoManager.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxAttributeInfoManager.groovy
index 8c03110..d4345f3 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxAttributeInfoManager.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxAttributeInfoManager.groovy
@@ -26,8 +26,6 @@ import javax.management.modelmbean.ModelMBeanAttributeInfo
  * It cycles through the meta map from the Node and generate JMX Info objects used to
  * expose information in the MBeanServer.
  *
- * @author Vladimir Vivien 
- *
  * @see groovy.jmx.builder.JmxMetaMapBuilder
  */
 class JmxAttributeInfoManager {
@@ -36,11 +34,11 @@ class JmxAttributeInfoManager {
      * @param metaMap list of meta data maps
      * @return ModelMBeanAttributeInfo
      */
-    public static List<ModelMBeanAttributeInfo> getAttributeInfosFromMap(Map metaMap) {
+    static List<ModelMBeanAttributeInfo> getAttributeInfosFromMap(Map metaMap) {
         if (!metaMap) return null
 
         def attribs = []
-        metaMap.each {attribName, map ->
+        metaMap.each { attribName, map ->
             map.name = attribName
             ModelMBeanAttributeInfo info = getAttributeInfoFromMap(map)
             attribs << info
@@ -54,7 +52,7 @@ class JmxAttributeInfoManager {
      * @param map the map object containing the meta data
      * @return the generated ModelMBeanAttribute Info object.
      */
-    public static ModelMBeanAttributeInfo getAttributeInfoFromMap(Map map) {
+    static ModelMBeanAttributeInfo getAttributeInfoFromMap(Map map) {
         if (!map) return null
 
         MetaProperty prop = map.remove("property")
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanExportFactory.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanExportFactory.groovy
index 70d9736..68348cd 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanExportFactory.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanExportFactory.groovy
@@ -34,23 +34,21 @@ package groovy.jmx.builder
  * "replace" - replaces existing bean,  <br>
  * "ignore" - ignores the registration request if bean already exists.<br>
  * "error" - throws error if bean is already registered.
- *
- * @author vladimir vivien 
  */
 class JmxBeanExportFactory extends AbstractFactory {
     // def server
     def registrationPolicy
 
-    public Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeArgs, Map nodeAttribs) {
+    Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeArgs, Map nodeAttribs) {
         registrationPolicy = nodeAttribs?.remove("policy") ?: nodeAttribs?.remove("regPolicy") ?: "replace"
         return []
     }
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
-        return true;
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
+        return true
     }
 
-    public boolean isLeaf() {
+    boolean isLeaf() {
         return false
     }
 }
\ No newline at end of file
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanFactory.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanFactory.groovy
index 443fc56..f6dc4ca 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanFactory.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanFactory.groovy
@@ -75,7 +75,7 @@ import javax.management.MBeanServer
  *         "opName3":[
  *             onCall:{event->
  *                 // onCall event callback code here.
- *             }]
+ *}]
  *         ],
  *
  *     listeners:[
@@ -83,15 +83,13 @@ import javax.management.MBeanServer
  *             event: "eventType", from:"object name"|ObjectName(),
  *             call:{event->
  *                 // handler code for event
- *             }],
+ *}],
  *     ]
  * )
  * </code></pre>
- *
- * @author Vladimir Vivien
  */
 class JmxBeanFactory extends AbstractFactory {
-    public Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttributes) {
+    Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttributes) {
 
         JmxBuilder fsb = (JmxBuilder) builder
         MBeanServer server = (MBeanServer) fsb.getMBeanServer()
@@ -118,11 +116,11 @@ class JmxBeanFactory extends AbstractFactory {
         return metaMap
     }
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
-        return false;
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
+        return false
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
         JmxBuilder fsb = (JmxBuilder) builder
         MBeanServer server = (MBeanServer) fsb.getMBeanServer()
         def metaMap = thisNode
@@ -147,7 +145,7 @@ class JmxBeanFactory extends AbstractFactory {
         }
     }
 
-    public boolean isLeaf() {
+    boolean isLeaf() {
         return false
     }
 
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanInfoManager.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanInfoManager.groovy
index 4c14696..2e8637d 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanInfoManager.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeanInfoManager.groovy
@@ -30,8 +30,6 @@ import javax.management.modelmbean.ModelMBeanOperationInfo
 /**
  * The JmxBeanInfoManager creates fully-described model mbean info object using the underlying meta map.
  * The MBeanInfo object is used to provide description about the actual exported MBean instance.
- *
- * @author Vladimir Vivien
  */
 class JmxBeanInfoManager {
     /**
@@ -39,7 +37,7 @@ class JmxBeanInfoManager {
      * @param object used for name
      * @return an instance of ObjectName
      */
-    public static ObjectName buildDefaultObjectName(String defaultDomain, String defaultType, def object) {
+    static ObjectName buildDefaultObjectName(String defaultDomain, String defaultType, def object) {
         def name = "${defaultDomain}:type=${defaultType},name=${object.class.canonicalName}@${object.hashCode()}"
         return new ObjectName(name)
     }
@@ -49,7 +47,7 @@ class JmxBeanInfoManager {
      * @param map map of object
      * @return ModelMBeanInfo built from map
      */
-    public static ModelMBeanInfo getModelMBeanInfoFromMap(Map map) {
+    static ModelMBeanInfo getModelMBeanInfoFromMap(Map map) {
         if (!map) {
             throw new JmxBuilderException("Unable to create default ModelMBeanInfo, missing meta map.")
         }
@@ -62,7 +60,7 @@ class JmxBeanInfoManager {
         def operations = JmxOperationInfoManager.getOperationInfosFromMap(map.operations) ?: []
 
         //generate setters/getters operations for found attribs
-        attributes.each {info ->
+        attributes.each { info ->
             MetaProperty prop = object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(info.name))
             if (prop && info.isReadable()) {
                 operations << JmxOperationInfoManager.createGetterOperationInfoFromProperty(prop)
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeansFactory.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeansFactory.groovy
index 0cb46f3..deb3c82 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeansFactory.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBeansFactory.groovy
@@ -20,12 +20,8 @@ package groovy.jmx.builder
 
 import javax.management.MBeanServer
 
-/**
- *
- * @author vladimir
- */
 class JmxBeansFactory extends AbstractFactory {
-    public Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttribs) {
+    Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttribs) {
         if (!nodeParam || !(nodeParam instanceof List)) {
             throw new JmxBuilderException("Node '${nodeName}' requires a list of object to be exported.")
         }
@@ -35,10 +31,9 @@ class JmxBeansFactory extends AbstractFactory {
 
         def metaMaps = []
         def targets = nodeParam
-        def map
 
         // prepare metaMap for each object
-        targets.each {target ->
+        targets.each { target ->
             def metaMap = JmxMetaMapBuilder.buildObjectMapFrom(target)
             metaMap.server = metaMap.server ?: server
             metaMap.isMBean = JmxBuilderTools.isClassMBean(target.getClass())
@@ -47,22 +42,22 @@ class JmxBeansFactory extends AbstractFactory {
         return metaMaps
     }
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
-        return false;
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
+        return false
     }
 
-    public boolean isLeaf() {
-        return true;
+    boolean isLeaf() {
+        return true
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
         JmxBuilder fsb = (JmxBuilder) builder
         MBeanServer server = (MBeanServer) fsb.getMBeanServer()
         def metaMaps = thisNode
 
         def regPolicy = fsb.parentFactory?.registrationPolicy ?: "replace"
 
-        metaMaps.each {metaMap ->
+        metaMaps.each { metaMap ->
             def registeredBean = JmxBuilderTools.registerMBeanFromMap(regPolicy, metaMap)
 
             // if replace, remove from parent node and re add.
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilder.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilder.groovy
index 50f890d..b3e4ad0 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilder.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilder.groovy
@@ -23,8 +23,6 @@ import javax.management.MBeanServerConnection
 /** *
  * This is JmxBuilder's factory builder class.  It is the parent node to all other children nodes supported
  * by JmxBuilder.
- *
- * @author Vladimir Vivien
  */
 class JmxBuilder extends FactoryBuilderSupport {
     private MBeanServerConnection server
@@ -32,11 +30,11 @@ class JmxBuilder extends FactoryBuilderSupport {
     private String defaultNameType = JmxBuilderTools.DEFAULT_NAME_TYPE
     private String mode = "markup"
 
-    public JmxBuilder() {
+    JmxBuilder() {
         registerFactories()
     }
 
-    public JmxBuilder(MBeanServerConnection svrConnection) {
+    JmxBuilder(MBeanServerConnection svrConnection) {
         this()
         server = svrConnection
     }
@@ -54,45 +52,45 @@ class JmxBuilder extends FactoryBuilderSupport {
         registerFactory "connectorServer", svrFactory
         registerFactory "serverConnector", svrFactory
 
-        def newClientFactory = {new JmxClientConnectorFactory()}
+        def newClientFactory = { new JmxClientConnectorFactory() }
         registerFactory "client", newClientFactory()
         registerFactory "connector", newClientFactory()
         registerFactory "clientConnector", newClientFactory()
         registerFactory "connectorClient", newClientFactory()
     }
 
-    public MBeanServerConnection getMBeanServer() {
+    MBeanServerConnection getMBeanServer() {
         if (!server) {
             server = JmxBuilderTools.getMBeanServer()
         }
         return server
     }
 
-    public void setDefaultJmxNameDomain(String domain) {
+    void setDefaultJmxNameDomain(String domain) {
         this.defaultNameDomain = domain
     }
 
-    public String getDefaultJmxNameDomain() {
+    String getDefaultJmxNameDomain() {
         return this.defaultNameDomain
     }
 
-    public void setDefaultJmxNameType(String type) {
+    void setDefaultJmxNameType(String type) {
         this.defaultNameType = type
     }
 
-    public String getDefaultJmxNameType() {
+    String getDefaultJmxNameType() {
         return this.defaultNameType
     }
 
-    public void setMBeanServer(MBeanServerConnection svr) {
+    void setMBeanServer(MBeanServerConnection svr) {
         server = svr
     }
 
-    public void setMode(String mode) {
+    void setMode(String mode) {
         this.mode = mode
     }
 
-    public String getMode() {
+    String getMode() {
         return mode
     }
 
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilderTools.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilderTools.groovy
index 85906dc..3e6fb64 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilderTools.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxBuilderTools.groovy
@@ -26,8 +26,6 @@ import java.lang.management.ManagementFactory
 
 /**
  * This is a utility class used as a helper for JmxBuilder.
- *
- * @author Vladimir Vivien
  */
 class JmxBuilderTools {
     static String DEFAULT_DOMAIN = "jmx.builder"
@@ -93,72 +91,71 @@ class JmxBuilderTools {
     static String EVENT_KEY_TARGETS = "eventListeners"
 
 
-
     static Map PRIMITIVE_TYPES = [
-            "char": java.lang.Integer.TYPE,
-            "byte": java.lang.Byte.TYPE,
-            "short": java.lang.Short.TYPE,
-            "int": java.lang.Integer.TYPE,
-            "long": java.lang.Long.TYPE,
-            "float": java.lang.Float.TYPE,
-            "double": java.lang.Double.TYPE,
+            "char"   : java.lang.Integer.TYPE,
+            "byte"   : java.lang.Byte.TYPE,
+            "short"  : java.lang.Short.TYPE,
+            "int"    : java.lang.Integer.TYPE,
+            "long"   : java.lang.Long.TYPE,
+            "float"  : java.lang.Float.TYPE,
+            "double" : java.lang.Double.TYPE,
             "boolean": java.lang.Boolean.TYPE
     ]
     static Map TYPE_MAP = [
-            "object": java.lang.Object.class,
-            "Object": java.lang.Object.class,
-            "java.lang.Object": java.lang.Object.class,
-
-            "string": java.lang.String.class,
-            "String": java.lang.String.class,
-            "java.lang.String": java.lang.String.class,
-
-            "char": char.class,
-            "character": java.lang.Character.class,
-            "Character": java.lang.Character.class,
-            "java.lang.Character": java.lang.Character.class,
-
-            "byte": byte.class,
-            "Byte": java.lang.Byte.class,
-            "java.lang.Byte": java.lang.Byte.class,
-
-            "short": short.class,
-            "Short": java.lang.Short.class,
-            "java.lang.Short": java.lang.Short.class,
-
-            "int": int.class,
-            "integer": java.lang.Integer.class,
-            "Integer": java.lang.Integer.class,
-            "java.lang.Integer": java.lang.Integer.class,
-
-            "long": long.class,
-            "Long": java.lang.Long.class,
-            "java.lang.Long": java.lang.Long.class,
-
-            "float": float.class,
-            "Float": java.lang.Float.class,
-            "java.lang.Float": java.lang.Float.class,
-
-            "double": double.class,
-            "Double": java.lang.Double.class,
-            "java.lang.Double": java.lang.Double.class,
-
-            "boolean": boolean.class,
-            "Boolean": java.lang.Boolean.class,
-            "java.lang.Boolean": java.lang.Boolean.class,
-
-            "bigDec": java.math.BigDecimal.class,
-            "bigDecimal": java.math.BigDecimal.class,
-            "BigDecimal": java.math.BigDecimal.class,
+            "object"              : java.lang.Object.class,
+            "Object"              : java.lang.Object.class,
+            "java.lang.Object"    : java.lang.Object.class,
+
+            "string"              : java.lang.String.class,
+            "String"              : java.lang.String.class,
+            "java.lang.String"    : java.lang.String.class,
+
+            "char"                : char.class,
+            "character"           : java.lang.Character.class,
+            "Character"           : java.lang.Character.class,
+            "java.lang.Character" : java.lang.Character.class,
+
+            "byte"                : byte.class,
+            "Byte"                : java.lang.Byte.class,
+            "java.lang.Byte"      : java.lang.Byte.class,
+
+            "short"               : short.class,
+            "Short"               : java.lang.Short.class,
+            "java.lang.Short"     : java.lang.Short.class,
+
+            "int"                 : int.class,
+            "integer"             : java.lang.Integer.class,
+            "Integer"             : java.lang.Integer.class,
+            "java.lang.Integer"   : java.lang.Integer.class,
+
+            "long"                : long.class,
+            "Long"                : java.lang.Long.class,
+            "java.lang.Long"      : java.lang.Long.class,
+
+            "float"               : float.class,
+            "Float"               : java.lang.Float.class,
+            "java.lang.Float"     : java.lang.Float.class,
+
+            "double"              : double.class,
+            "Double"              : java.lang.Double.class,
+            "java.lang.Double"    : java.lang.Double.class,
+
+            "boolean"             : boolean.class,
+            "Boolean"             : java.lang.Boolean.class,
+            "java.lang.Boolean"   : java.lang.Boolean.class,
+
+            "bigDec"              : java.math.BigDecimal.class,
+            "bigDecimal"          : java.math.BigDecimal.class,
+            "BigDecimal"          : java.math.BigDecimal.class,
             "java.math.BigDecimal": java.math.BigDecimal.class,
 
-            "bigInt": java.math.BigInteger.class,
-            "bigInteger": java.math.BigInteger.class,
-            "BigInteger": java.math.BigInteger.class,
+            "bigInt"              : java.math.BigInteger.class,
+            "bigInteger"          : java.math.BigInteger.class,
+            "BigInteger"          : java.math.BigInteger.class,
             "java.math.BigInteger": java.math.BigInteger.class,
 
-            "date": java.util.Date.class,
-            "java.util.Date": java.util.Date.class
+            "date"                : java.util.Date.class,
+            "java.util.Date"      : java.util.Date.class
     ]
 
     /**
@@ -166,7 +163,7 @@ class JmxBuilderTools {
      * @param value - string to capitalize.
      * @return - a capitalized string.
      */
-    public static String capitalize(String value) {
+    static String capitalize(String value) {
         if (!value) return null
         if (value.length() == 1) return value.toUpperCase()
         return (value.length() > 1) ? value[0].toUpperCase() + value[1..-1] : value.toUpperCase()
@@ -177,7 +174,7 @@ class JmxBuilderTools {
      * @param value - string to uncap.
      * @return uncap'ed string.
      */
-    public static String uncapitalize(String value) {
+    static String uncapitalize(String value) {
         if (!value) return null
         if (value.length() == 1) return value.toLowerCase()
         return (value.length() > 1) ? value[0].toLowerCase() + value[1..-1] : value.toLowerCase()
@@ -188,7 +185,7 @@ class JmxBuilderTools {
      * @param obj - the backing pojo/pogo
      * @return the generated ObjectName() instance.
      */
-    public static ObjectName getDefaultObjectName(def obj) {
+    static ObjectName getDefaultObjectName(def obj) {
         String name = DEFAULT_DOMAIN + ":name=${obj.getClass().getName()},hashCode=${obj.hashCode()}"
         try {
             return new ObjectName(name)
@@ -201,7 +198,7 @@ class JmxBuilderTools {
      * Returns an MBeanServerConnection instance.  It searches for declared MBeanServers
      * from the MBeanServerFactory.  If none is found, the default Platform MBeanServer is returned.
      */
-    public static MBeanServerConnection getMBeanServer() {
+    static MBeanServerConnection getMBeanServer() {
         def servers = MBeanServerFactory.findMBeanServer(null);
         def server = servers.size() > 0 ? servers[0] : ManagementFactory.getPlatformMBeanServer()
         return server
@@ -212,10 +209,10 @@ class JmxBuilderTools {
      * @param params - the map with parameter info.
      * @return Class[] that represent the method signature.
      */
-    public static Class[] getSignatureFromParamInfo(def params) {
+    static Class[] getSignatureFromParamInfo(def params) {
         if (params == null || params.size() == 0) return null
         Object[] result = new Object[params.size()]
-        params.eachWithIndex {param, i ->
+        params.eachWithIndex { param, i ->
             def type = TYPE_MAP.get(param.getType()) ?: Class.forName(param.getType()) ?: null
             result.putAt i, type
         }
@@ -228,7 +225,7 @@ class JmxBuilderTools {
      * @param type - the type name to normalize
      * @return the normalized type name.
      */
-    public static String getNormalizedType(String type) {
+    static String getNormalizedType(String type) {
         if (typeIsPrimitive(type))
             return PRIMITIVE_TYPES[type].name
         return TYPE_MAP[type]?.name ?: Class.forName(type)?.name ?: null
@@ -257,7 +254,7 @@ class JmxBuilderTools {
      * @param cls - class to test
      * @return true = if class implements DynamicMBean or interface name that ends in MBean or MXBean.
      */
-    public static boolean isClassMBean(Class cls) {
+    static boolean isClassMBean(Class cls) {
         boolean result = false
         if (cls == null) result = false
         if (DynamicMBean.class.isAssignableFrom(cls)) {
@@ -275,7 +272,7 @@ class JmxBuilderTools {
         return result
     }
 
-    public static GroovyMBean registerMBeanFromMap(String regPolicy, Map metaMap) {
+    static GroovyMBean registerMBeanFromMap(String regPolicy, Map metaMap) {
         // get modelmbean info from meta map
         def info = JmxBeanInfoManager.getModelMBeanInfoFromMap(metaMap)
 
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxClientConnectorFactory.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxClientConnectorFactory.groovy
index 054143f..4aa34c8 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxClientConnectorFactory.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxClientConnectorFactory.groovy
@@ -24,7 +24,7 @@ import javax.management.remote.JMXServiceURL
 
 /**
  * This is the factory for node JmxBuilder.connectorClient.
- * A call to this node returns an insatnce of the JMXConnector interface.
+ * A call to this node returns an instance of the JMXConnector interface.
  *
  * <pre>
  * JmxBuilder.clientConnector (
@@ -35,14 +35,13 @@ import javax.management.remote.JMXServiceURL
  * )
  * </pre>
  *
- * @author Vladimir Vivien
  * @see <a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/JMXConnector.html">JMXConnector</a>
  */
 class JmxClientConnectorFactory extends AbstractFactory {
 
     private static final List SUPPORTED_PROTOCOLS = ["rmi", "jrmp", "iiop", "jmxmp"]
 
-    public Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeArgs, Map nodeAttribs) {
+    Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeArgs, Map nodeAttribs) {
         if (nodeArgs) {
             throw new JmxBuilderException("Node '${nodeName}' only supports named attributes.")
         }
@@ -61,7 +60,7 @@ class JmxClientConnectorFactory extends AbstractFactory {
         }
 
         JMXServiceURL serviceUrl = (url) ? new JMXServiceURL(url) : generateServiceUrl(protocol, host, port)
-        JMXConnector connector = JMXConnectorFactory.newJMXConnector(serviceUrl, props);
+        JMXConnector connector = JMXConnectorFactory.newJMXConnector(serviceUrl, props)
 
         return connector
     }
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxEmitterFactory.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxEmitterFactory.groovy
index 08ca426..5d26fd8 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxEmitterFactory.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxEmitterFactory.groovy
@@ -34,8 +34,6 @@ import javax.management.ObjectName
  * ...
  * jmx.emitter.send(object)
  * </pre>
- *
- * @author Vladimir Vivien
  */
 class JmxEmitterFactory extends AbstractFactory {
     def newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttribs) {
@@ -71,7 +69,7 @@ class JmxEmitterFactory extends AbstractFactory {
             throw new JmxBuilderException("Listeners must be provided as a list [listener1,...,listenerN]")
         }
 
-        listeners.each {l ->
+        listeners.each { l ->
             def listener = l
             try {
                 if (listener instanceof String) {
@@ -97,15 +95,15 @@ class JmxEmitterFactory extends AbstractFactory {
         if (!name) return new ObjectName("${fsb.getDefaultJmxNameDomain()}:type=Emitter,name=Emitter@${emitter.hashCode()}")
     }
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
-        return false;
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
+        return false
     }
 
-    public boolean isLeaf() {
-        return true;
+    boolean isLeaf() {
+        return true
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
         if (parentNode != null) {
             parentNode.add(thisNode)
         }
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxListenerFactory.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxListenerFactory.groovy
index 3c767c8..6a9adbd 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxListenerFactory.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxListenerFactory.groovy
@@ -30,50 +30,49 @@ import javax.management.NotificationFilterSupport
  * <pre>
  * JmxBuilder.listener(event:"event type", from:"Object Name"|ObjectName(), call:{event->
  *   // event handling code here.
- * })
+ *})
  * </pre>
  *
- * @author Vladimir Vivien
  * @see groovy.jmx.builder.JmxEventListener
  */
 class JmxListenerFactory extends AbstractFactory {
-    public Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttribs) {
+    Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttribs) {
         if (nodeParam) {
             throw new JmxBuilderException("Node '${nodeName}' only supports named attributes.")
         }
         JmxBuilder fsb = (JmxBuilder) builder
         def server = fsb.getMBeanServer()
-        def map = JmxMetaMapBuilder.createListenerMap(nodeAttribs);
+        def map = JmxMetaMapBuilder.createListenerMap(nodeAttribs)
 
-        def broadcaster = map.get("from");
+        def broadcaster = map.get("from")
         try {
             def eventType = (String) map.get("event");
             if (!server.isRegistered(broadcaster)) {
                 throw new JmxBuilderException("MBean '${broadcaster.toString()}' is not registered in server.")
             }
             if (eventType) {
-                NotificationFilterSupport filter = new NotificationFilterSupport();
-                filter.enableType(eventType);
-                server.addNotificationListener(broadcaster, JmxEventListener.getListener(), filter, map);
+                NotificationFilterSupport filter = new NotificationFilterSupport()
+                filter.enableType(eventType)
+                server.addNotificationListener(broadcaster, JmxEventListener.getListener(), filter, map)
             } else {
-                server.addNotificationListener(broadcaster, JmxEventListener.getListener(), null, map);
+                server.addNotificationListener(broadcaster, JmxEventListener.getListener(), null, map)
             }
         } catch (InstanceNotFoundException e) {
-            throw new JmxBuilderException(e);
+            throw new JmxBuilderException(e)
         }
 
         map
     }
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
-        return false;
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
+        return false
     }
 
-    public boolean isLeaf() {
-        return true;
+    boolean isLeaf() {
+        return true
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
         if (parentNode != null) {
             parentNode.add(thisNode)
         }
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
index 0886f64..2aa5db3 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxMetaMapBuilder.groovy
@@ -24,8 +24,6 @@ import java.lang.reflect.Constructor
 /**
  * The JmxMetaMapBuilder class is used to collect meta data passed in JmxBuilder nodes.  Once collected,
  * the data is then normalized to be represented uniformly regardless of the resource where it was obtained.
- *
- * @author Vladimir Vivien
  */
 class JmxMetaMapBuilder {
 
@@ -52,7 +50,7 @@ class JmxMetaMapBuilder {
      * @see #buildConstructorMapFrom(Object)
      * @see #buildOperationMapFrom(Object)
      */
-    public static Map buildObjectMapFrom(def object) {
+    static Map buildObjectMapFrom(def object) {
         if (!object) {
             throw new JmxBuilderException("Unable to create MBean, missing target object.")
         }
@@ -68,35 +66,35 @@ class JmxMetaMapBuilder {
             // if only the jmx name is provided fill in the rest.
             if (descriptor.size() == 1 && descriptor.name) {
                 map = [
-                        target: object,
-                        name: object.getClass().name,
-                        jmxName: getObjectName(descriptor),
-                        displayName: "JMX Managed Object ${object.class.canonicalName}".toString(),
-                        attributes: buildAttributeMapFrom(object),
+                        target      : object,
+                        name        : object.getClass().name,
+                        jmxName     : getObjectName(descriptor),
+                        displayName : "JMX Managed Object ${object.class.canonicalName}".toString(),
+                        attributes  : buildAttributeMapFrom(object),
                         constructors: buildConstructorMapFrom(object),
-                        operations: buildOperationMapFrom(object)
+                        operations  : buildOperationMapFrom(object)
                 ]
 
             }
             // else, build description from descriptor
             else {
                 map = [
-                        target: object,
-                        name: object.getClass().name,
-                        displayName: descriptor.desc ?: descriptor.desc,
-                        attributes: buildAttributeMapFrom(object, descriptor.attributes ?: descriptor.attribs),
+                        target      : object,
+                        name        : object.getClass().name,
+                        displayName : descriptor.desc ?: descriptor.desc,
+                        attributes  : buildAttributeMapFrom(object, descriptor.attributes ?: descriptor.attribs),
                         constructors: buildConstructorMapFrom(object, descriptor.constructors ?: descriptor.ctors),
-                        operations: buildOperationMapFrom(object, descriptor.operations ?: descriptor.ops),
-                        listeners: buildListenerMapFrom(descriptor.listeners),
-                        mbeanServer: descriptor.server ?: descriptor.mbeanServer
+                        operations  : buildOperationMapFrom(object, descriptor.operations ?: descriptor.ops),
+                        listeners   : buildListenerMapFrom(descriptor.listeners),
+                        mbeanServer : descriptor.server ?: descriptor.mbeanServer
                 ]
 
                 // validate object Name
                 map.jmxName = getObjectName(descriptor) ?:
-                    JmxBeanInfoManager.buildDefaultObjectName(
-                            JmxBuilderTools.DEFAULT_DOMAIN,
-                            JmxBuilderTools.DEFAULT_NAME_TYPE,
-                            object)
+                        JmxBeanInfoManager.buildDefaultObjectName(
+                                JmxBuilderTools.DEFAULT_DOMAIN,
+                                JmxBuilderTools.DEFAULT_NAME_TYPE,
+                                object)
             }
 
 
@@ -104,16 +102,16 @@ class JmxMetaMapBuilder {
         // build meta map with default info if no descriptor is provided.
         else {
             map = [
-                    target: object,
-                    name: object.getClass().name,
-                    jmxName: JmxBeanInfoManager.buildDefaultObjectName(
+                    target      : object,
+                    name        : object.getClass().name,
+                    jmxName     : JmxBeanInfoManager.buildDefaultObjectName(
                             JmxBuilderTools.DEFAULT_DOMAIN,
                             JmxBuilderTools.DEFAULT_NAME_TYPE,
                             object),
-                    displayName: "JMX Managed Object ${object.class.canonicalName}".toString(),
-                    attributes: buildAttributeMapFrom(object),
+                    displayName : "JMX Managed Object ${object.class.canonicalName}".toString(),
+                    attributes  : buildAttributeMapFrom(object),
                     constructors: buildConstructorMapFrom(object),
-                    operations: buildOperationMapFrom(object)
+                    operations  : buildOperationMapFrom(object)
             ]
         }
 
@@ -129,7 +127,7 @@ class JmxMetaMapBuilder {
      * @see #buildConstructorMapFrom(Object, Map)
      * @see #buildOperationMapFrom(Object, Map)
      */
-    public static Map buildObjectMapFrom(def object, def descriptor) {
+    static Map buildObjectMapFrom(def object, def descriptor) {
         if (!object) {
             throw new JmxBuilderException("Unable to create MBean, missing target object.")
         }
@@ -137,13 +135,13 @@ class JmxMetaMapBuilder {
         // if only the name & target is specified, fill in rest with defaults
         if (descriptor.size() == 2 && (descriptor.name && descriptor.target)) {
             map = [
-                    target: object,
-                    jmxName: getObjectName(descriptor),
-                    name: object.getClass().name,
-                    displayName: "JMX Managed Object ${object.class.canonicalName}".toString(),
-                    attributes: buildAttributeMapFrom(object),
+                    target      : object,
+                    jmxName     : getObjectName(descriptor),
+                    name        : object.getClass().name,
+                    displayName : "JMX Managed Object ${object.class.canonicalName}".toString(),
+                    attributes  : buildAttributeMapFrom(object),
                     constructors: buildConstructorMapFrom(object),
-                    operations: buildOperationMapFrom(object)
+                    operations  : buildOperationMapFrom(object)
             ]
 
         }
@@ -151,21 +149,21 @@ class JmxMetaMapBuilder {
         else {
 
             map = [
-                    target: object,
-                    name: object.getClass().name,
-                    displayName: descriptor.desc ?: descriptor.desc,
-                    attributes: buildAttributeMapFrom(object, descriptor.attributes ?: descriptor.attribs),
+                    target      : object,
+                    name        : object.getClass().name,
+                    displayName : descriptor.desc ?: descriptor.desc,
+                    attributes  : buildAttributeMapFrom(object, descriptor.attributes ?: descriptor.attribs),
                     constructors: buildConstructorMapFrom(object, descriptor.constructors ?: descriptor.ctors),
-                    operations: buildOperationMapFrom(object, descriptor.operations ?: descriptor.ops),
-                    listeners: buildListenerMapFrom(descriptor.listeners),
-                    mbeanServer: descriptor.server ?: descriptor.mbeanServer
+                    operations  : buildOperationMapFrom(object, descriptor.operations ?: descriptor.ops),
+                    listeners   : buildListenerMapFrom(descriptor.listeners),
+                    mbeanServer : descriptor.server ?: descriptor.mbeanServer
             ]
 
             map.jmxName = getObjectName(descriptor) ?:
-                JmxBeanInfoManager.buildDefaultObjectName(
-                        JmxBuilderTools.DEFAULT_DOMAIN,
-                        JmxBuilderTools.DEFAULT_NAME_TYPE,
-                        object)
+                    JmxBeanInfoManager.buildDefaultObjectName(
+                            JmxBuilderTools.DEFAULT_DOMAIN,
+                            JmxBuilderTools.DEFAULT_NAME_TYPE,
+                            object)
         }
 
         map
@@ -187,11 +185,11 @@ class JmxMetaMapBuilder {
      * @param the object from which attribute info will be retrieved
      * @return the meta map for the attribute
      */
-    public static Map buildAttributeMapFrom(def object) {
+    static Map buildAttributeMapFrom(def object) {
         def properties = object.metaClass.getProperties()
 
         def attribs = [:]
-        properties.each {MetaProperty prop ->
+        properties.each { MetaProperty prop ->
             if (!ATTRIB_EXCEPTION_LIST.contains(prop.name)) {
                 def attrib = [:]
                 def getterPrefix = (prop.type.name == "java.lang.Boolean" || prop.type.name == "boolean") ? "is" : "get"
@@ -218,7 +216,7 @@ class JmxMetaMapBuilder {
      * @param descriptor collection: either a map or a list
      * @return a Map of meta information about the object.
      */
-    public static Map buildAttributeMapFrom(def object, def descCollection) {
+    static Map buildAttributeMapFrom(def object, def descCollection) {
         def map = [:]
 
         // attribs:"*"
@@ -227,7 +225,7 @@ class JmxMetaMapBuilder {
         }
         // attribs:["attrName1",attrName2",...,"attrNameN"]
         if (descCollection && descCollection instanceof List) {
-            descCollection.each {attrib ->
+            descCollection.each { attrib ->
                 MetaProperty prop = object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(attrib))
                 if (prop) {
                     map.put(JmxBuilderTools.capitalize(attrib), createAttributeMap(prop, attrib, "*"))
@@ -236,7 +234,7 @@ class JmxMetaMapBuilder {
         }
         //attribs:[desc:..., readable:..., writable:...]
         if (descCollection && descCollection instanceof Map) {
-            descCollection.each {attrib, attrDescriptor ->
+            descCollection.each { attrib, attrDescriptor ->
                 MetaProperty prop = object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(attrib))
                 if (prop) {
                     map.put(JmxBuilderTools.capitalize(attrib), createAttributeMap(prop, attrib, attrDescriptor))
@@ -294,7 +292,7 @@ class JmxMetaMapBuilder {
      * @param object to profile
      * @return The meta map generated.
      */
-    public static Map buildConstructorMapFrom(def object) {
+    static Map buildConstructorMapFrom(def object) {
         def methods = object.getClass().getDeclaredConstructors()
         def ctors = [:]
         def cntr = 0
@@ -316,7 +314,7 @@ class JmxMetaMapBuilder {
      * @param the meta map that will be normalized
      * @return a normalized meta map for the constructor
      */
-    public static Map buildConstructorMapFrom(def object, def descCollection) {
+    static Map buildConstructorMapFrom(def object, def descCollection) {
         def map = [:]
 
         // ctors:"*"
@@ -326,7 +324,7 @@ class JmxMetaMapBuilder {
 
         // ctor:[ctorName:...]
         if (descCollection && descCollection instanceof Map) {
-            descCollection.each {ctorKey, descriptor ->
+            descCollection.each { ctorKey, descriptor ->
                 def params
 
                 // ctorName:[]
@@ -336,7 +334,7 @@ class JmxMetaMapBuilder {
                 // ctorName:["paramType1","paramType2"..."paramTypeN"]
                 if (descriptor && (descriptor instanceof List && descriptor.size() > 0)) {
                     params = []
-                    descriptor.each {param ->
+                    descriptor.each { param ->
                         params << JmxBuilderTools.TYPE_MAP[JmxBuilderTools.getNormalizedType(param)]
                     }
                 }
@@ -350,7 +348,7 @@ class JmxMetaMapBuilder {
                     }
 
                     params = []
-                    paramTypes.each {p ->
+                    paramTypes.each { p ->
                         params << JmxBuilderTools.TYPE_MAP[JmxBuilderTools.getNormalizedType(p)]
                     }
                 }
@@ -394,18 +392,18 @@ class JmxMetaMapBuilder {
      * @param object to profile
      * @return The meta map generated.
      */
-    public static Map buildOperationMapFrom(def object) {
+    static Map buildOperationMapFrom(def object) {
         def methods = object.metaClass.getMethods()
         def ops = [:]
 
         def declaredMethods = object.getClass().getDeclaredMethods()*.name
 
-        methods.each {method ->
+        methods.each { method ->
             // avoid picking up extra methods from parents
             if ((declaredMethods.contains(method.name) && !OPS_EXCEPTION_LIST.contains(method.name)) || (!OPS_EXCEPTION_LIST.contains(method.name))) {
                 String mName = method.name
                 MetaProperty prop = (mName.startsWith("get") || mName.startsWith("set")) ?
-                    object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(mName[3..-1])) : null
+                        object.metaClass.getMetaProperty(JmxBuilderTools.uncapitalize(mName[3..-1])) : null
                 // skip exporting getters/setters to avoid dbl exposure.  They are exported differently.
                 if (!prop) {
                     def map = [:]
@@ -421,7 +419,7 @@ class JmxMetaMapBuilder {
         return ops
     }
 
-    public static Map buildOperationMapFrom(object, descCollection) {
+    static Map buildOperationMapFrom(object, descCollection) {
         def map = [:]
 
         // operations:"*"
@@ -431,7 +429,7 @@ class JmxMetaMapBuilder {
 
         // operations:["opName1","opName2",..., "opNameN"]
         if (descCollection && descCollection instanceof List) {
-            descCollection.each {opName ->
+            descCollection.each { opName ->
                 // find the first method that matches the name
                 def method
                 for (m in object.metaClass.getMethods()) {
@@ -449,7 +447,7 @@ class JmxMetaMapBuilder {
 
         // operations:[foo1:[:], foo2[:], foo3:[:]...]
         if (descCollection && descCollection instanceof Map) {
-            descCollection.each {opName, descriptor ->
+            descCollection.each { opName, descriptor ->
                 def params
                 def method
 
@@ -477,7 +475,7 @@ class JmxMetaMapBuilder {
                     // gather clas array Class[]
                     if (params) {
                         def paramTypes = []
-                        params?.each {key ->
+                        params?.each { key ->
                             paramTypes << JmxBuilderTools.TYPE_MAP[JmxBuilderTools.getNormalizedType(key)]
                         }
                         params = paramTypes ?: null
@@ -536,12 +534,12 @@ class JmxMetaMapBuilder {
      * @param the method with parameters to normalized
      * @return the normalized map
      */
-    public static Map buildParameterMapFrom(def method) {
+    static Map buildParameterMapFrom(def method) {
         def map = [:]
         if (!method) return map
         def params = method.getParameterTypes()
         if (params) {
-            params.each {def param ->
+            params.each { def param ->
                 map.put(param.name, createParameterMap(method, param, "*"))
             }
         }
@@ -554,19 +552,19 @@ class JmxMetaMapBuilder {
      * @param a given meta map which will be normalized
      * @return the normalized map
      */
-    public static Map buildParameterMapFrom(method, descCollection) {
+    static Map buildParameterMapFrom(method, descCollection) {
         def map = [:]
         if (!method) return map
 
         if (descCollection && descCollection instanceof Map) {
-            descCollection.each {param, paramMap ->
+            descCollection.each { param, paramMap ->
                 def type = getParamTypeByName(method, JmxBuilderTools.getNormalizedType(param))
                 if (type) {
                     map.put(type.name, createParameterMap(method, type, paramMap))
                 }
             }
         } else if (descCollection && descCollection instanceof List) {
-            descCollection.each {param ->
+            descCollection.each { param ->
                 def type = getParamTypeByName(method, JmxBuilderTools.getNormalizedType(param))
                 if (type) {
                     map.put(type.name, createParameterMap(method, type, "*"))
@@ -612,10 +610,10 @@ class JmxMetaMapBuilder {
      * @param - collection of descriptors to normalize
      * @see JmxMetaMapBuilder#createListenerMap(Object)
      */
-    public static buildListenerMapFrom(descCollection) {
+    static buildListenerMapFrom(descCollection) {
         def map = [:]
         if (descCollection && descCollection instanceof Map) {
-            descCollection.each {name, listenerMap ->
+            descCollection.each { name, listenerMap ->
                 map.put(name, createListenerMap(listenerMap))
             }
         }
@@ -628,7 +626,7 @@ class JmxMetaMapBuilder {
      * @param descriptor - descriptive data collected from JmxBuilder listener nodes.
      * @return - fully normalized meta map of listener data.
      */
-    public static Map createListenerMap(descriptor) {
+    static Map createListenerMap(descriptor) {
         def map = [:]
         map.type = "eventListener"
         map.event = descriptor.event
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxOperationInfoManager.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxOperationInfoManager.groovy
index 12a49e5..46f9b09 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxOperationInfoManager.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxOperationInfoManager.groovy
@@ -29,10 +29,7 @@ import javax.management.modelmbean.ModelMBeanOperationInfo
  * It cycles through the provided meta map from the bean() node and generate JMX Info objects used to
  * expose information in the MBeanServer.
  *
- * @author Vladimir Vivien
- *
  * @see groovy.jmx.builder.JmxMetaMapBuilder
- *
  */
 class JmxOperationInfoManager {
     /** *
@@ -40,7 +37,7 @@ class JmxOperationInfoManager {
      * @param list of meta maps
      * @return array of ModelMBeanConstructorInfo
      */
-    public static List<ModelMBeanConstructorInfo> getConstructorInfosFromMap(Map metaMap) {
+    static List<ModelMBeanConstructorInfo> getConstructorInfosFromMap(Map metaMap) {
         if (!metaMap) return null
         def ctors = []
         metaMap.each {ctorName, map ->
@@ -56,7 +53,7 @@ class JmxOperationInfoManager {
      * @param meta map containing descriptor information
      * @return the fully realized ModelMBeanConstructorInfo for the provided constructor reference.
      */
-    public static ModelMBeanConstructorInfo getConstructorInfoFromMap(Map map) {
+    static ModelMBeanConstructorInfo getConstructorInfoFromMap(Map map) {
         if (!map) return null
 
         def ctor = map.remove("constructor")
@@ -92,7 +89,7 @@ class JmxOperationInfoManager {
      * @param list of meta maps
      * @return array of ModelMBeanOperationInfo
      */
-    public static List<ModelMBeanOperationInfo> getOperationInfosFromMap(Map metaMap) {
+    static List<ModelMBeanOperationInfo> getOperationInfosFromMap(Map metaMap) {
         if (!metaMap) return null
         def ops = []
         metaMap.each {opNames, map ->
@@ -107,7 +104,7 @@ class JmxOperationInfoManager {
      * @param the meta map for the method
      * @return the generated ModelMBeanOperationInfo
      */
-    public static ModelMBeanOperationInfo getOperationInfoFromMap(Map map) {
+    static ModelMBeanOperationInfo getOperationInfoFromMap(Map map) {
         if (!map) return null
 
         MetaMethod method = map.remove("method")
@@ -141,7 +138,7 @@ class JmxOperationInfoManager {
      * @param the meta map containing the param info
      * @return an array of JMX MBeanParameterInfo
      */
-    public static List<MBeanParameterInfo> buildParamInfosFromMaps(Map metaMap) {
+    static List<MBeanParameterInfo> buildParamInfosFromMaps(Map metaMap) {
         if (!metaMap || metaMap.size() == 0) return null
         List<MBeanParameterInfo> result = new ArrayList<MBeanParameterInfo>(metaMap.size())
 
@@ -160,7 +157,7 @@ class JmxOperationInfoManager {
      * @param prop - the property object on the POGO/POJO that represents a getter
      * @return a ModelMBeanOperation info built 
      */
-    public static ModelMBeanOperationInfo createGetterOperationInfoFromProperty(MetaProperty prop) {
+    static ModelMBeanOperationInfo createGetterOperationInfoFromProperty(MetaProperty prop) {
         if (prop == null) return null
 
         Descriptor desc = new DescriptorSupport()
@@ -190,7 +187,7 @@ class JmxOperationInfoManager {
      * @param prop - the property object on the POGO/POJO that represents a setter
      * @return a ModelMBeanOperation info built
      */
-    public static ModelMBeanOperationInfo createSetterOperationInfoFromProperty(MetaProperty prop) {
+    static ModelMBeanOperationInfo createSetterOperationInfoFromProperty(MetaProperty prop) {
 
         Descriptor desc = new DescriptorSupport()
         String name = "set" + JmxBuilderTools.capitalize(prop.name)
diff --git a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxServerConnectorFactory.groovy b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxServerConnectorFactory.groovy
index 53b3c07..9da7a45 100644
--- a/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxServerConnectorFactory.groovy
+++ b/subprojects/groovy-jmx/src/main/groovy/groovy/jmx/builder/JmxServerConnectorFactory.groovy
@@ -47,14 +47,13 @@ import javax.rmi.ssl.SslRMIServerSocketFactory
  *     )
  * </pre>
  *
- * @author Vladimir Vivien
  * @see <a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/JMXConnector.html">JMXConnector</a>
  */
 class JmxServerConnectorFactory extends AbstractFactory {
 
     private static final List SUPPORTED_PROTOCOLS = ["rmi", "jrmp", "iiop", "jmxmp"]
 
-    public Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeArgs, Map nodeAttribs) {
+    Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeArgs, Map nodeAttribs) {
         if (nodeArgs) {
             throw new JmxBuilderException("Node '${nodeName}' only supports named attributes.")
         }
@@ -79,7 +78,7 @@ class JmxServerConnectorFactory extends AbstractFactory {
 
         MBeanServer server = (MBeanServer) fsb.getMBeanServer()
         JMXServiceURL serviceUrl = (url) ? new JMXServiceURL(url) : generateServiceUrl(protocol, host, port)
-        JMXConnectorServer connector = JMXConnectorServerFactory.newJMXConnectorServer(serviceUrl, env, server);
+        JMXConnectorServer connector = JMXConnectorServerFactory.newJMXConnectorServer(serviceUrl, env, server)
 
 
 
@@ -87,15 +86,15 @@ class JmxServerConnectorFactory extends AbstractFactory {
     }
 
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
-        return true;
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs) {
+        return true
     }
 
-    public boolean isLeaf() {
+    boolean isLeaf() {
         return false
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode) {
         //
     }
 
@@ -120,12 +119,12 @@ class JmxServerConnectorFactory extends AbstractFactory {
             if (ssl) {
                 def csf = props.remove(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE) ?: new SslRMIClientSocketFactory()
                 def ssf = props.remove(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE) ?: new SslRMIServerSocketFactory()
-                env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, csf);
-                env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, ssf);
+                env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, csf)
+                env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, ssf)
             }
         }
 
-        props.each {key, value ->
+        props.each { key, value ->
             env.put(key, value)
         }
 
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderException.java b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderException.java
index 15c9866..1d8cd6c 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderException.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderException.java
@@ -20,8 +20,6 @@ package groovy.jmx.builder;
 
 /**
  * Runtime exception used by JmxBuilder.
- *
- * @author Vladimir Vivien
  */
 public class JmxBuilderException extends RuntimeException {
     /**
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java
index 656012e..e47c1ed 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java
@@ -43,8 +43,6 @@ import java.util.concurrent.atomic.AtomicLong;
  * The JmxBuilderModelMBean is the MBean class that proxies exported POGO/POJO inside the MBeanServer.
  * When JmxBuilder exports an object instance, an instance of this class is created and exported inside the
  * MBeanServer.
- *
- * @author Vladimir Vivien
  */
 public class JmxBuilderModelMBean extends RequiredModelMBean implements NotificationListener {
     private final List<String> methodListeners = new ArrayList<String>(0);
@@ -173,7 +171,6 @@ public class JmxBuilderModelMBean extends RequiredModelMBean implements Notifica
      * Internal class AttributeChangedListener provides hooks to handle attribute-change events
      * that occurs on registered MBeans.
      *
-     * @author Vladimir Vivien
      * @see groovy.jmx.builder.JmxBuilderModelMBean
      */
     private static final class AttributeChangedListener implements NotificationListener {
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitter.java b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitter.java
index 9122b9f..dd12885 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitter.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitter.java
@@ -33,7 +33,6 @@ import java.util.concurrent.atomic.AtomicLong;
  * jmx.emitter.send(object)
  * </pre>
  *
- * @author Vladimir Vivien
  * @see groovy.jmx.builder.JmxEmitterFactory
  */
 public class JmxEventEmitter extends NotificationBroadcasterSupport implements JmxEventEmitterMBean {
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitterMBean.java b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitterMBean.java
index df9b0a7..ad65ba0 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitterMBean.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventEmitterMBean.java
@@ -22,7 +22,6 @@ package groovy.jmx.builder;
  * This is the management interface for JmxEventEmitter.  This MBean is used internally by
  * JmxBuilder to broadcast events to registered listeners of the underlying MBeanServer.
  *
- * @author Vladimir Vivien
  * @see groovy.jmx.builder.JmxEventEmitter
  */
 public interface JmxEventEmitterMBean {
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java
index 5a8bea0..d1b1688 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java
@@ -29,7 +29,6 @@ import java.util.Map;
  * The JmxEventListener class is used by the builder to listen to events on the event bus.  It is used internally
  * by JmxBuilder to handle attribute-change and operation-invoke events on the bean() node.
  *
- * @author Vladimir Vivien
  * @see groovy.jmx.builder.JmxBeanFactory
  */
 public class JmxEventListener implements NotificationListener {
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/util/GroovyMBean.java b/subprojects/groovy-jmx/src/main/java/groovy/util/GroovyMBean.java
index 2be091f..8f48699 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/util/GroovyMBean.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/util/GroovyMBean.java
@@ -43,10 +43,6 @@ import java.util.Map;
  * an underlying JMX MBean.
  * Properties and normal method invocations
  * delegate to the MBeanServer to the actual MBean.
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Steve Button
- * @author Paul King
  */
 public class GroovyMBean extends GroovyObjectSupport {
     private final MBeanServerConnection server;
diff --git a/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxBeansFactoryTest.groovy b/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxBeansFactoryTest.groovy
index 5146dd1..0340419 100644
--- a/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxBeansFactoryTest.groovy
+++ b/subprojects/groovy-jmx/src/test/groovy/groovy/jmx/builder/JmxBeansFactoryTest.groovy
@@ -18,10 +18,6 @@
  */
 package groovy.jmx.builder
 
-/**
- *
- * @author vladimir
- */
 class JmxBeansFactoryTest extends GroovyTestCase {
     def builder
 
diff --git a/subprojects/groovy-jmx/src/test/java/groovy/util/MBeanTest.java b/subprojects/groovy-jmx/src/test/java/groovy/util/MBeanTest.java
index 0552ccb..c71f017 100644
--- a/subprojects/groovy-jmx/src/test/java/groovy/util/MBeanTest.java
+++ b/subprojects/groovy-jmx/src/test/java/groovy/util/MBeanTest.java
@@ -28,8 +28,6 @@ import static org.codehaus.groovy.runtime.DefaultGroovyMethods.sort;
 /**
  * Tests using the GroovyObject API from Java to access MBeans via
  * the normal properties API (to simulate normal Groovy property access)
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class MBeanTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
index 89cee15..999d53a 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
@@ -66,8 +66,6 @@ import java.util.Map;
  *       assert builder.toString() == '{"people":{"person":{"firstName":"Guillame","lastName":"Laforge","address":{"city":"Paris","country":"France","zip":12345},"married":true,"conferences":["JavaOne","Gr8conf"]}}}'
  * </code></pre>
  *
- * @author Guillaume Laforge
- * @author Andrey Bloshetsov
  * @since 1.8.0
  */
 public class JsonBuilder extends GroovyObjectSupport implements Writable {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonDelegate.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonDelegate.java
index 58d16b3..94657ad 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonDelegate.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonDelegate.java
@@ -31,8 +31,6 @@ import java.util.Map;
 /**
  * Utility class used as delegate of closures representing JSON objects.
  *
- * @author Guillaume Laforge
- * @author Andrey Bloschetsov
  * @since 1.8.0
  */
 public class JsonDelegate extends GroovyObjectSupport {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonException.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonException.java
index 6f08222..c023493 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonException.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonException.java
@@ -22,7 +22,6 @@ package groovy.json;
  * <code>JsonException</code> is the exception thrown by the JSON builder and slurper classes,
  * whenever a problem occurs when creating or parsing JSON data structures.
  *
- * @author Guillaume Laforge
  * @since 1.8.0
  */
 public class JsonException extends RuntimeException {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonLexer.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonLexer.java
index 19df178..7c5756a 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonLexer.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonLexer.java
@@ -33,7 +33,6 @@ import static groovy.json.JsonTokenType.startingWith;
 /**
  * The lexer reads JSON tokens in a streaming fashion from the underlying reader.
  *
- * @author Guillaume Laforge
  * @since 1.8.0
  */
 public class JsonLexer implements Iterator<JsonToken> {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonOutput.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonOutput.java
index a650915..4f65292 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonOutput.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonOutput.java
@@ -39,12 +39,6 @@ import java.util.UUID;
  * This class does not provide the ability to customize the resulting output.  A {@link JsonGenerator}
  * can be used if the ability to alter the resulting output is required.
  *
- * @author Guillaume Laforge
- * @author Roshan Dawrani
- * @author Andrey Bloschetsov
- * @author Rick Hightower
- * @author Graeme Rocher
- *
  * @see JsonGenerator
  * @since 1.8.0
  */
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonParser.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonParser.java
index de04394..8afc72c 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonParser.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonParser.java
@@ -25,7 +25,7 @@ import java.io.Reader;
 /**
  * This is the parser interface that backs the new JsonSlurper.
  * It was derived from the Boon JSON parser.
- * @author Rick Hightower
+ *
  * @since 2.3.0
  */
 public interface JsonParser {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonParserType.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonParserType.java
index 65e9a41..1a62b2d 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonParserType.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonParserType.java
@@ -52,7 +52,6 @@ package groovy.json;
  *     Use CHARACTER_SOURCE if you are dealing with large JSON files over 2MB.
  *     INDEX_OVERLAY is highly tuned for object deserialization from JSON.
  * </p>
- * @author Rick Hightower
  * @since 2.3.0
  */
 public enum JsonParserType {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurper.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurper.java
index dd931f0..e3782ee 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurper.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurper.java
@@ -83,9 +83,6 @@ import java.util.Map;
  * </pre></code>
  *
  * @see groovy.json.JsonParserType
- *
- * @author Guillaume Laforge
- * @author Rick Hightower
  * @since 1.8.0
  */
 public class JsonSlurper {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurperClassic.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurperClassic.java
index eb984af..667f67a 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurperClassic.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonSlurperClassic.java
@@ -58,7 +58,6 @@ import static groovy.json.JsonTokenType.STRING;
  * assert result.person.pets[1] == "cat"
  * </pre></code>
  *
- * @author Guillaume Laforge
  * @since 1.8.0
  */
 public class JsonSlurperClassic {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonToken.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonToken.java
index a126825..26bb74e 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonToken.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonToken.java
@@ -30,7 +30,6 @@ import static groovy.json.JsonTokenType.TRUE;
 /**
  * A JSON token, with a type, line / column information, and the text of that token.
  *
- * @author Guillaume Laforge
  * @since 1.8.0
  */
 public class JsonToken {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonTokenType.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonTokenType.java
index ac819b2..52f26dd 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonTokenType.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonTokenType.java
@@ -28,7 +28,6 @@ import java.util.regex.Pattern;
  * This is kept around in case someone needs its exact behavior.
  * Enum listing all the possible JSON tokens that should be recognized by the lexer.
  *
- * @author Guillaume Laforge
  * @since 1.8.0
  */
 public enum JsonTokenType {
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java b/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
index 727cd28..9dd6086 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
@@ -69,10 +69,6 @@ import java.util.Map;
  *    }
  * </pre>
  *
- * @author Tim Yates
- * @author Andrey Bloschetsov
- * @author Graeme Rocher
- *
  * @since 1.8.1
  */
 public class StreamingJsonBuilder extends GroovyObjectSupport {
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ArrayUtils.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ArrayUtils.java
index 4894f08..1d0fa0f 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ArrayUtils.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ArrayUtils.java
@@ -18,9 +18,6 @@
  */
 package org.apache.groovy.json.internal;
 
-/**
- * @author Richard Hightower
- */
 public class ArrayUtils {
 
     public static char[] copyRange(char[] source, int startIndex, int endIndex) {
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/BaseJsonParser.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/BaseJsonParser.java
index 98bdbc3..eab7894 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/BaseJsonParser.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/BaseJsonParser.java
@@ -36,8 +36,6 @@ import java.util.concurrent.ConcurrentHashMap;
  * Base JSON parser.
  * Scaled down version of Boon JsonParser with features
  * removed that are JDK 1.7 dependent or Groovy duplicated functionality.
- *
- * @author Rick Hightower
  */
 public abstract class BaseJsonParser implements JsonParser {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ByteScanner.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ByteScanner.java
index 8ddfb96..e6186d9 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ByteScanner.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ByteScanner.java
@@ -20,9 +20,6 @@ package org.apache.groovy.json.internal;
 
 import static org.apache.groovy.json.internal.Exceptions.die;
 
-/**
- * @author Richard Hightower
- */
 public class ByteScanner {
 
     /**
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Cache.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Cache.java
index f5cfaaa..eb30f73 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Cache.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Cache.java
@@ -23,7 +23,6 @@ package org.apache.groovy.json.internal;
  *
  * @param <KEY>   key
  * @param <VALUE> value
- * @author Rick Hightower
  */
 public interface Cache<KEY, VALUE> {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CacheType.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CacheType.java
index 8d25bff..6ce464d 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CacheType.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CacheType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.groovy.json.internal;
 
-/**
- * @author Rick Hightower
- */
 public enum CacheType {
 
     LRU,
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharBuf.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharBuf.java
index db850e1..62fd285 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharBuf.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharBuf.java
@@ -26,9 +26,6 @@ import java.io.Writer;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 
-/**
- * @author Rick Hightower
- */
 public class CharBuf extends Writer implements CharSequence {
 
     protected int capacity = 16;
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharScanner.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharScanner.java
index 2dfacf9..ffd7a57 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharScanner.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharScanner.java
@@ -23,9 +23,6 @@ import java.math.BigDecimal;
 import static org.apache.groovy.json.internal.Exceptions.die;
 import static org.apache.groovy.json.internal.Exceptions.handle;
 
-/**
- * @author Richard Hightower
- */
 public class CharScanner {
 
     protected static final int COMMA = ',';
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharSequenceValue.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharSequenceValue.java
index 40ebc16..21beccf 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharSequenceValue.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharSequenceValue.java
@@ -30,9 +30,6 @@ import static org.apache.groovy.json.internal.CharScanner.parseIntFromTo;
 import static org.apache.groovy.json.internal.CharScanner.parseLongFromTo;
 import static org.apache.groovy.json.internal.Exceptions.die;
 
-/**
- * @author Rick Hightower
- */
 public class CharSequenceValue implements Value, CharSequence {
 
     private final Type type;
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharacterSource.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharacterSource.java
index 6fdecd4..5d3068e 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharacterSource.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/CharacterSource.java
@@ -18,9 +18,6 @@
  */
 package org.apache.groovy.json.internal;
 
-/**
- * @author Richard Hightower
- */
 public interface CharacterSource {
 
     /**
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Chr.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Chr.java
index 6996a8e..a4fdb8e 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Chr.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Chr.java
@@ -18,9 +18,6 @@
  */
 package org.apache.groovy.json.internal;
 
-/**
- * @author Rick Hightower
- */
 public class Chr {
 
     public static char[] array(final char... array) {
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Dates.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Dates.java
index 0cd95f8..d075f75 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Dates.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Dates.java
@@ -22,9 +22,6 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.TimeZone;
 
-/**
- * @author Rick Hightower
- */
 public class Dates {
 
     private static TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone("UTC");
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Exceptions.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Exceptions.java
index e122778..ffb4f0c 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Exceptions.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Exceptions.java
@@ -24,9 +24,6 @@ import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.util.Collections;
 
-/**
- * @author Rick Hightower
- */
 public class Exceptions {
 
     public static boolean die() {
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/IO.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/IO.java
index fdfec3e..0712742 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/IO.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/IO.java
@@ -22,9 +22,6 @@ import java.io.IOException;
 import java.io.Reader;
 import java.io.Writer;
 
-/**
- * @author Rick Hightower
- */
 public class IO {
 
     private static final int EOF = -1;
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonFastParser.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonFastParser.java
index 4cc219c..5594724 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonFastParser.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonFastParser.java
@@ -24,8 +24,6 @@ import java.util.List;
 /**
  * This works in index overlay mode or chop mode.
  * Chop mode reduces possibility of memory leak but causes a few more buffer copies as it chops up the buffer.
- *
- * @author Rick Hightower
  */
 public class JsonFastParser extends JsonParserCharArray {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserCharArray.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserCharArray.java
index 6fb6f4c..08613d0 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserCharArray.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserCharArray.java
@@ -25,11 +25,7 @@ import java.util.List;
 
 /**
  * Converts an input JSON String into Java objects works with String or char array
- * as input. Produces an Object which can be any of the basic JSON types mapped
- * to Java.
- * <p/>
- *
- * @author Rick Hightower
+ * as input. Produces an Object which can be any of the basic JSON types mapped to Java.
  */
 public class JsonParserCharArray extends BaseJsonParser {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserLax.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserLax.java
index 89e1fa4..05ecd83 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserLax.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserLax.java
@@ -21,9 +21,6 @@ package org.apache.groovy.json.internal;
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @author Richard Hightower
- */
 public class JsonParserLax extends JsonParserCharArray {
 
     private final boolean useValues;
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserUsingCharacterSource.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserUsingCharacterSource.java
index 8b7d969..933a391 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserUsingCharacterSource.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonParserUsingCharacterSource.java
@@ -29,9 +29,6 @@ import java.util.List;
  * Converts an input JSON String into Java objects works with String or char array
  * as input. Produces an Object which can be any of the basic JSON types mapped
  * to Java.
- * <p/>
- *
- * @author Rick Hightower
  */
 public class JsonParserUsingCharacterSource extends BaseJsonParser {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonStringDecoder.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonStringDecoder.java
index a53c9fa..6ac9a59 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonStringDecoder.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/JsonStringDecoder.java
@@ -18,9 +18,6 @@
  */
 package org.apache.groovy.json.internal;
 
-/**
- * @author Richard Hightower
- */
 public class JsonStringDecoder {
 
     public static String decode(char[] chars, int start, int to) {
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyMap.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyMap.java
index 81da4d3..df86c42 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyMap.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyMap.java
@@ -29,8 +29,6 @@ import java.util.TreeMap;
 /**
  * This maps only builds once you ask for a key for the first time.
  * It is designed to not incur the overhead of creating a map unless needed.
- *
- * @author Rick Hightower
  */
 public class LazyMap extends AbstractMap<String, Object> {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java
index 7692388..a598908 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java
@@ -44,8 +44,6 @@ import static org.apache.groovy.json.internal.Exceptions.die;
  * The lazyChop is performed on the tree that is touched by the JSONPath expression or its ilk.
  * <p/>
  * The chop operation can be done during parsing or lazily by storing the values in this construct.
- *
- * @author Rick Hightower (insane chipmonk)
  */
 public class LazyValueMap extends AbstractMap<String, Object> implements ValueMap<String, Object> {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/MapItemValue.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/MapItemValue.java
index 325214f..b98446b 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/MapItemValue.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/MapItemValue.java
@@ -23,8 +23,6 @@ import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * This holds a mapping from value key to value value to maximize laziness.
- *
- * @author Rick Hightower
  */
 public class MapItemValue implements Map.Entry<String, Value> {
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/NumberValue.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/NumberValue.java
index 525010e..d541fbf 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/NumberValue.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/NumberValue.java
@@ -34,9 +34,6 @@ import static org.apache.groovy.json.internal.CharScanner.parseLongFromTo;
 import static org.apache.groovy.json.internal.Exceptions.die;
 import static org.apache.groovy.json.internal.Exceptions.sputs;
 
-/**
- * @author Rick Hightower
- */
 public class NumberValue extends java.lang.Number implements Value {
 
     private char[] buffer;
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ReaderCharacterSource.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ReaderCharacterSource.java
index 4517f7f..117d7bc 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ReaderCharacterSource.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ReaderCharacterSource.java
@@ -22,9 +22,6 @@ import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
 
-/**
- * @author Richard Hightower
- */
 public class ReaderCharacterSource implements CharacterSource {
 
     private static final int MAX_TOKEN_SIZE = 5;
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/SimpleCache.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/SimpleCache.java
index afa54e8..206b81d 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/SimpleCache.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/SimpleCache.java
@@ -21,9 +21,6 @@ package org.apache.groovy.json.internal;
 import org.codehaus.groovy.runtime.memoize.CommonCache;
 import org.codehaus.groovy.runtime.memoize.EvictableCache;
 
-/**
- * @author Richard Hightower
- */
 public class SimpleCache<K, V> implements Cache<K, V> {
     private EvictableCache<K, V> cache;
 
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Type.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Type.java
index 5ce3d27..c6473c5 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Type.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Type.java
@@ -18,9 +18,6 @@
  */
 package org.apache.groovy.json.internal;
 
-/**
- * @author Richard Hightower
- */
 public enum Type {
 
     INTEGER, STRING, DOUBLE, TRUE, FALSE, NULL, MAP, LIST
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Value.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Value.java
index f3024fb..52e1727 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Value.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/Value.java
@@ -22,9 +22,6 @@ import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.Date;
 
-/**
- * @author Rick Hightower
- */
 public interface Value {
 
     byte byteValue();
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueContainer.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueContainer.java
index aa21168..e2171ed 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueContainer.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueContainer.java
@@ -27,9 +27,6 @@ import java.util.Map;
 import static org.apache.groovy.json.internal.Exceptions.die;
 import static org.apache.groovy.json.internal.Exceptions.sputs;
 
-/**
- * @author Rick Hightower
- */
 public class ValueContainer implements CharSequence, Value {
 
     public static final Value TRUE = new ValueContainer(Type.TRUE);
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java
index 7027200..7fa7777 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java
@@ -23,9 +23,6 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-/**
- * @author Rick Hightower
- */
 public class ValueList extends AbstractList<Object> {
 
     List<Object> list = new ArrayList<Object>(5);
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMap.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMap.java
index c238cbf..e163138 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMap.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMap.java
@@ -20,9 +20,6 @@ package org.apache.groovy.json.internal;
 
 import java.util.Map;
 
-/**
- * @author Richard Hightower
- */
 public interface ValueMap<K, V> extends Map<K, V> {
 
     /* add a map item value. */
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMapImpl.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMapImpl.java
index 0b3103e..d261f80 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMapImpl.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueMapImpl.java
@@ -30,8 +30,6 @@ import static org.apache.groovy.json.internal.Exceptions.die;
  * This map is for object serialization mainly.
  * The idea is the final conversion of
  * the Value objects are delayed until the last possible moment, i.e., just before injected into a bean.
- *
- * @author Rick Hightower
  */
 public class ValueMapImpl extends AbstractMap<String, Value> implements ValueMap<String, Value> {
 
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/CharBufTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/CharBufTest.groovy
index a09721c..5e759a4 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/CharBufTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/CharBufTest.groovy
@@ -22,9 +22,6 @@ import org.apache.groovy.json.internal.CharBuf
 
 /**
  * Test the internal CharBuf class
- *
- * @author Rick Hightower
- * @author Guillaume Laforge
  */
 class CharBufTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/IOTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/IOTest.groovy
index 17819f5..2094cf5 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/IOTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/IOTest.groovy
@@ -23,8 +23,6 @@ import org.apache.groovy.json.internal.IO
 
 /**
  * Test the internal IO class
- *
- * @author Martin Stockhammer
  */
 class IOTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonBuilderTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonBuilderTest.groovy
index e057e18..7af7b69 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonBuilderTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonBuilderTest.groovy
@@ -18,9 +18,6 @@
  */
 package groovy.json
 
-/**
- * @author Guillaume Laforge
- */
 class JsonBuilderTest extends GroovyTestCase {
 
     void testJsonBuilderConstructor() {
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonLexerTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonLexerTest.groovy
index 2602343..f67109e 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonLexerTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonLexerTest.groovy
@@ -22,9 +22,6 @@ import static groovy.json.JsonTokenType.*
 
 import groovy.io.LineColumnReader
 
-/**
- * @author Guillaume Laforge
- */
 class JsonLexerTest extends GroovyTestCase {
 
     void testSkipWhitespace() {
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonOutputTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonOutputTest.groovy
index a781fbb..289980b 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonOutputTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonOutputTest.groovy
@@ -22,10 +22,6 @@ import static groovy.json.JsonOutput.toJson
 
 import groovy.transform.Canonical
 
-/**
- * @author Guillaume Laforge
- * @author Andrey Bloschetsov
- */
 class JsonOutputTest extends GroovyTestCase {
 
     // Check for GROOVY-5918
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonSlurperTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonSlurperTest.groovy
index db039d3..8135bee 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonSlurperTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonSlurperTest.groovy
@@ -20,9 +20,6 @@ package groovy.json
 
 import org.apache.groovy.json.internal.Value
 
-/**
- * @author Guillaume Laforge
- */
 class JsonSlurperTest extends GroovyTestCase {
 
     def parser
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenTypeTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenTypeTest.groovy
index e0e769a..0ecadda 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenTypeTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenTypeTest.groovy
@@ -20,10 +20,6 @@ package groovy.json
 
 import static JsonTokenType.*
 
-
-/**
- * @author Guillaume Laforge
- */
 class JsonTokenTypeTest extends GroovyTestCase {
 
     void testMatchingConstants() {
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenValueTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenValueTest.groovy
index 67ccfad..ce6f98b 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenValueTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/JsonTokenValueTest.groovy
@@ -20,9 +20,6 @@ package groovy.json
 
 import static JsonTokenType.*
 
-/**
- * @author Guillaume Laforge
- */
 class JsonTokenValueTest extends GroovyTestCase {
 
     void testValues() {
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/RealJsonPayloadsTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/RealJsonPayloadsTest.groovy
index d94f5cb..32bdfee 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/RealJsonPayloadsTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/RealJsonPayloadsTest.groovy
@@ -18,9 +18,6 @@
  */
 package groovy.json
 
-/**
- * @author Guillaume Laforge
- */
 class RealJsonPayloadsTest extends GroovyTestCase {
 
     def parser = new JsonSlurper()
diff --git a/subprojects/groovy-json/src/test/groovy/groovy/json/StreamingJsonBuilderTest.groovy b/subprojects/groovy-json/src/test/groovy/groovy/json/StreamingJsonBuilderTest.groovy
index ec61dcd..12fe06e 100644
--- a/subprojects/groovy-json/src/test/groovy/groovy/json/StreamingJsonBuilderTest.groovy
+++ b/subprojects/groovy-json/src/test/groovy/groovy/json/StreamingJsonBuilderTest.groovy
@@ -20,10 +20,6 @@ package groovy.json
 
 import groovy.transform.CompileStatic
 
-/**
- * @author Tim Yates
- * @author Guillaume Laforge
- */
 class StreamingJsonBuilderTest extends GroovyTestCase {
 
     @CompileStatic
diff --git a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyCompiledScript.java b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyCompiledScript.java
index 4962aa5..d6e45b2 100644
--- a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyCompiledScript.java
+++ b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyCompiledScript.java
@@ -55,8 +55,7 @@ import javax.script.ScriptException;
  * Used to represent compiled Groovy scripts.  Such scripts may be executed repeatedly
  * by Groovy's <code>ScriptEngine</code> using the <code>eval</code> method without reparsing overheads.
  *
- * @author Adapted from original by Mike Grogan
- * @author Adapted from original by A. Sundararajan
+ * Adapted from original by Mike Grogan and A. Sundararajan
  */
 public class GroovyCompiledScript extends CompiledScript {
 
diff --git a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
index 62981f6..ae59113 100644
--- a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
+++ b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
@@ -59,10 +59,7 @@ import java.util.List;
  * Groovy <code>ScriptEngines</code> and also exposes metadata describing
  * Groovy's engine class.
  *
- * @author Adapted from original by Mike Grogan
- * @author Adapted from original by A. Sundararajan
- * @author Jim White
- * @author Guillaume Laforge
+ * Adapted from original by Mike Grogan and A. Sundararajan
  */
 public class GroovyScriptEngineFactory implements ScriptEngineFactory {
 
diff --git a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
index 2c9e633..c2c5d4e 100644
--- a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
+++ b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
@@ -85,11 +85,7 @@ import java.security.PrivilegedAction;
 /**
  * JSR-223 Engine implementation.
  *
- * @author Adapted from original by Mike Grogan
- * @author Adapted from original by A. Sundararajan
- * @author Jim White
- * @author Guillaume Laforge
- * @author Jochen Theodorou
+ * Adapted from original by Mike Grogan and A. Sundararajan
  */
 public class GroovyScriptEngineImpl extends AbstractScriptEngine implements Compilable, Invocable {
 
diff --git a/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy b/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
index ce63254..4ad6f0b 100644
--- a/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
+++ b/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
@@ -29,9 +29,6 @@ import javax.script.SimpleScriptContext
 
 /**
  * Tests JSR-223 Groovy engine implementation.
- *
- * @author Jim White
- * @author Guillaume Laforge
  */
 class JSR223Test extends GroovyTestCase {
     protected ScriptEngineManager manager
diff --git a/subprojects/groovy-jsr223/src/test/java/org/codehaus/groovy/jsr223/JSR223SecurityTest.java b/subprojects/groovy-jsr223/src/test/java/org/codehaus/groovy/jsr223/JSR223SecurityTest.java
index 49b8b06..52b98a3 100644
--- a/subprojects/groovy-jsr223/src/test/java/org/codehaus/groovy/jsr223/JSR223SecurityTest.java
+++ b/subprojects/groovy-jsr223/src/test/java/org/codehaus/groovy/jsr223/JSR223SecurityTest.java
@@ -42,8 +42,6 @@ import java.util.Set;
 
 /**
  * Test for GROOVY-3946 and GROOVY-5255.
- *
- * @author Tiago Fernandez
  */
 public class JSR223SecurityTest {
 


[groovy] 26/28: cleanup/remove @author tags as per Apache recommended practices for groovy-nio, groovy-swing, groovy-templates

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 982c8b1a87bbc0075f3d24cc13cbf970ea471b55
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Dec 28 13:38:26 2018 +1000

    cleanup/remove @author tags as per Apache recommended practices for groovy-nio, groovy-swing, groovy-templates
---
 gradle/pomconfigurer.gradle                        |   9 ++
 .../codehaus/groovy/runtime/NioGroovyMethods.java  | 175 +++++++++------------
 .../org/codehaus/groovy/runtime/WritablePath.java  |   3 -
 .../groovy/runtime/NioGroovyMethodsTest.groovy     |   3 -
 .../swing/binding/AbstractButtonProperties.java    |   1 -
 .../swing/binding/JComboBoxMetaMethods.groovy      |  37 ++---
 .../groovy/swing/binding/JComboBoxProperties.java  |   1 -
 .../groovy/swing/binding/JComponentProperties.java |   1 -
 .../groovy/swing/binding/JListMetaMethods.groovy   |  48 +++---
 .../groovy/swing/binding/JListProperties.groovy    | 119 +++++++-------
 .../groovy/swing/binding/JScrollBarProperties.java |   1 -
 .../groovy/swing/binding/JSliderProperties.java    |   1 -
 .../groovy/swing/binding/JSpinnerProperties.java   |   1 -
 .../swing/binding/JTextComponentProperties.java    |   1 -
 .../groovy/swing/factory/ActionFactory.groovy      |  20 +--
 .../groovy/groovy/swing/factory/BeanFactory.groovy |   9 +-
 .../groovy/groovy/swing/factory/BindFactory.groovy |  45 +++---
 .../groovy/swing/factory/BindProxyFactory.groovy   |   9 +-
 .../groovy/swing/factory/CellEditorFactory.groovy  |  25 ++-
 .../groovy/swing/factory/ColumnFactory.groovy      |  36 ++---
 .../groovy/swing/factory/ColumnModelFactory.groovy |  11 +-
 .../groovy/groovy/swing/factory/ListFactory.groovy |  13 +-
 .../groovy/swing/factory/RendererFactory.groovy    |  20 +--
 .../swing/factory/RichActionWidgetFactory.groovy   |  52 +++---
 .../swing/factory/TextArgWidgetFactory.groovy      |  22 ++-
 .../groovy/swing/impl/ClosureCellEditor.groovy     |  35 ++---
 .../groovy/groovy/swing/impl/ClosureRenderer.java  |   3 -
 .../groovy/groovy/swing/impl/DefaultAction.java    |   2 -
 .../groovy/swing/impl/ListWrapperListModel.java    |   2 -
 .../main/groovy/groovy/swing/impl/TableLayout.java |   2 -
 .../groovy/groovy/swing/impl/TableLayoutCell.java  |   2 -
 .../groovy/groovy/swing/impl/TableLayoutRow.java   |   2 -
 .../main/java/groovy/inspect/swingui/TableMap.java |   2 -
 .../java/groovy/inspect/swingui/TableSorter.java   |   3 -
 .../src/main/java/groovy/model/ClosureModel.java   |   2 -
 .../main/java/groovy/model/DefaultTableColumn.java |   2 -
 .../main/java/groovy/model/DefaultTableModel.java  |   2 -
 .../src/main/java/groovy/model/FormModel.java      |   2 -
 .../main/java/groovy/model/NestedValueModel.java   |   2 -
 .../src/main/java/groovy/model/PropertyModel.java  |   2 -
 .../src/main/java/groovy/model/ValueHolder.java    |   2 -
 .../src/main/java/groovy/model/ValueModel.java     |   2 -
 .../groovy/binding/AbstractFullBinding.java        |   1 -
 .../codehaus/groovy/binding/AggregateBinding.java  |   2 +-
 .../org/codehaus/groovy/binding/BindingProxy.java  |   1 -
 .../codehaus/groovy/binding/BindingUpdatable.java  |   1 -
 .../groovy/binding/ClosureSourceBinding.java       |   1 -
 .../groovy/binding/EventTriggerBinding.java        |   1 -
 .../org/codehaus/groovy/binding/FullBinding.java   |   1 -
 .../groovy/binding/MutualPropertyBinding.java      |   1 -
 .../codehaus/groovy/binding/PropertyBinding.java   |   2 -
 .../org/codehaus/groovy/binding/SourceBinding.java |   1 -
 .../groovy/binding/SwingTimerTriggerBinding.java   |   2 -
 .../org/codehaus/groovy/binding/TargetBinding.java |   1 -
 .../codehaus/groovy/binding/TriggerBinding.java    |   1 -
 .../groovy/runtime/SwingGroovyMethods.java         |   2 -
 .../groovy/groovy/beans/BindableSwingTest.groovy   |   3 -
 .../groovy/groovy/beans/VetoableSwingTest.groovy   |   3 -
 .../test/groovy/groovy/bugs/Groovy303_Bug.groovy   |   6 +-
 .../groovy/swing/SwingMetaMethodsTest.groovy       |   4 -
 .../org/codehaus/groovy/runtime/DummyBean.java     |   3 -
 .../groovy/groovy/text/SimpleTemplateEngine.java   |   5 -
 .../groovy/text/StreamingTemplateEngine.java       |   3 -
 .../src/main/groovy/groovy/text/Template.java      |   2 -
 .../main/groovy/groovy/text/TemplateEngine.java    |   2 -
 .../main/groovy/groovy/text/XmlTemplateEngine.java |   3 -
 .../groovy/text/markup/AutoNewLineTransformer.java |   2 -
 .../groovy/groovy/text/markup/BaseTemplate.java    |   2 -
 .../groovy/text/markup/DelegatingIndentWriter.java |   5 +-
 .../groovy/groovy/text/markup/IncludeType.java     |   5 +-
 .../text/markup/MarkupBuilderCodeTransformer.java  |   2 -
 .../groovy/text/markup/MarkupTemplateEngine.java   |   2 -
 .../MarkupTemplateTypeCheckingExtension.groovy     |   2 -
 .../groovy/groovy/text/markup/TagLibAdapter.groovy |   2 -
 .../groovy/text/markup/TemplateASTTransformer.java |   2 -
 .../groovy/text/markup/TemplateConfiguration.java  |   2 -
 .../groovy/text/markup/TemplateResolver.java       |   2 -
 .../groovy/SimpleGStringTemplateEngineTest.groovy  |  50 +++---
 .../groovy/groovy/SimpleTemplateEngineTest.groovy  |   3 -
 .../src/test/java/groovy/text/TemplateTest.java    |   3 -
 80 files changed, 337 insertions(+), 531 deletions(-)

diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index f7882fd..d98454a 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -495,6 +495,15 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Stefan Matthias Aust'
             }
             contributor {
+                name 'Andy Dwelly'
+            }
+            contributor {
+                name 'Philip Milne'
+            }
+            contributor {
+                name 'Joachim Baumann'
+            }
+            contributor {
                 name 'Jochen Eddel+'
             }
             contributor {
diff --git a/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/NioGroovyMethods.java b/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/NioGroovyMethods.java
index 58ad3f0..e5234e9 100644
--- a/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/NioGroovyMethods.java
+++ b/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/NioGroovyMethods.java
@@ -79,34 +79,6 @@ import static org.codehaus.groovy.runtime.DefaultGroovyMethods.get;
  * at the Java method call level. I.e. future versions of Groovy may
  * remove or move a method call in this file but would normally
  * aim to keep the method available from within Groovy.
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Jeremy Rayner
- * @author Sam Pullara
- * @author Rod Cope
- * @author Guillaume Laforge
- * @author John Wilson
- * @author Hein Meling
- * @author Dierk Koenig
- * @author Pilho Kim
- * @author Marc Guillemot
- * @author Russel Winder
- * @author bing ran
- * @author Jochen Theodorou
- * @author Paul King
- * @author Michael Baehr
- * @author Joachim Baumann
- * @author Alex Tkachman
- * @author Ted Naleid
- * @author Brad Long
- * @author Jim Jagielski
- * @author Rodolfo Velasco
- * @author jeremi Joslin
- * @author Hamlet D'Arcy
- * @author Cedric Champeau
- * @author Tim Yates
- * @author Dinko Srkoc
- * @author Paolo Di Tommaso <pa...@gmail.com>
  */
 
 public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
@@ -165,7 +137,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
     /**
      * Create an object input stream for this path using the given class loader.
      *
-     * @param self a {@code Path} object
+     * @param self        a {@code Path} object
      * @param classLoader the class loader to use when loading the class
      * @return an object input stream
      * @throws java.io.IOException if an IOException occurs.
@@ -178,9 +150,9 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
     /**
      * Iterates through the given file object by object.
      *
-     * @param self a {@code Path} object
+     * @param self    a {@code Path} object
      * @param closure a closure
-     * @throws java.io.IOException if an IOException occurs.
+     * @throws java.io.IOException    if an IOException occurs.
      * @throws ClassNotFoundException if the class  is not found.
      * @see org.codehaus.groovy.runtime.IOGroovyMethods#eachObject(java.io.ObjectInputStream, groovy.lang.Closure)
      * @since 2.3.0
@@ -299,13 +271,12 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param regex   the delimiting regular expression
      * @param closure a closure
      * @return the last value returned by the closure
-     * @throws java.io.IOException if an IOException occurs.
-     * @throws java.util.regex.PatternSyntaxException
-     *                     if the regular expression's syntax is invalid
+     * @throws java.io.IOException                    if an IOException occurs.
+     * @throws java.util.regex.PatternSyntaxException if the regular expression's syntax is invalid
      * @see org.codehaus.groovy.runtime.IOGroovyMethods#splitEachLine(java.io.Reader, String, groovy.lang.Closure)
      * @since 2.3.0
      */
-    public static <T> T splitEachLine(Path self, String regex, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException {
+    public static <T> T splitEachLine(Path self, String regex, @ClosureParams(value = FromString.class, options = {"List<String>", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure) throws IOException {
         return IOGroovyMethods.splitEachLine(newReader(self), regex, closure);
     }
 
@@ -324,7 +295,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @see org.codehaus.groovy.runtime.IOGroovyMethods#splitEachLine(java.io.Reader, java.util.regex.Pattern, groovy.lang.Closure)
      * @since 2.3.0
      */
-    public static <T> T splitEachLine(Path self, Pattern pattern, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException {
+    public static <T> T splitEachLine(Path self, Pattern pattern, @ClosureParams(value = FromString.class, options = {"List<String>", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure) throws IOException {
         return IOGroovyMethods.splitEachLine(newReader(self), pattern, closure);
     }
 
@@ -340,13 +311,12 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param charset opens the file with a specified charset
      * @param closure a closure
      * @return the last value returned by the closure
-     * @throws java.io.IOException if an IOException occurs.
-     * @throws java.util.regex.PatternSyntaxException
-     *                     if the regular expression's syntax is invalid
+     * @throws java.io.IOException                    if an IOException occurs.
+     * @throws java.util.regex.PatternSyntaxException if the regular expression's syntax is invalid
      * @see org.codehaus.groovy.runtime.IOGroovyMethods#splitEachLine(java.io.Reader, String, groovy.lang.Closure)
      * @since 2.3.0
      */
-    public static <T> T splitEachLine(Path self, String regex, String charset, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException {
+    public static <T> T splitEachLine(Path self, String regex, String charset, @ClosureParams(value = FromString.class, options = {"List<String>", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure) throws IOException {
         return IOGroovyMethods.splitEachLine(newReader(self, charset), regex, closure);
     }
 
@@ -366,7 +336,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @see org.codehaus.groovy.runtime.IOGroovyMethods#splitEachLine(java.io.Reader, java.util.regex.Pattern, groovy.lang.Closure)
      * @since 2.3.0
      */
-    public static <T> T splitEachLine(Path self, Pattern pattern, String charset, @ClosureParams(value=FromString.class,options={"List<String>","String[]"},conflictResolutionStrategy=PickFirstResolver.class) Closure<T> closure) throws IOException {
+    public static <T> T splitEachLine(Path self, Pattern pattern, String charset, @ClosureParams(value = FromString.class, options = {"List<String>", "String[]"}, conflictResolutionStrategy = PickFirstResolver.class) Closure<T> closure) throws IOException {
         return IOGroovyMethods.splitEachLine(newReader(self, charset), pattern, closure);
     }
 
@@ -613,7 +583,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * Append the text supplied by the Writer at the end of the File without
      * writing a BOM.
      *
-     * @param file a Path
+     * @param file   a Path
      * @param reader the Reader supplying the text to append at the end of the File
      * @throws IOException if an IOException occurs.
      * @since 2.3.0
@@ -625,7 +595,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
     /**
      * Append the text supplied by the Writer at the end of the File without writing a BOM.
      *
-     * @param file a File
+     * @param file   a File
      * @param writer the Writer supplying the text to append at the end of the File
      * @throws IOException if an IOException occurs.
      * @since 2.3.0
@@ -682,8 +652,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * <code>writeBom</code> is <code>true</code>, the requisite byte order
      * mark is written to the file before the text.
      *
-     * @param self    a Path
-     * @param text    the text to append at the end of the Path
+     * @param self     a Path
+     * @param text     the text to append at the end of the Path
      * @param writeBom whether to write the BOM
      * @throws java.io.IOException if an IOException occurs.
      * @since 2.5.0
@@ -748,8 +718,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * exist, the requisite byte order mark is written to the file before the
      * text is appended.
      *
-     * @param file a File
-     * @param writer the Writer supplying the text to append at the end of the File
+     * @param file     a File
+     * @param writer   the Writer supplying the text to append at the end of the File
      * @param writeBom whether to write the BOM
      * @throws IOException if an IOException occurs.
      * @since 2.5.0
@@ -762,8 +732,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * Append the text supplied by the Writer at the end of the File without writing a BOM,
      * using a specified encoding.
      *
-     * @param file a File
-     * @param writer the Writer supplying the text to append at the end of the File
+     * @param file    a File
+     * @param writer  the Writer supplying the text to append at the end of the File
      * @param charset the charset used
      * @throws IOException if an IOException occurs.
      * @since 2.3.0
@@ -779,9 +749,9 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * exist, the requisite byte order mark is written to the file before the
      * text is appended.
      *
-     * @param file a File
-     * @param writer the Writer supplying the text to append at the end of the File
-     * @param charset the charset used
+     * @param file     a File
+     * @param writer   the Writer supplying the text to append at the end of the File
+     * @param charset  the charset used
      * @param writeBom whether to write the BOM
      * @throws IOException if an IOException occurs.
      * @since 2.5.0
@@ -797,8 +767,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * exist, the requisite byte order mark is written to the file before the
      * text is appended.
      *
-     * @param file a File
-     * @param reader the Reader supplying the text to append at the end of the File
+     * @param file     a File
+     * @param reader   the Reader supplying the text to append at the end of the File
      * @param writeBom whether to write the BOM
      * @throws IOException if an IOException occurs.
      * @since 2.5.0
@@ -811,8 +781,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * Append the text supplied by the Reader at the end of the File without writing
      * a BOM, using a specified encoding.
      *
-     * @param file a File
-     * @param reader the Reader supplying the text to append at the end of the File
+     * @param file    a File
+     * @param reader  the Reader supplying the text to append at the end of the File
      * @param charset the charset used
      * @throws IOException if an IOException occurs.
      * @since 2.3.0
@@ -828,9 +798,9 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * exist, the requisite byte order mark is written to the file before the
      * text is appended.
      *
-     * @param file a File
-     * @param reader the Reader supplying the text to append at the end of the File
-     * @param charset the charset used
+     * @param file     a File
+     * @param reader   the Reader supplying the text to append at the end of the File
+     * @param charset  the charset used
      * @param writeBom whether to write the BOM
      * @throws IOException if an IOException occurs.
      * @since 2.5.0
@@ -863,8 +833,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * are used incorrectly.
      *
      * @param self The directory to check
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @since 2.3.0
      */
     private static void checkDir(Path self) throws FileNotFoundException, IllegalArgumentException {
@@ -882,12 +852,12 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param self     a Path (that happens to be a folder/directory)
      * @param fileType if normal files or directories or both should be processed
      * @param closure  the closure to invoke
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @since 2.3.0
      */
     public static void eachFile(final Path self, final FileType fileType, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") final Closure closure) throws IOException {
-            //throws FileNotFoundException, IllegalArgumentException {
+        //throws FileNotFoundException, IllegalArgumentException {
         checkDir(self);
 
         // TODO GroovyDoc doesn't parse this file as our java.g doesn't handle this JDK7 syntax
@@ -908,8 +878,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      *
      * @param self    a Path (that happens to be a folder/directory)
      * @param closure a closure (the parameter is the Path for the 'child' file)
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @see #eachFile(Path, groovy.io.FileType, groovy.lang.Closure)
      * @since 2.3.0
      */
@@ -923,8 +893,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      *
      * @param self    a Path (that happens to be a folder/directory)
      * @param closure a closure (the parameter is the Path for the subdirectory file)
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @see #eachFile(Path, groovy.io.FileType, groovy.lang.Closure)
      * @since 2.3.0
      */
@@ -942,12 +912,12 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param self     a Path (that happens to be a folder/directory)
      * @param fileType if normal files or directories or both should be processed
      * @param closure  the closure to invoke on each file
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @since 2.3.0
      */
     public static void eachFileRecurse(final Path self, final FileType fileType, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") final Closure closure) throws IOException { // throws FileNotFoundException, IllegalArgumentException {
-            // throws FileNotFoundException, IllegalArgumentException {
+        // throws FileNotFoundException, IllegalArgumentException {
         checkDir(self);
         try (DirectoryStream<Path> stream = Files.newDirectoryStream(self)) {
             for (Path path : stream) {
@@ -966,7 +936,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * Processing consists of potentially calling <code>closure</code> passing it the current
      * file (which may be a normal file or subdirectory) and then if a subdirectory was encountered,
      * recursively processing the subdirectory.
-     *
+     * <p>
      * The traversal can be adapted by providing various options in the <code>options</code> Map according
      * to the following keys:<dl>
      * <dt>type</dt><dd>A {@link groovy.io.FileType} enum to determine if normal files or directories or both are processed</dd>
@@ -1013,8 +983,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param options a Map of options to alter the traversal behavior
      * @param closure the Closure to invoke on each file/directory and optionally returning a {@link groovy.io.FileVisitResult} value
      *                which can be used to control subsequent processing
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory or illegal filter combinations are supplied
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory or illegal filter combinations are supplied
      * @see DefaultGroovyMethods#sort(java.util.Collection, groovy.lang.Closure)
      * @see groovy.io.FileVisitResult
      * @see groovy.io.FileType
@@ -1022,7 +992,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static void traverse(final Path self, final Map<String, Object> options, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") final Closure closure)
             throws IOException {
-            // throws FileNotFoundException, IllegalArgumentException {
+        // throws FileNotFoundException, IllegalArgumentException {
         Number maxDepthNumber = DefaultGroovyMethods.asType(options.remove("maxDepth"), Number.class);
         int maxDepth = maxDepthNumber == null ? -1 : maxDepthNumber.intValue();
         Boolean visitRoot = DefaultGroovyMethods.asType(get(options, "visitRoot", false), Boolean.class);
@@ -1093,8 +1063,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param self    a Path (that happens to be a folder/directory)
      * @param closure the Closure to invoke on each file/directory and optionally returning a {@link groovy.io.FileVisitResult} value
      *                which can be used to control subsequent processing
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @see #traverse(Path, java.util.Map, groovy.lang.Closure)
      * @since 2.3.0
      */
@@ -1111,8 +1081,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      *
      * @param self    a Path (that happens to be a folder/directory)
      * @param options a Map of options to alter the traversal behavior
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory or illegal filter combinations are supplied
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory or illegal filter combinations are supplied
      * @see #traverse(Path, java.util.Map, groovy.lang.Closure)
      * @since 2.3.0
      */
@@ -1141,7 +1111,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
                 files.add(itr.next());
             }
 
-            if (sort != null) files = DefaultGroovyMethods.sort((Iterable<Path>)files, sort);
+            if (sort != null) files = DefaultGroovyMethods.sort((Iterable<Path>) files, sort);
 
             for (Path path : files) {
                 if (Files.isDirectory(path)) {
@@ -1191,8 +1161,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      *
      * @param self    a Path (that happens to be a folder/directory)
      * @param closure a Closure
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @see #eachFileRecurse(Path, groovy.io.FileType, groovy.lang.Closure)
      * @since 2.3.0
      */
@@ -1208,8 +1178,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      *
      * @param self    a Path (that happens to be a folder/directory)
      * @param closure a closure
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @see #eachFileRecurse(Path, groovy.io.FileType, groovy.lang.Closure)
      * @since 2.3.0
      */
@@ -1241,12 +1211,12 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param fileType   whether normal files or directories or both should be processed
      * @param nameFilter the filter to perform on the name of the file/directory (using the {@link org.codehaus.groovy.runtime.DefaultGroovyMethods#isCase(Object, Object)} method)
      * @param closure    the closure to invoke
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @since 2.3.0
      */
     public static void eachFileMatch(final Path self, final FileType fileType, final Object nameFilter, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") final Closure closure) throws IOException {
-            // throws FileNotFoundException, IllegalArgumentException {
+        // throws FileNotFoundException, IllegalArgumentException {
         checkDir(self);
         try (DirectoryStream<Path> stream = Files.newDirectoryStream(self)) {
             Iterator<Path> itr = stream.iterator();
@@ -1271,13 +1241,13 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param self       a Path (that happens to be a folder/directory)
      * @param nameFilter the nameFilter to perform on the name of the file (using the {@link org.codehaus.groovy.runtime.DefaultGroovyMethods#isCase(Object, Object)} method)
      * @param closure    the closure to invoke
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @see #eachFileMatch(Path, groovy.io.FileType, Object, groovy.lang.Closure)
      * @since 2.3.0
      */
     public static void eachFileMatch(final Path self, final Object nameFilter, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") final Closure closure) throws IOException {
-            // throws FileNotFoundException, IllegalArgumentException {
+        // throws FileNotFoundException, IllegalArgumentException {
         eachFileMatch(self, FileType.ANY, nameFilter, closure);
     }
 
@@ -1290,8 +1260,8 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param self       a Path (that happens to be a folder/directory)
      * @param nameFilter the nameFilter to perform on the name of the directory (using the {@link org.codehaus.groovy.runtime.DefaultGroovyMethods#isCase(Object, Object)} method)
      * @param closure    the closure to invoke
-     * @throws java.io.FileNotFoundException    if the given directory does not exist
-     * @throws IllegalArgumentException if the provided Path object does not represent a directory
+     * @throws java.io.FileNotFoundException if the given directory does not exist
+     * @throws IllegalArgumentException      if the provided Path object does not represent a directory
      * @see #eachFileMatch(Path, groovy.io.FileType, Object, groovy.lang.Closure)
      * @since 2.3.0
      */
@@ -1347,7 +1317,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param self        a Path
      * @param newPathName The new pathname for the named file
      * @return <code>true</code> if and only if the renaming succeeded;
-     *         <code>false</code> otherwise
+     * <code>false</code> otherwise
      * @since 2.3.0
      */
     public static boolean renameTo(final Path self, String newPathName) {
@@ -1365,7 +1335,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @param self        a Path
      * @param newPathName The new target path specified as a URI object
      * @return <code>true</code> if and only if the renaming succeeded;
-     *         <code>false</code> otherwise
+     * <code>false</code> otherwise
      * @since 2.3.0
      */
     public static boolean renameTo(final Path self, URI newPathName) {
@@ -1393,7 +1363,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * {@link org.codehaus.groovy.runtime.DefaultGroovyMethods#asType(Object, Class)}.
      *
      * @param path a Path
-     * @param c the desired class
+     * @param c    the desired class
      * @return the converted object
      * @since 2.3.0
      */
@@ -1688,10 +1658,10 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * is <code>true</code>, and the file doesn't already exist, the requisite
      * byte order mark is written to the stream when the writer is created.
      *
-     * @param self    a Path
-     * @param charset the charset used
+     * @param self     a Path
+     * @param charset  the charset used
      * @param writeBom whether to write the BOM
-     * @param closure a closure
+     * @param closure  a closure
      * @return the value returned by the closure
      * @throws java.io.IOException if an IOException occurs.
      * @since 2.5.0
@@ -1725,10 +1695,10 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * <code>writeBom</code> is <code>true</code>, and the file doesn't already exist,
      * the requisite byte order mark is written to the stream when the writer is created.
      *
-     * @param self    a Path
-     * @param charset the charset used
+     * @param self     a Path
+     * @param charset  the charset used
      * @param writeBom whether to write the BOM
-     * @param closure a closure
+     * @param closure  a closure
      * @return the value returned by the closure
      * @throws java.io.IOException if an IOException occurs.
      * @since 2.5.0
@@ -1907,7 +1877,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
      * @see org.codehaus.groovy.runtime.IOGroovyMethods#filterLine(java.io.Reader, java.io.Writer, groovy.lang.Closure)
      * @since 2.3.0
      */
-    public static void filterLine(Path self, Writer writer, @ClosureParams(value = SimpleType.class, options = "java.lang.String")  Closure closure) throws IOException {
+    public static void filterLine(Path self, Writer writer, @ClosureParams(value = SimpleType.class, options = "java.lang.String") Closure closure) throws IOException {
         IOGroovyMethods.filterLine(newReader(self), writer, closure);
     }
 
@@ -1942,6 +1912,7 @@ public class NioGroovyMethods extends DefaultGroovyMethodsSupport {
 
     /**
      * #deprecated use the variant in IOGroovyMethods
+     *
      * @see org.codehaus.groovy.runtime.IOGroovyMethods#withCloseable(java.io.Closeable, groovy.lang.Closure)
      * @since 2.3.0
      */
diff --git a/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/WritablePath.java b/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/WritablePath.java
index fa1157a..4fd7e41 100644
--- a/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/WritablePath.java
+++ b/subprojects/groovy-nio/src/main/java/org/codehaus/groovy/runtime/WritablePath.java
@@ -38,9 +38,6 @@ import java.util.Iterator;
 
 /**
  * A Writable Path.
- *
- * @author Paolo Di Tommaso <pa...@gmail.com>
- * @author John Wilson
  */
 
 public class WritablePath implements Path, Writable {
diff --git a/subprojects/groovy-nio/src/test/groovy/org/codehaus/groovy/runtime/NioGroovyMethodsTest.groovy b/subprojects/groovy-nio/src/test/groovy/org/codehaus/groovy/runtime/NioGroovyMethodsTest.groovy
index e751ed5..1cbc4c2 100644
--- a/subprojects/groovy-nio/src/test/groovy/org/codehaus/groovy/runtime/NioGroovyMethodsTest.groovy
+++ b/subprojects/groovy-nio/src/test/groovy/org/codehaus/groovy/runtime/NioGroovyMethodsTest.groovy
@@ -26,9 +26,6 @@ import org.junit.Rule
 import org.junit.rules.TemporaryFolder
 import spock.lang.Specification
 
-/**
- * @author Paolo Di Tommaso <pa...@gmail.com>
- */
 class NioGroovyMethodsTest extends Specification {
 
     @Rule
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/AbstractButtonProperties.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/AbstractButtonProperties.java
index 56bdc04..826b2b6 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/AbstractButtonProperties.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/AbstractButtonProperties.java
@@ -33,7 +33,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class AbstractButtonProperties {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxMetaMethods.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxMetaMethods.groovy
index 40d0a02..4d6f828 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxMetaMethods.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxMetaMethods.groovy
@@ -20,31 +20,28 @@ package groovy.swing.binding
 
 import javax.swing.*
 
-/**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
- */
 class JComboBoxMetaMethods {
 
-    public static void enhanceMetaClass(JComboBox comboBox) {
+    static void enhanceMetaClass(JComboBox comboBox) {
         AbstractSyntheticMetaMethods.enhance(comboBox, [
 
-            getElements:{->
-                ComboBoxModel model = delegate.model;
-                def results = []
-                int size = model.size
-                for (int i = 0; i < size; i++) {
-                    results += model.getElementAt(i)
-                }
-                return results
-            },
+                getElements       : { ->
+                    ComboBoxModel model = delegate.model;
+                    def results = []
+                    int size = model.size
+                    for (int i = 0; i < size; i++) {
+                        results += model.getElementAt(i)
+                    }
+                    return results
+                },
 
-            getSelectedElement:{->
-                return delegate.selectedItem
-            },
+                getSelectedElement: { ->
+                    return delegate.selectedItem
+                },
 
-            setSelectedElement:{def item->
-                return delegate.selectedItem = item
-            },
-        ]);
+                setSelectedElement: { def item ->
+                    return delegate.selectedItem = item
+                },
+        ])
     }
 }
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxProperties.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxProperties.java
index a2c2fc7..5b15751 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxProperties.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComboBoxProperties.java
@@ -35,7 +35,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class JComboBoxProperties {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComponentProperties.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComponentProperties.java
index cd97caa..07f74ca 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComponentProperties.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JComponentProperties.java
@@ -33,7 +33,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * @author Andres Almiray
  * @since Groovy 1.6
  */
 public class JComponentProperties {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListMetaMethods.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListMetaMethods.groovy
index ef46be3..2b96d06 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListMetaMethods.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListMetaMethods.groovy
@@ -21,38 +21,36 @@ package groovy.swing.binding
 import javax.swing.*
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
- * @author Andres Almiray
  * @since 1.7.5
  */
 class JListMetaMethods {
-    public static void enhanceMetaClass(JList list) {
+    static void enhanceMetaClass(JList list) {
         AbstractSyntheticMetaMethods.enhance(list, [
-            getElements:{->
-                ListModel model = delegate.model;
-                def results = []
-                int size = model.size
-                for (int i = 0; i < size; i++) {
-                    results += model.getElementAt(i)
-                }
-                return results
-            },
+                getElements        : { ->
+                    ListModel model = delegate.model;
+                    def results = []
+                    int size = model.size
+                    for (int i = 0; i < size; i++) {
+                        results += model.getElementAt(i)
+                    }
+                    return results
+                },
 
-            getSelectedElement:{->
-                return delegate.selectedValue
-            },
+                getSelectedElement : { ->
+                    return delegate.selectedValue
+                },
 
-            getSelectedElements:{->
-                return delegate.selectedValues
-            },
+                getSelectedElements: { ->
+                    return delegate.selectedValues
+                },
 
-            setSelectedElement:{def item->
-                return delegate.setSelectedValue(item, true)
-            },
+                setSelectedElement : { def item ->
+                    return delegate.setSelectedValue(item, true)
+                },
 
-            setSelectedValue:{def item->
-                return delegate.setSelectedValue(item, true)
-            },
-        ]);
+                setSelectedValue   : { def item ->
+                    return delegate.setSelectedValue(item, true)
+                },
+        ])
     }
 }
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListProperties.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListProperties.groovy
index ebebb40..2a5b4fb 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListProperties.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JListProperties.groovy
@@ -33,129 +33,128 @@ import java.beans.PropertyChangeEvent
 import java.beans.PropertyChangeListener
 
 /**
- * @author Andres Almiray
  * @since Groovy 1.7.5
  */
-public class JListProperties {
-    public static Map<String, TriggerBinding> getSyntheticProperties() {
-        Map<String, TriggerBinding> result = new HashMap<String, TriggerBinding>();
+class JListProperties {
+    static Map<String, TriggerBinding> getSyntheticProperties() {
+        Map<String, TriggerBinding> result = new HashMap<String, TriggerBinding>()
 
         // to match property name
         result.put(JList.class.getName() + "#selectedValue", new TriggerBinding() {
-            public FullBinding createBinding(SourceBinding source, TargetBinding target) {
-                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedValue");
+            FullBinding createBinding(SourceBinding source, TargetBinding target) {
+                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedValue")
             }
-        });
+        })
 
         // to match JSR-295
         result.put(JList.class.getName() + "#selectedElement", new TriggerBinding() {
-            public FullBinding createBinding(SourceBinding source, TargetBinding target) {
-                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedElement");
+            FullBinding createBinding(SourceBinding source, TargetBinding target) {
+                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedElement")
             }
-        });
+        })
 
         // to match property name
         result.put(JList.class.getName() + "#selectedValues", new TriggerBinding() {
-            public FullBinding createBinding(SourceBinding source, TargetBinding target) {
-                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedValues");
+            FullBinding createBinding(SourceBinding source, TargetBinding target) {
+                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedValues")
             }
-        });
+        })
 
         // to match JSR-295
         result.put(JList.class.getName() + "#selectedElements", new TriggerBinding() {
-            public FullBinding createBinding(SourceBinding source, TargetBinding target) {
-                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedElements");
+            FullBinding createBinding(SourceBinding source, TargetBinding target) {
+                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedElements")
             }
-        });
+        })
 
         result.put(JList.class.getName() + "#selectedIndex", new TriggerBinding() {
-            public FullBinding createBinding(SourceBinding source, TargetBinding target) {
-                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedIndex");
+            FullBinding createBinding(SourceBinding source, TargetBinding target) {
+                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedIndex")
             }
-        });
+        })
 
         result.put(JList.class.getName() + "#selectedIndices", new TriggerBinding() {
-            public FullBinding createBinding(SourceBinding source, TargetBinding target) {
-                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedIndices");
+            FullBinding createBinding(SourceBinding source, TargetBinding target) {
+                return new JListSelectedElementBinding((PropertyBinding) source, target, "selectedIndices")
             }
-        });
+        })
 
         // to match JSR-295
         result.put(JList.class.getName() + "#elements", new TriggerBinding() {
-            public FullBinding createBinding(SourceBinding source, TargetBinding target) {
-                return new JListElementsBinding((PropertyBinding) source, target);
+            FullBinding createBinding(SourceBinding source, TargetBinding target) {
+                return new JListElementsBinding((PropertyBinding) source, target)
             }
-        });
+        })
 
-        return result;
+        return result
     }
 }
 
 class JListElementsBinding extends AbstractSyntheticBinding implements ListDataListener, PropertyChangeListener {
-    JList boundList;
+    JList boundList
 
-    public JListElementsBinding(PropertyBinding propertyBinding, TargetBinding target) {
-        super(propertyBinding, target, JList.class, "elements");
+    JListElementsBinding(PropertyBinding propertyBinding, TargetBinding target) {
+        super(propertyBinding, target, JList.class, "elements")
     }
 
     protected void syntheticBind() {
-        boundList = (JList) ((PropertyBinding)sourceBinding).getBean();
-        boundList.addPropertyChangeListener("model", this);
-        boundList.getModel().addListDataListener(this);
+        boundList = (JList) ((PropertyBinding) sourceBinding).getBean()
+        boundList.addPropertyChangeListener("model", this)
+        boundList.getModel().addListDataListener(this)
     }
 
     protected void syntheticUnbind() {
-        boundList.removePropertyChangeListener("model", this);
-        boundList.getModel().removeListDataListener(this);
+        boundList.removePropertyChangeListener("model", this)
+        boundList.getModel().removeListDataListener(this)
     }
 
-    public void propertyChange(PropertyChangeEvent event) {
-        update();
-        ((ListModel) event.getOldValue()).removeListDataListener(this);
-        ((ListModel) event.getNewValue()).addListDataListener(this);
+    void propertyChange(PropertyChangeEvent event) {
+        update()
+        ((ListModel) event.getOldValue()).removeListDataListener(this)
+        ((ListModel) event.getNewValue()).addListDataListener(this)
     }
 
-    public void intervalAdded(ListDataEvent e) {
-        update();
+    void intervalAdded(ListDataEvent e) {
+        update()
     }
 
-    public void intervalRemoved(ListDataEvent e) {
-        update();
+    void intervalRemoved(ListDataEvent e) {
+        update()
     }
 
-    public void contentsChanged(ListDataEvent e) {
-        update();
+    void contentsChanged(ListDataEvent e) {
+        update()
     }
 }
 
 class JListSelectedElementBinding extends AbstractSyntheticBinding implements PropertyChangeListener, ListSelectionListener {
-    JList boundList;
+    JList boundList
 
     protected JListSelectedElementBinding(PropertyBinding source, TargetBinding target, String propertyName) {
-        super(source, target, JList.class, propertyName);
+        super(source, target, JList.class, propertyName)
     }
 
-    public synchronized void syntheticBind() {
-        boundList = (JList) ((PropertyBinding)sourceBinding).getBean();
-        boundList.addPropertyChangeListener("selectionModel", this);
-        boundList.addListSelectionListener(this);
+    synchronized void syntheticBind() {
+        boundList = (JList) ((PropertyBinding) sourceBinding).getBean()
+        boundList.addPropertyChangeListener("selectionModel", this)
+        boundList.addListSelectionListener(this)
     }
 
-    public synchronized void syntheticUnbind() {
-        boundList.removePropertyChangeListener("selectionModel", this);
-        boundList.removeListSelectionListener(this);
-        boundList = null;
+    synchronized void syntheticUnbind() {
+        boundList.removePropertyChangeListener("selectionModel", this)
+        boundList.removeListSelectionListener(this)
+        boundList = null
     }
 
-    public void setTargetBinding(TargetBinding target) {
-        super.setTargetBinding(target);
+    void setTargetBinding(TargetBinding target) {
+        super.setTargetBinding(target)
     }
 
-    public void propertyChange(PropertyChangeEvent event) {
-        update();
+    void propertyChange(PropertyChangeEvent event) {
+        update()
     }
 
-    public void valueChanged(ListSelectionEvent e) {
-        update();
+    void valueChanged(ListSelectionEvent e) {
+        update()
     }
 }
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JScrollBarProperties.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JScrollBarProperties.java
index 36a4433..c991d3a 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JScrollBarProperties.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JScrollBarProperties.java
@@ -33,7 +33,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class JScrollBarProperties {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSliderProperties.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSliderProperties.java
index d9af8d7..c03c17c 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSliderProperties.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSliderProperties.java
@@ -33,7 +33,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class JSliderProperties {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSpinnerProperties.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSpinnerProperties.java
index c19431e..69c98fd 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSpinnerProperties.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JSpinnerProperties.java
@@ -33,7 +33,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.6.4
  */
 public class JSpinnerProperties {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JTextComponentProperties.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JTextComponentProperties.java
index cfd731e..93e6e14 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JTextComponentProperties.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/binding/JTextComponentProperties.java
@@ -35,7 +35,6 @@ import java.util.Map;
 
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class JTextComponentProperties {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ActionFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ActionFactory.groovy
index 12426ac..b3fec80 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ActionFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ActionFactory.groovy
@@ -23,17 +23,13 @@ import org.codehaus.groovy.runtime.InvokerHelper
 
 import javax.swing.*
 
-/**
- *
- * @author Danno Ferrin
- */
-public class ActionFactory extends AbstractFactory {
+class ActionFactory extends AbstractFactory {
 
-    public boolean isHandlesNodeChildren() {
+    boolean isHandlesNodeChildren() {
         return true
     }
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
         Action action
         if (FactoryBuilderSupport.checkValueIsTypeNotString(value, name, Action)) {
             action = (Action) value
@@ -45,9 +41,7 @@ public class ActionFactory extends AbstractFactory {
         return action
     }
 
-    public boolean onHandleNodeAttributes( FactoryBuilderSupport builder, Object action,
-            Map attributes)
-    {
+    boolean onHandleNodeAttributes( FactoryBuilderSupport builder, Object action, Map attributes) {
         if ((attributes.get("closure") instanceof Closure) && (action instanceof DefaultAction)){
             Closure closure = (Closure) attributes.remove("closure")
             ((DefaultAction)action).setClosure(closure)
@@ -55,7 +49,7 @@ public class ActionFactory extends AbstractFactory {
 
         Object accel = attributes.remove("accelerator")
         if (accel != null) {
-            KeyStroke stroke = null
+            KeyStroke stroke
             if (accel instanceof KeyStroke) {
                 stroke = (KeyStroke) accel
             } else {
@@ -89,7 +83,7 @@ public class ActionFactory extends AbstractFactory {
         return false
     }
 
-    public boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
+    boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
         if (!(node instanceof DefaultAction)) {
             throw new RuntimeException("$builder.currentName only accepts a closure content when the action is generated by the node")
         }
@@ -100,7 +94,7 @@ public class ActionFactory extends AbstractFactory {
         return false
     }
 
-    public void setParent(FactoryBuilderSupport builder, Object parent, Object action) {
+    void setParent(FactoryBuilderSupport builder, Object parent, Object action) {
         try {
             InvokerHelper.setProperty(parent, "action", action)
         } catch (RuntimeException re) {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BeanFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BeanFactory.groovy
index bb35543..bf42e12 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BeanFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BeanFactory.groovy
@@ -19,27 +19,26 @@
 package groovy.swing.factory
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 class BeanFactory extends AbstractFactory {
     final Class beanClass
     final protected boolean leaf
 
-    public BeanFactory(Class beanClass) {
+    BeanFactory(Class beanClass) {
         this(beanClass, false)
     }
 
-    public BeanFactory(Class beanClass, boolean leaf) {
+    BeanFactory(Class beanClass, boolean leaf) {
         this.beanClass = beanClass
         this.leaf = leaf
     }
 
-    public boolean isLeaf() {
+    boolean isLeaf() {
         return leaf
     }
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
         if (value instanceof GString) value = value as String
         if (FactoryBuilderSupport.checkValueIsTypeNotString(value, name, beanClass)) {
             return value
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy
index bc7b623..96137ef 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy
@@ -43,16 +43,15 @@ import org.codehaus.groovy.binding.TriggerBinding
 import java.util.Map.Entry
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
-public class BindFactory extends AbstractFactory {
+class BindFactory extends AbstractFactory {
 
     public static final String CONTEXT_DATA_KEY = "BindFactoryData";
 
     final Map<String, TriggerBinding> syntheticBindings
 
-    public BindFactory() {
+    BindFactory() {
         syntheticBindings = new HashMap()
 
         // covers JTextField.text
@@ -88,7 +87,7 @@ public class BindFactory extends AbstractFactory {
         // JTable.elements
         // JTable.selectedElement
         // JTable.selectedElements
-        syntheticBindings.putAll(JTableProperties.syntheticProperties);
+        syntheticBindings.putAll(JTableProperties.syntheticProperties)
 
         // JTree.root
         // JTree.selectedElement
@@ -121,7 +120,7 @@ public class BindFactory extends AbstractFactory {
      * @throws InstantiationException
      * @throws IllegalAccessException
      */
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
         Object source = attributes.remove("source")
         Object target = attributes.remove("target")
         Object update = attributes.get("update")
@@ -133,9 +132,9 @@ public class BindFactory extends AbstractFactory {
         TargetBinding tb = null
         if (target != null) {
             Object targetProperty = attributes.remove("targetProperty") ?: value
-            if (! (targetProperty instanceof CharSequence)) {
+            if (!(targetProperty instanceof CharSequence)) {
                 throw new IllegalArgumentException("Invalid value for targetProperty: (or node value)." +
-                " Value for this attribute must be a String but it is "+ (targetProperty != null? targetProperty.getClass().getName() : null))
+                        " Value for this attribute must be a String but it is " + (targetProperty != null ? targetProperty.getClass().getName() : null))
             }
             tb = new PropertyBinding(target, targetProperty.toString(), update)
             if (source == null) {
@@ -169,15 +168,15 @@ public class BindFactory extends AbstractFactory {
         } else if (spa && !(sea && sva)) {
             // partially property driven binding
             Object property = attributes.remove("sourceProperty") ?: value
-            if (! (property instanceof CharSequence)) {
+            if (!(property instanceof CharSequence)) {
                 throw new IllegalArgumentException("Invalid value for sourceProperty: (or node value). " +
-                    "Value for this attribute must be a String but it is "+ (property != null? property.getClass().getName() : null))
+                        "Value for this attribute must be a String but it is " + (property != null ? property.getClass().getName() : null))
             }
 
             if (source == null) {
                 // if we have a sourceProperty but no source then we're in trouble
-                throw new IllegalArgumentException("Missing value for source: even though sourceProperty: (or node value) "+
-                    "was specified. Please check you didn't write bind(model.someProperty) instead of bind{ model.someProperty }")
+                throw new IllegalArgumentException("Missing value for source: even though sourceProperty: (or node value) " +
+                        "was specified. Please check you didn't write bind(model.someProperty) instead of bind{ model.someProperty }")
             }
 
             PropertyBinding pb = new PropertyBinding(source, property.toString(), update)
@@ -241,7 +240,7 @@ public class BindFactory extends AbstractFactory {
         return fb
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
         super.onNodeCompleted(builder, parent, node);
 
         if (node instanceof FullBinding && node.sourceBinding && node.targetBinding) {
@@ -258,38 +257,38 @@ public class BindFactory extends AbstractFactory {
         }
     }
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map attributes) {
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map attributes) {
         attributes.remove('update')
         true
     }
 
-    public boolean isLeaf() {
-        return false;
+    boolean isLeaf() {
+        return false
     }
 
-    public boolean isHandlesNodeChildren() {
-        return true;
+    boolean isHandlesNodeChildren() {
+        return true
     }
 
-    public boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
+    boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
         if ((node instanceof FullBinding) && (node.converter == null)) {
             node.converter = childContent
             return false
         } else if (node instanceof ClosureTriggerBinding) {
             node.closure = childContent
-            return false;
+            return false
         } else if (node instanceof TriggerBinding) {
             def bindAttrs = builder.context.get(CONTEXT_DATA_KEY)[node] ?: [:]
             if (!bindAttrs.containsKey("converter")) {
                 bindAttrs["converter"] = childContent
-                return false;
+                return false
             }
         }
 
         throw new RuntimeException("Binding nodes do not accept child content when a converter is already specified")
     }
 
-    public TriggerBinding getTriggerBinding(PropertyBinding psb) {
+    TriggerBinding getTriggerBinding(PropertyBinding psb) {
         String property = psb.propertyName
         Class currentClass = psb.bean.getClass()
         while (currentClass != null) {
@@ -304,7 +303,7 @@ public class BindFactory extends AbstractFactory {
         return psb
     }
 
-    public bindingAttributeDelegate(FactoryBuilderSupport builder, def node, def attributes) {
+    bindingAttributeDelegate(FactoryBuilderSupport builder, def node, def attributes) {
         Iterator iter = attributes.entrySet().iterator()
         Map bindContext = builder.context.get(CONTEXT_DATA_KEY) ?: [:]
 
@@ -364,7 +363,7 @@ public class BindFactory extends AbstractFactory {
         bindAttrs.remove('update')
         Object bindValue = bindAttrs.remove("bind")
         List propertiesToBeSkipped = ['group']
-        bindAttrs.each {k, v -> if (!(k in propertiesToBeSkipped)) fb."$k" = v}
+        bindAttrs.each { k, v -> if (!(k in propertiesToBeSkipped)) fb."$k" = v }
 
         if ((bindAttrs.group instanceof AggregateBinding) && (fb instanceof BindingUpdatable)) {
             bindAttrs.group.addBinding(fb)
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindProxyFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindProxyFactory.groovy
index de2719a..744e763 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindProxyFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindProxyFactory.groovy
@@ -21,16 +21,15 @@ package groovy.swing.factory
 import org.codehaus.groovy.binding.BindingProxy
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
-public class BindProxyFactory extends AbstractFactory {
+class BindProxyFactory extends AbstractFactory {
 
-    public boolean isLeaf() {
+    boolean isLeaf() {
         return true
     }
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
         if (value == null) {
             throw new RuntimeException("$name requires a value argument.");
         }
@@ -41,7 +40,7 @@ public class BindProxyFactory extends AbstractFactory {
         return mb;
     }
 
-    public void onNodeCompleted( FactoryBuilderSupport builder, Object parent, Object node ) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
         if (builder.context.bind) {
             node.bind()
         }
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/CellEditorFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/CellEditorFactory.groovy
index 1a3c996..a4edfa2 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/CellEditorFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/CellEditorFactory.groovy
@@ -22,23 +22,20 @@ import groovy.swing.impl.ClosureCellEditor
 
 import java.awt.*
 
-/**
-* @author Alexander Klein
-*/
 class CellEditorFactory extends AbstractFactory {
 
-   public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
+   Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
        FactoryBuilderSupport.checkValueIsNull value, name
        return new ClosureCellEditor(null, attributes)
    }
 
-   public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
+   void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
        if (child instanceof Component) {
            parent.children += child
        }
    }
 
-   public void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
+   void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
        node.editorValue = builder.context.editorValueClosure
        node.prepareEditor = builder.context.prepareEditorClosure
        parent.cellEditor = node
@@ -47,15 +44,15 @@ class CellEditorFactory extends AbstractFactory {
 
 class CellEditorGetValueFactory extends AbstractFactory {
 
-   public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
+   Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
        return Collections.emptyMap()
    }
 
-   public boolean isHandlesNodeChildren() {
-       return true;
+   boolean isHandlesNodeChildren() {
+       return true
    }
 
-   public boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
+   boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
        builder.parentContext.editorValueClosure = childContent
        return false
    }
@@ -63,15 +60,15 @@ class CellEditorGetValueFactory extends AbstractFactory {
 
 class CellEditorPrepareFactory extends AbstractFactory {
 
-   public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
+   Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
        return Collections.emptyMap()
    }
 
-   public boolean isHandlesNodeChildren() {
-       return true;
+   boolean isHandlesNodeChildren() {
+       return true
    }
 
-   public boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
+   boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
        builder.parentContext.prepareEditorClosure = childContent
        return false
    }
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnFactory.groovy
index d4d0c88..cdc6748 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnFactory.groovy
@@ -24,15 +24,11 @@ import javax.swing.table.TableCellRenderer
 import javax.swing.table.TableColumn
 import javax.swing.table.TableColumnModel
 
-/**
- * @author Alexander Klein
- * @author Hamlet D'Arcy
- */
 @Log
 class ColumnFactory extends AbstractFactory {
 
     Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
-        if(value instanceof TableColumn) {
+        if (value instanceof TableColumn) {
             return value
         }
 
@@ -43,39 +39,39 @@ class ColumnFactory extends AbstractFactory {
         } catch (ClassNotFoundException ex) {
         }
 
-        if(jxTableClass != null && builder.current instanceof TableColumnModel) {
+        if (jxTableClass != null && builder.current instanceof TableColumnModel) {
             node = Class.forName("org.jdesktop.swingx.table.TableColumnExt").newInstance()
         } else {
             node = new javax.swing.table.TableColumn()
         }
 
-        if(value != null) {
+        if (value != null) {
             node.identifier = value.toString()
             attributes.remove('identifier')
         }
 
-        if(attributes.width) {
-            if(attributes.width instanceof Collection) {
+        if (attributes.width) {
+            if (attributes.width instanceof Collection) {
                 // 3 values: min, pref, max
                 // 2 values: min, pref
                 // 1 value:  pref
                 def (min, pref, max) = attributes.width
-                if(!pref && !max) {
+                if (!pref && !max) {
                     node.minWidth = 0
                     node.preferredWidth = min as Integer
                     node.maxWidth = Integer.MAX_VALUE
                 } else {
-                  if(min) {
-                      node.minWidth = min as Integer
-                  }
-                  if(pref) {
-                      node.preferredWidth = pref as Integer
-                  }
-                  if(max) {
-                      node.maxWidth = max as Integer
-                  }
+                    if (min) {
+                        node.minWidth = min as Integer
+                    }
+                    if (pref) {
+                        node.preferredWidth = pref as Integer
+                    }
+                    if (max) {
+                        node.maxWidth = max as Integer
+                    }
                 }
-            } else if(attributes.width instanceof Number) {
+            } else if (attributes.width instanceof Number) {
                 node.minWidth = attributes.width.intValue()
                 node.preferredWidth = attributes.width.intValue()
                 node.maxWidth = attributes.width.intValue()
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnModelFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnModelFactory.groovy
index e44f4e0..a43b432 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnModelFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ColumnModelFactory.groovy
@@ -23,10 +23,6 @@ import groovy.util.logging.Log
 import javax.swing.*
 import javax.swing.table.TableColumnModel
 
-/**
- * @author Alexander Klein
- * @author Hamlet D'Arcy
- */
 @Log
 class ColumnModelFactory extends AbstractFactory {
 
@@ -38,16 +34,17 @@ class ColumnModelFactory extends AbstractFactory {
         Class jxTableClass = null
         try {
             jxTableClass = Class.forName("org.jdesktop.swingx.JXTable")
-        } catch (ClassNotFoundException ex) {}
+        } catch (ClassNotFoundException ex) {
+        }
 
         if (jxTableClass != null && jxTableClass.isAssignableFrom(builder.current.getClass())) {
             return Class.forName("org.jdesktop.swingx.table.DefaultTableColumnModelExt").newInstance()
-        } else{
+        } else {
             return new javax.swing.table.DefaultTableColumnModel()
         }
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
         if (parent instanceof JTable) {
             parent.columnModel = node
         } else {
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ListFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ListFactory.groovy
index 565710e..ebaff88 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ListFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/ListFactory.groovy
@@ -25,12 +25,10 @@ import javax.swing.*
 
 /**
  * Create a JList, and handle the optional items attribute.
- *
- * @author HuberB1
  */
-public class ListFactory extends AbstractFactory {
+class ListFactory extends AbstractFactory {
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
         // FactoryBuilderSupport.checkValueIsType(value, name, JList)
 
         JList list
@@ -38,7 +36,7 @@ public class ListFactory extends AbstractFactory {
 
         if (value instanceof JList) {
             list = value
-        } else if (value instanceof Vector || value instanceof Object[]){
+        } else if (value instanceof Vector || value instanceof Object[]) {
             list = new JList(value)
         } else if (value instanceof List) {
             list = new JList(new ListWrapperListModel(items))
@@ -58,7 +56,7 @@ public class ListFactory extends AbstractFactory {
         return list
     }
 
-    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map attributes) {
+    boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map attributes) {
         if (attributes.containsKey("listData")) {
             def listData = attributes.remove("listData")
             if (listData instanceof Vector || listData instanceof Object[]) {
@@ -69,10 +67,11 @@ public class ListFactory extends AbstractFactory {
                 node.listData = listData.toArray()
             } else {
                 // allow any iterable ??
-                node.listData = listData.collect([]){it} as Object[]
+                node.listData = listData.collect([]) { it } as Object[]
             }
         }
         return true
     }
+
 }
 
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RendererFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RendererFactory.groovy
index 1227893..7e3f11d 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RendererFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RendererFactory.groovy
@@ -23,28 +23,24 @@ import groovy.swing.impl.ClosureRenderer
 import javax.swing.*
 import java.awt.*
 
-/**
- * @author Danno Ferrin
- */
 class RendererFactory extends AbstractFactory {
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
         FactoryBuilderSupport.checkValueIsNull value, name
         return new ClosureRenderer()
     }
 
-    public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
+    void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
         if (child instanceof Component) {
             parent.children += child
         }
     }
 
-    public void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
+    void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node) {
         node.update = builder.context.updateClosure
         if (parent instanceof JTree) {
             parent.cellRenderer = node
-        }
-        else if (parent instanceof JList) {
+        } else if (parent instanceof JList) {
             parent.cellRenderer = node
         }
     }
@@ -52,15 +48,15 @@ class RendererFactory extends AbstractFactory {
 
 class RendererUpdateFactory extends AbstractFactory {
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
         return Collections.emptyMap()
     }
 
-    public boolean isHandlesNodeChildren() {
-        return true;
+    boolean isHandlesNodeChildren() {
+        return true
     }
 
-    public boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
+    boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
         builder.parentContext.updateClosure = childContent
         return false
     }
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RichActionWidgetFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RichActionWidgetFactory.groovy
index e1a6300..b0ffe59 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RichActionWidgetFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/RichActionWidgetFactory.groovy
@@ -24,53 +24,49 @@ import java.lang.reflect.InvocationTargetException
 import java.util.logging.Level
 import java.util.logging.Logger
 
-/**
- *
- * @author shemnon
- */
-public class RichActionWidgetFactory extends AbstractFactory {
-    static final Class[] ACTION_ARGS = [Action];
-    static final Class[] ICON_ARGS = [Icon];
-    static final Class[] STRING_ARGS = [String];
+class RichActionWidgetFactory extends AbstractFactory {
+    static final Class[] ACTION_ARGS = [Action]
+    static final Class[] ICON_ARGS = [Icon]
+    static final Class[] STRING_ARGS = [String]
 
-    final Constructor actionCtor;
-    final Constructor iconCtor;
-    final Constructor stringCtor;
-    final Class klass;
+    final Constructor actionCtor
+    final Constructor iconCtor
+    final Constructor stringCtor
+    final Class klass
 
-    public RichActionWidgetFactory(Class klass) {
+    RichActionWidgetFactory(Class klass) {
         try {
-            actionCtor = klass.getConstructor(ACTION_ARGS);
-            iconCtor = klass.getConstructor(ICON_ARGS);
-            stringCtor = klass.getConstructor(STRING_ARGS);
-            this.klass = klass;
+            actionCtor = klass.getConstructor(ACTION_ARGS)
+            iconCtor = klass.getConstructor(ICON_ARGS)
+            stringCtor = klass.getConstructor(STRING_ARGS)
+            this.klass = klass
         } catch (NoSuchMethodException ex) {
-            Logger.getLogger("global").log(Level.INFO, null, ex);
+            Logger.getLogger("global").log(Level.INFO, null, ex)
         } catch (SecurityException ex) {
-            Logger.getLogger("global").log(Level.SEVERE, null, ex);
+            Logger.getLogger("global").log(Level.SEVERE, null, ex)
         }
     }
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
         try {
             if (value instanceof GString) value = value as String
             if (value == null) {
-                return klass.newInstance();
+                return klass.newInstance()
             } else if (value instanceof Action) {
-                return actionCtor.newInstance(value);
+                return actionCtor.newInstance(value)
             } else if (value instanceof Icon) {
-                return iconCtor.newInstance(value);
+                return iconCtor.newInstance(value)
             } else if (value instanceof String) {
-                return stringCtor.newInstance(value);
+                return stringCtor.newInstance(value)
             } else if (klass.isAssignableFrom(value.getClass())) {
-                return value;
+                return value
             } else {
-                throw new RuntimeException("$name can only have a value argument of type javax.swing.Action, javax.swing.Icon, java.lang.String, or $klass.name");
+                throw new RuntimeException("$name can only have a value argument of type javax.swing.Action, javax.swing.Icon, java.lang.String, or $klass.name")
             }
         } catch (IllegalArgumentException e) {
-            throw new RuntimeException("Failed to create component for '$name' reason: $e", e);
+            throw new RuntimeException("Failed to create component for '$name' reason: $e", e)
         } catch (InvocationTargetException e) {
-            throw new RuntimeException("Failed to create component for '$name' reason: $e", e);
+            throw new RuntimeException("Failed to create component for '$name' reason: $e", e)
         }
     }
 
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/TextArgWidgetFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/TextArgWidgetFactory.groovy
index a970504..8ffc847 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/TextArgWidgetFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/TextArgWidgetFactory.groovy
@@ -20,32 +20,28 @@ package groovy.swing.factory
 
 import org.codehaus.groovy.runtime.InvokerHelper
 
-/**
- *
- * @author Danno Ferrin
- */
-public class TextArgWidgetFactory extends AbstractFactory {
+class TextArgWidgetFactory extends AbstractFactory {
 
-    final Class klass;
+    final Class klass
 
-    public TextArgWidgetFactory(Class klass) {
-        this.klass = klass;
+    TextArgWidgetFactory(Class klass) {
+        this.klass = klass
     }
 
-    public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
+    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException {
         if (value instanceof GString) value = value as String
         if (FactoryBuilderSupport.checkValueIsTypeNotString(value, name, klass)) {
-            return value;
+            return value
         }
 
-        Object widget = klass.newInstance();
+        Object widget = klass.newInstance()
 
         if (value instanceof String) {
             // this does not create property setting order issues, since the value arg precedes all attributes in the builder element
-            InvokerHelper.setProperty(widget, "text", value);
+            InvokerHelper.setProperty(widget, "text", value)
         }
 
-        return widget;
+        return widget
     }
 
 }
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureCellEditor.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureCellEditor.groovy
index 9b8098e..3bf067c 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureCellEditor.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureCellEditor.groovy
@@ -24,16 +24,13 @@ import javax.swing.tree.TreeCellEditor
 import java.awt.*
 import java.util.List
 
-/**
- * @author Alexander Klein
- */
 class ClosureCellEditor extends AbstractCellEditor implements TableCellEditor, TreeCellEditor {
     Map<String, Closure> callbacks = [:]
     Closure prepareEditor
     Closure editorValue
     List children = []
     boolean defaultEditor
-    
+
     JTable table
     JTree tree
     Object value
@@ -42,14 +39,14 @@ class ClosureCellEditor extends AbstractCellEditor implements TableCellEditor, T
     boolean leaf
     int row
     int column
-    
+
     ClosureCellEditor(Closure c = null, Map<String, Closure> callbacks = [:]) {
         this.editorValue = c
         this.callbacks.putAll(callbacks)
     }
-    
+
     @Override
-    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+    Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
         this.table = table
         this.tree = null
         this.value = value
@@ -58,10 +55,10 @@ class ClosureCellEditor extends AbstractCellEditor implements TableCellEditor, T
         this.leaf = false
         this.row = row
         this.column = column
-        
+
         return prepare();
     }
-    
+
     Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {
         this.table = null
         this.tree = tree
@@ -71,10 +68,10 @@ class ClosureCellEditor extends AbstractCellEditor implements TableCellEditor, T
         this.leaf = leaf
         this.row = row
         this.column = -1
-        
+
         return prepare();
     }
-    
+
     private Component prepare() {
         if (children.isEmpty() || defaultEditor) {
             defaultEditor = true
@@ -94,30 +91,30 @@ class ClosureCellEditor extends AbstractCellEditor implements TableCellEditor, T
             return (Component) children[0]
         }
     }
-    
+
     @Override
-    public Object getCellEditorValue() {
+    Object getCellEditorValue() {
         editorValue.call()
     }
-    
-    public void setEditorValue(Closure editorValue) {
+
+    void setEditorValue(Closure editorValue) {
         if (editorValue != null) {
             editorValue.delegate = this
             editorValue.resolveStrategy = Closure.DELEGATE_FIRST
         }
         this.editorValue = editorValue
     }
-    
-    public void setPrepareEditor(Closure prepareEditor) {
+
+    void setPrepareEditor(Closure prepareEditor) {
         if (prepareEditor != null) {
             prepareEditor.delegate = this
             prepareEditor.resolveStrategy = Closure.DELEGATE_FIRST
         }
         this.prepareEditor = prepareEditor
     }
-    
+
     @Override
-    public Object invokeMethod(String name, Object args) {
+    Object invokeMethod(String name, Object args) {
         def calledMethod = ClosureCellEditor.metaClass.getMetaMethod(name, args)
         if (callbacks."$name" && callbacks."$name" instanceof Closure)
             return callbacks."$name".call(calledMethod, this, args)
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureRenderer.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureRenderer.java
index bc7e20e..11cb6d0 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureRenderer.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ClosureRenderer.java
@@ -28,9 +28,6 @@ import java.awt.*;
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @author Danno.Ferrin
- */
 public class ClosureRenderer implements ListCellRenderer, TableCellRenderer, TreeCellRenderer {
 
     Closure update;
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/DefaultAction.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/DefaultAction.java
index a595efd..68cbce3 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/DefaultAction.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/DefaultAction.java
@@ -25,8 +25,6 @@ import java.awt.event.ActionEvent;
 
 /** 
  * A default action implementation
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class DefaultAction extends AbstractAction {
 
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ListWrapperListModel.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ListWrapperListModel.java
index ea29e54..492b661 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ListWrapperListModel.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/ListWrapperListModel.java
@@ -26,8 +26,6 @@ import java.util.ListIterator;
 
 /**
  * A {@code ListModel} implementation that's backed by a live {@code List}.
- *
- * @author Andres Almiray
  */
 public class ListWrapperListModel<E> extends AbstractListModel {
     private final List<E> delegate;
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayout.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayout.java
index ace204c..81d3b9f 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayout.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayout.java
@@ -23,8 +23,6 @@ import java.awt.*;
 
 /** 
  * Represents a HTML style table layout
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class TableLayout extends JPanel {
 
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutCell.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutCell.java
index 3350fcc..ffa94d4 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutCell.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutCell.java
@@ -24,8 +24,6 @@ import java.util.logging.Logger;
 
 /** 
  * Represents a cell in a table layout.
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class TableLayoutCell {
 
diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutRow.java b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutRow.java
index 65c4adf..a4eaed1 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutRow.java
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/impl/TableLayoutRow.java
@@ -25,8 +25,6 @@ import java.util.List;
 
 /** 
  * Represents a row in a table layout
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class TableLayoutRow {
 
diff --git a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableMap.java b/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableMap.java
index fcfdd27..9645746 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableMap.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableMap.java
@@ -31,8 +31,6 @@ import javax.swing.table.TableModel;
  * TableModelListener by routing all events to its listeners. Inserting
  * a TableMap which has not been subclassed into a chain of table filters
  * should have no effect.
- *
- * @author Philip Milne
  */
 public class TableMap extends AbstractTableModel implements TableModelListener {
     protected TableModel model;
diff --git a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableSorter.java b/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableSorter.java
index 5e1a9ee..74ed0d6 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableSorter.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableSorter.java
@@ -41,9 +41,6 @@ import java.util.Vector;
  * with the rows in a different order. The sorting algorithm used is stable
  * which means that it does not move around rows when its comparison
  * function returns 0 to denote that they are equivalent.
- *
- * @author Philip Milne
- * @author Minimal adjustments by Dierk Koenig, June 2005
  */
 public class TableSorter extends TableMap {
     private static final int[] EMPTY_INT_ARRAY = new int[0];
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/ClosureModel.java b/subprojects/groovy-swing/src/main/java/groovy/model/ClosureModel.java
index 82c1471..0f664de 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/ClosureModel.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/ClosureModel.java
@@ -24,8 +24,6 @@ import groovy.lang.Closure;
  * Represents a value model using a closure to extract
  * the value from some source model and an optional write closure
  * for updating the value.
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class ClosureModel implements ValueModel, NestedValueModel {
 
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableColumn.java b/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableColumn.java
index ceea31b..29fcf5b 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableColumn.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableColumn.java
@@ -22,8 +22,6 @@ import javax.swing.table.TableColumn;
 
 /** 
  * Represents a column using a ValueModel to extract the value.
- *
- * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  */
 public class DefaultTableColumn extends TableColumn {
 
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableModel.java b/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableModel.java
index 15fafff..0e4d45c 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableModel.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableModel.java
@@ -30,8 +30,6 @@ import java.util.List;
 
 /**
  * A default table model made up of PropertyModels on a Value model.
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class DefaultTableModel extends AbstractTableModel {
 
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/FormModel.java b/subprojects/groovy-swing/src/main/java/groovy/model/FormModel.java
index efa9e7d..fdec612 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/FormModel.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/FormModel.java
@@ -24,8 +24,6 @@ import java.util.Map;
 /**
  * Represents a number of field models which can be ValueModel, 
  * PropertyModel, TableModel, TreeModel or nested FormModel instances
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class FormModel {
     private Map fieldModels;
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/NestedValueModel.java b/subprojects/groovy-swing/src/main/java/groovy/model/NestedValueModel.java
index 60637c4..c31d269 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/NestedValueModel.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/NestedValueModel.java
@@ -21,8 +21,6 @@ package groovy.model;
 /**
  * Represents a nested value model such as a PropertyModel
  * or a ClosureModel
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public interface NestedValueModel {
     ValueModel getSourceModel();
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/PropertyModel.java b/subprojects/groovy-swing/src/main/java/groovy/model/PropertyModel.java
index 0aafbfd..4b56d9b 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/PropertyModel.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/PropertyModel.java
@@ -22,8 +22,6 @@ import org.codehaus.groovy.runtime.InvokerHelper;
 
 /**
  * Represents a property of a value as a model.
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class PropertyModel implements ValueModel, NestedValueModel {
 
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/ValueHolder.java b/subprojects/groovy-swing/src/main/java/groovy/model/ValueHolder.java
index 1b7ad7c..e34b043 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/ValueHolder.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/ValueHolder.java
@@ -24,8 +24,6 @@ import java.beans.PropertyChangeSupport;
 /**
  * A simple ValueModel implementation which is a holder of an object value. 
  * Used to share local variables with closures
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class ValueHolder implements ValueModel {
     private Object value;
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/ValueModel.java b/subprojects/groovy-swing/src/main/java/groovy/model/ValueModel.java
index 75b6541..510fd79 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/model/ValueModel.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/model/ValueModel.java
@@ -20,8 +20,6 @@ package groovy.model;
 
 /**
  * Represents a model of a value
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public interface ValueModel {
     Object getValue();
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AbstractFullBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AbstractFullBinding.java
index d96d25f..d361793 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AbstractFullBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AbstractFullBinding.java
@@ -21,7 +21,6 @@ package org.codehaus.groovy.binding;
 import groovy.lang.Closure;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public abstract class AbstractFullBinding  implements FullBinding {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AggregateBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AggregateBinding.java
index 8981f42..c27726d 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AggregateBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/AggregateBinding.java
@@ -23,7 +23,7 @@ import java.util.Set;
 
 /**
  * An aggregation of multiple bindings
- * @author Danno Ferrin
+ *
  * @since Groovy 1.6
  */
 public class AggregateBinding implements BindingUpdatable {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingProxy.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingProxy.java
index 1c7798b..a687eba 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingProxy.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingProxy.java
@@ -35,7 +35,6 @@ import java.util.Map;
  *
  * Formerly Known as Model Binding.
  *
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.5
  */
 public class BindingProxy extends GroovyObjectSupport implements BindingUpdatable {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingUpdatable.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingUpdatable.java
index 2fa8f0e..d4b6b16 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingUpdatable.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/BindingUpdatable.java
@@ -19,7 +19,6 @@
 package org.codehaus.groovy.binding;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public interface BindingUpdatable {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/ClosureSourceBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/ClosureSourceBinding.java
index b2b85b9..22f422b 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/ClosureSourceBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/ClosureSourceBinding.java
@@ -21,7 +21,6 @@ package org.codehaus.groovy.binding;
 import groovy.lang.Closure;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class ClosureSourceBinding implements SourceBinding {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/EventTriggerBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/EventTriggerBinding.java
index 804e814..844c617 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/EventTriggerBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/EventTriggerBinding.java
@@ -22,7 +22,6 @@ import groovy.lang.Closure;
 import org.codehaus.groovy.runtime.InvokerHelper;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class EventTriggerBinding implements TriggerBinding {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/FullBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/FullBinding.java
index fd78bc3..77375c4 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/FullBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/FullBinding.java
@@ -21,7 +21,6 @@ package org.codehaus.groovy.binding;
 import groovy.lang.Closure;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public interface FullBinding extends BindingUpdatable {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/MutualPropertyBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/MutualPropertyBinding.java
index 86e71f7..a11de2b 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/MutualPropertyBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/MutualPropertyBinding.java
@@ -21,7 +21,6 @@ package org.codehaus.groovy.binding;
 import groovy.lang.Closure;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.6
  */
 
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/PropertyBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/PropertyBinding.java
index 09fdbcf..c577872 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/PropertyBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/PropertyBinding.java
@@ -46,8 +46,6 @@ import java.util.logging.Logger;
 
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
- * @author Andres Almiray
  * @since Groovy 1.1
  */
 public class PropertyBinding implements SourceBinding, TargetBinding, TriggerBinding {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SourceBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SourceBinding.java
index af4cb99..9ed635c 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SourceBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SourceBinding.java
@@ -19,7 +19,6 @@
 package org.codehaus.groovy.binding;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public interface SourceBinding {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SwingTimerTriggerBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SwingTimerTriggerBinding.java
index a289a06..26ad72a 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SwingTimerTriggerBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/SwingTimerTriggerBinding.java
@@ -23,7 +23,6 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public class SwingTimerTriggerBinding implements TriggerBinding {
@@ -33,7 +32,6 @@ public class SwingTimerTriggerBinding implements TriggerBinding {
 }
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 class SwingTimerFullBinding extends AbstractFullBinding implements ActionListener {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TargetBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TargetBinding.java
index 06912a4..6fba010 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TargetBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TargetBinding.java
@@ -19,7 +19,6 @@
 package org.codehaus.groovy.binding;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public interface TargetBinding {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TriggerBinding.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TriggerBinding.java
index ed36033..f41a075 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TriggerBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/binding/TriggerBinding.java
@@ -19,7 +19,6 @@
 package org.codehaus.groovy.binding;
 
 /**
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  * @since Groovy 1.1
  */
 public interface TriggerBinding {
diff --git a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/runtime/SwingGroovyMethods.java b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/runtime/SwingGroovyMethods.java
index 353faa8..e0aa6bf 100644
--- a/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/runtime/SwingGroovyMethods.java
+++ b/subprojects/groovy-swing/src/main/java/org/codehaus/groovy/runtime/SwingGroovyMethods.java
@@ -38,8 +38,6 @@ import java.util.Iterator;
  * This class defines all the new Swing-related groovy methods which enhance
  * the normal JDK Swing classes when inside the Groovy environment.
  * Static methods are used with the first parameter the destination class.
- *
- * @author Andres Almiray
  */
 public class SwingGroovyMethods {
 
diff --git a/subprojects/groovy-swing/src/test/groovy/groovy/beans/BindableSwingTest.groovy b/subprojects/groovy-swing/src/test/groovy/groovy/beans/BindableSwingTest.groovy
index f17a37b..4c1e89f 100644
--- a/subprojects/groovy-swing/src/test/groovy/groovy/beans/BindableSwingTest.groovy
+++ b/subprojects/groovy-swing/src/test/groovy/groovy/beans/BindableSwingTest.groovy
@@ -18,9 +18,6 @@
  */
 package groovy.beans
 
-/**
- * @author Danno Ferrin (shemnon)
- */
 class BindableSwingTest extends GroovySwingTestCase {
     public void testExtendsComponent() {
         testInEDT {
diff --git a/subprojects/groovy-swing/src/test/groovy/groovy/beans/VetoableSwingTest.groovy b/subprojects/groovy-swing/src/test/groovy/groovy/beans/VetoableSwingTest.groovy
index 620fa48..7163265 100644
--- a/subprojects/groovy-swing/src/test/groovy/groovy/beans/VetoableSwingTest.groovy
+++ b/subprojects/groovy-swing/src/test/groovy/groovy/beans/VetoableSwingTest.groovy
@@ -18,9 +18,6 @@
  */
 package groovy.beans
 
-/**
- * @author Danno Ferrin (shemnon)
- */
 class VetoableSwingTest extends GroovySwingTestCase {
     public void testExtendsComponent() {
         testInEDT {
diff --git a/subprojects/groovy-swing/src/test/groovy/groovy/bugs/Groovy303_Bug.groovy b/subprojects/groovy-swing/src/test/groovy/groovy/bugs/Groovy303_Bug.groovy
index 2746c7b..b7877ad 100644
--- a/subprojects/groovy-swing/src/test/groovy/groovy/bugs/Groovy303_Bug.groovy
+++ b/subprojects/groovy-swing/src/test/groovy/groovy/bugs/Groovy303_Bug.groovy
@@ -22,10 +22,6 @@ import java.awt.*
 import java.awt.event.*
 import javax.swing.*
 
-/**
- * @author Bing Ran
- * @author Andy Dwelly
- */
 class Groovy303_Bug extends GroovySwingTestCase {
     void testBug() {
       testInEDT {
@@ -52,7 +48,7 @@ class Scholastic implements ActionListener {
         button.doClick()
     }
 
-    public void actionPerformed(ActionEvent event) {
+    void actionPerformed(ActionEvent event) {
         println "hello"
     }
 }
diff --git a/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingMetaMethodsTest.groovy b/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingMetaMethodsTest.groovy
index 7cac27b..54d98f4 100644
--- a/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingMetaMethodsTest.groovy
+++ b/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingMetaMethodsTest.groovy
@@ -22,10 +22,6 @@ import javax.swing.*
 import javax.swing.table.*
 import javax.swing.tree.*
 
-/**
- *
- * @author Andres.Almiray
- */
 class SwingMetaMethodsTest extends GroovySwingTestCase {
     void testContainer() {
         testInEDT {
diff --git a/subprojects/groovy-swing/src/test/groovy/org/codehaus/groovy/runtime/DummyBean.java b/subprojects/groovy-swing/src/test/groovy/org/codehaus/groovy/runtime/DummyBean.java
index 7adb123..80a72f8 100644
--- a/subprojects/groovy-swing/src/test/groovy/org/codehaus/groovy/runtime/DummyBean.java
+++ b/subprojects/groovy-swing/src/test/groovy/org/codehaus/groovy/runtime/DummyBean.java
@@ -26,9 +26,6 @@ import java.util.Map;
 
 /**
  * A bean used by the test cases
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author <a href="mailto:shemnon@yahoo.com">Danno Ferrin</a>
  */
 public class DummyBean {
     private String name = "James";
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/SimpleTemplateEngine.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/SimpleTemplateEngine.java
index 1893bd1..801874c 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/SimpleTemplateEngine.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/SimpleTemplateEngine.java
@@ -88,11 +88,6 @@ import java.util.Map;
  * &lt;/servlet&gt;
  * </pre>
  * In this case, your template source file should be HTML with the appropriate embedded placeholders.
- *
- * @author sam
- * @author Christian Stein
- * @author Paul King
- * @author Alex Tkachman
  */
 public class SimpleTemplateEngine extends TemplateEngine {
     private boolean verbose;
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/StreamingTemplateEngine.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/StreamingTemplateEngine.java
index 23745cd..a902404 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/StreamingTemplateEngine.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/StreamingTemplateEngine.java
@@ -142,9 +142,6 @@ import java.util.Map;
  * </pre>
  * In the above example.
  * </p>
- *
- * @author mbjarland@gmail.com
- * @author Matias Bjarland
  */
 public class StreamingTemplateEngine extends TemplateEngine {
     private static final String TEMPLATE_SCRIPT_PREFIX = "StreamingTemplateScript";
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/Template.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/Template.java
index 1bbfcee..00c5508 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/Template.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/Template.java
@@ -25,8 +25,6 @@ import java.util.Map;
 
 /**
  * A template is a block of text with an associated binding that can be output to a writer or evaluated to a string.
- * 
- * @author sam
  */
 public interface Template {
     Writable make();
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/TemplateEngine.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/TemplateEngine.java
index 4761e83..f2282c5 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/TemplateEngine.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/TemplateEngine.java
@@ -31,8 +31,6 @@ import java.net.URL;
 
 /**
  * Represents an API to any template engine which is basically a factory of Template instances from a given text input.
- * 
- * @author sam
  */
 public abstract class TemplateEngine {
     public abstract Template createTemplate(Reader reader) throws CompilationFailedException, ClassNotFoundException, IOException;
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java
index e463770..27e2599 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java
@@ -101,9 +101,6 @@ import java.util.Map;
  *   &lt;/init-param&gt;
  * &lt;/servlet&gt;
  * </pre>
- *
- * @author Christian Stein
- * @author Paul King
  */
 public class XmlTemplateEngine extends TemplateEngine {
 
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/AutoNewLineTransformer.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/AutoNewLineTransformer.java
index 8662743..e06f6ab 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/AutoNewLineTransformer.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/AutoNewLineTransformer.java
@@ -38,8 +38,6 @@ import java.util.List;
 /**
  * This transformer is responsible for adding calls to the <i>newLine</i> method
  * depending on the layout of the source code, inside builder like blocks.
- *
- * @author Cedric Champeau
  */
 class AutoNewLineTransformer extends ClassCodeVisitorSupport {
     private final SourceUnit unit;
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/BaseTemplate.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/BaseTemplate.java
index 0ceaccc..fc58fc8 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/BaseTemplate.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/BaseTemplate.java
@@ -49,8 +49,6 @@ import static groovy.xml.XmlUtil.escapeXml;
  * <p>For the application needs, it is possible to provide more helper methods by extending this class and
  * configuring the base template class using the {@link groovy.text.markup.TemplateConfiguration#setBaseTemplateClass(Class)}
  * method.</p>
- *
- * @author Cedric Champeau
  */
 public abstract class BaseTemplate implements Writable {
     private static final Map EMPTY_MODEL = Collections.emptyMap();
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/DelegatingIndentWriter.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/DelegatingIndentWriter.java
index ee2f98f..9ab1aad 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/DelegatingIndentWriter.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/DelegatingIndentWriter.java
@@ -22,10 +22,7 @@ import java.io.IOException;
 import java.io.Writer;
 
 /**
- * A writer which delegates to another writer and supports an
- * additional indenting level.
- *
- * @author Cedric Champeau
+ * A writer which delegates to another writer and supports an additional indenting level.
  */
 public class DelegatingIndentWriter extends Writer {
     public static final String SPACES = "    ";
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/IncludeType.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/IncludeType.java
index 825ef69..970b5dd 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/IncludeType.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/IncludeType.java
@@ -19,10 +19,7 @@
 package groovy.text.markup;
 
 /**
- * An enumeration used internally to map include types to {@link groovy.text.markup.BaseTemplate} method
- * calls.
- *
- * @author Cedric Champeau
+ * An enumeration used internally to map include types to {@link groovy.text.markup.BaseTemplate} method calls.
  */
 enum IncludeType {
     template("includeGroovy"), // includes another Groovy template
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java
index 179530a..c199cb3 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java
@@ -58,8 +58,6 @@ import java.util.Map;
  * <i>getModel().get(...)</i> calls into <i>tryEscape</i> calls for automatic escaping</li> <li>replace <i>include
  * XXX:'...'</i> calls with the appropriate <i>includeXXXX</i> method calls</li> <li>replace <i>':tagName'()</i> calls
  * into <i>methodMissing('tagName', ...)</i> calls</li> </ul>
- *
- * @author Cedric Champeau
  */
 class MarkupBuilderCodeTransformer extends ClassCodeExpressionTransformer {
 
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateEngine.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateEngine.java
index d9118f5..439e1ac 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateEngine.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateEngine.java
@@ -55,8 +55,6 @@ import java.util.regex.Pattern;
 
 /**
  * A template engine which leverages {@link groovy.xml.StreamingMarkupBuilder} to generate XML/XHTML.
- *
- * @author Cedric Champeau
  */
 public class MarkupTemplateEngine extends TemplateEngine {
 
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy
index 0d4acec..9d91fcf 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupTemplateTypeCheckingExtension.groovy
@@ -59,8 +59,6 @@ import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isAssi
  * calls into direct calls to {@link BaseTemplate#methodMissing(java.lang.String, java.lang.Object)}
  * for faster rendering.</p>
  * <p>This extension also supports optional type checking of the model</p>
- *
- * @author Cedric Champeau
  */
 class MarkupTemplateTypeCheckingExtension extends GroovyTypeCheckingExtensionSupport.TypeCheckingDSL {
 
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TagLibAdapter.groovy b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TagLibAdapter.groovy
index 0c0044e..9c69b7d 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TagLibAdapter.groovy
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TagLibAdapter.groovy
@@ -46,8 +46,6 @@ package groovy.text.markup
  *
  * Performance-wise, it would be better to reimplement the taglib, but this makes it easier to reuse
  * existing code.
- *
- * @author Cédric Champeau
  */
 class TagLibAdapter {
     private final BaseTemplate template
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateASTTransformer.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateASTTransformer.java
index effb0ed8..1d21352 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateASTTransformer.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateASTTransformer.java
@@ -50,8 +50,6 @@ import java.util.List;
  *     <li>Calls the {@link groovy.text.markup.MarkupBuilderCodeTransformer} on the "run" method</li>
  *     <li>Creates the appropriate constructor</li>
  * </ul>
- *
- * @author Cedric Champeau
  */
 class TemplateASTTransformer extends CompilationCustomizer {
 
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateConfiguration.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateConfiguration.java
index 2dc5c2c..282bdbe 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateConfiguration.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateConfiguration.java
@@ -22,8 +22,6 @@ import java.util.Locale;
 
 /**
  * Configuration options for the {@link groovy.text.markup.MarkupTemplateEngine markup template engine}.
- *
- * @author Cedric Champeau
  */
 public class TemplateConfiguration {
 
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateResolver.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateResolver.java
index db2b345..4dac742 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateResolver.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/TemplateResolver.java
@@ -24,8 +24,6 @@ import java.net.URL;
 /**
  * Interface for template resolvers, which, given a template identifier, return an URL where the template
  * can be loaded.
- *
- * @author Cédric Champeau
  */
 public interface TemplateResolver {
     /**
diff --git a/subprojects/groovy-templates/src/test/groovy/groovy/SimpleGStringTemplateEngineTest.groovy b/subprojects/groovy-templates/src/test/groovy/groovy/SimpleGStringTemplateEngineTest.groovy
index 47b545f..9f97b3c 100644
--- a/subprojects/groovy-templates/src/test/groovy/groovy/SimpleGStringTemplateEngineTest.groovy
+++ b/subprojects/groovy-templates/src/test/groovy/groovy/SimpleGStringTemplateEngineTest.groovy
@@ -16,49 +16,41 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package groovy;
+package groovy
 
-import groovy.text.Template;
-import groovy.text.GStringTemplateEngine;
+import groovy.text.GStringTemplateEngine
+import groovy.text.Template
 
-/**
- * @author andy
- * @since Jan 11, 2006 1:05:23 PM
- */
-public class SimpleGStringTemplateEngineTest extends GroovyTestCase
-{
-  void testRegressionCommentBug()
-  {
-    final Template template = new GStringTemplateEngine().createTemplate(
-        "<% // This is a comment that will be filtered from output %>\n" +
-        "Hello World!"
-    );
+class SimpleGStringTemplateEngineTest extends GroovyTestCase {
+    void testRegressionCommentBug() {
+        final Template template = new GStringTemplateEngine().createTemplate(
+                "<% // This is a comment that will be filtered from output %>\n" +
+                        "Hello World!"
+        )
 
-    final StringWriter sw = new StringWriter();
-    template.make().writeTo(sw);
-    assertEquals("\nHello World!", sw.toString());
-  }
+        final StringWriter sw = new StringWriter()
+        template.make().writeTo(sw)
+        assertEquals("\nHello World!", sw.toString())
+    }
 
     void testShouldNotShareBinding() {
-        String text = "<% println delegate.books; books = books.split(\",\"); out << books %>";
+        String text = "<% println delegate.books; books = books.split(\",\"); out << books %>"
 
-        StringWriter sw = new StringWriter();
-        GStringTemplateEngine engine = new GStringTemplateEngine();
+        StringWriter sw = new StringWriter()
+        GStringTemplateEngine engine = new GStringTemplateEngine()
 
-        Template template = engine.createTemplate(text);
+        Template template = engine.createTemplate(text)
 
         Map data = [books: 'a,b,c,d']
 
-
-        // round one sucess
-        template.make(data).writeTo(sw);
+        // round one success
+        template.make(data).writeTo(sw)
         assert sw.toString() == '[a, b, c, d]'
 
-        sw = new StringWriter();
+        sw = new StringWriter()
         // round two fails
         data = [books: 'e,f,g,h']
-        template.make(data).writeTo(sw);
+        template.make(data).writeTo(sw)
         assert sw.toString() == '[e, f, g, h]'
-
     }
 }
diff --git a/subprojects/groovy-templates/src/test/groovy/groovy/SimpleTemplateEngineTest.groovy b/subprojects/groovy-templates/src/test/groovy/groovy/SimpleTemplateEngineTest.groovy
index 6690a2a..b0ba0c3 100644
--- a/subprojects/groovy-templates/src/test/groovy/groovy/SimpleTemplateEngineTest.groovy
+++ b/subprojects/groovy-templates/src/test/groovy/groovy/SimpleTemplateEngineTest.groovy
@@ -18,9 +18,6 @@
  */
 package groovy
 
-/**
- * @author Jochen "blackdrag" Theodorou
- */
 class SimpleTemplateEngineTest extends GroovyTestCase {
 
     void testBindingWithDefault() {
diff --git a/subprojects/groovy-templates/src/test/java/groovy/text/TemplateTest.java b/subprojects/groovy-templates/src/test/java/groovy/text/TemplateTest.java
index 8652411..b4938d6 100644
--- a/subprojects/groovy-templates/src/test/java/groovy/text/TemplateTest.java
+++ b/subprojects/groovy-templates/src/test/java/groovy/text/TemplateTest.java
@@ -25,9 +25,6 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * @author sam
- */
 public class TemplateTest extends TestCase {
 
     public void testMixedTemplateText() throws CompilationFailedException, ClassNotFoundException, IOException {


[groovy] 23/28: cleanup/remove @author tags as per Apache recommended practices for groovy-servlet, groovy-sql

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit b3c9afff74a6cfc82b72db317038f59ed9d51fc8
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Dec 28 06:14:59 2018 +1000

    cleanup/remove @author tags as per Apache recommended practices for groovy-servlet, groovy-sql
---
 gradle/pomconfigurer.gradle                                  | 12 ++++++++++++
 src/test/groovy/bugs/ByteIndexBug.groovy                     |  3 ---
 src/test/org/codehaus/groovy/dummy/FooHandler.java           |  3 ---
 .../src/main/java/groovy/servlet/AbstractHttpServlet.java    |  3 ---
 .../src/main/java/groovy/servlet/GroovyServlet.java          |  6 ------
 .../src/main/java/groovy/servlet/ServletBinding.java         |  8 --------
 .../src/main/java/groovy/servlet/TemplateServlet.java        |  4 ----
 .../groovy/groovy/servlet/AbstractHttpServletTest.groovy     |  2 --
 .../src/test/groovy/groovy/servlet/ServletBindingTest.groovy |  2 --
 .../java/groovy/sql/BatchingPreparedStatementWrapper.java    |  3 ---
 .../groovy-sql/src/main/java/groovy/sql/CallResultSet.java   |  2 --
 subprojects/groovy-sql/src/main/java/groovy/sql/DataSet.java |  4 ----
 .../src/main/java/groovy/sql/ExpandedVariable.java           |  2 --
 .../groovy-sql/src/main/java/groovy/sql/GroovyResultSet.java |  4 ----
 .../src/main/java/groovy/sql/GroovyResultSetExtension.java   |  1 -
 .../src/main/java/groovy/sql/GroovyResultSetProxy.java       |  2 --
 .../groovy-sql/src/main/java/groovy/sql/GroovyRowResult.java |  2 --
 .../groovy-sql/src/main/java/groovy/sql/InOutParameter.java  |  2 --
 .../groovy-sql/src/main/java/groovy/sql/InParameter.java     |  2 --
 .../groovy-sql/src/main/java/groovy/sql/OutParameter.java    |  2 --
 .../src/main/java/groovy/sql/ResultSetOutParameter.java      |  2 --
 subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java     | 10 ----------
 .../src/main/java/groovy/sql/SqlOrderByVisitor.java          |  4 ----
 .../groovy-sql/src/main/java/groovy/sql/SqlWhereVisitor.java |  3 ---
 .../src/test/groovy/groovy/bugs/ForAndSqlBug.groovy          |  3 ---
 .../src/test/groovy/groovy/sql/SqlBatchTest.groovy           |  2 --
 .../src/test/groovy/groovy/sql/SqlCacheTest.groovy           |  2 --
 .../groovy-sql/src/test/groovy/groovy/sql/SqlCallTest.groovy |  2 --
 .../src/test/groovy/groovy/sql/SqlStatementTest.groovy       |  2 --
 .../groovy/groovy/sql/SqlTransactionConnectionTest.groovy    |  2 --
 .../groovy/groovy/sql/SqlTransactionDataSourceTest.groovy    |  2 --
 .../src/test/groovy/groovy/sql/SqlTransactionTestCase.groovy |  2 --
 .../src/test/groovy/groovy/sql/SqlWithBuilderTest.groovy     |  3 ---
 .../test/groovy/groovy/sql/SqlWithTypedResultsTest.groovy    |  4 ----
 34 files changed, 12 insertions(+), 100 deletions(-)

diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index ee72aa5..cc3fb90 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -639,6 +639,18 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Marty Saxton'
             }
             contributor {
+                name 'Marcel Overdijk'
+            }
+            contributor {
+                name 'Jonathan Carlson'
+            }
+            contributor {
+                name 'Thomas Heller'
+            }
+            contributor {
+                name 'Ivan Ganza'
+            }
+            contributor {
                 name 'Alex Popescu'
             }
             contributor {
diff --git a/src/test/groovy/bugs/ByteIndexBug.groovy b/src/test/groovy/bugs/ByteIndexBug.groovy
index bb4825f..906882e 100644
--- a/src/test/groovy/bugs/ByteIndexBug.groovy
+++ b/src/test/groovy/bugs/ByteIndexBug.groovy
@@ -18,9 +18,6 @@
  */
 package groovy.bugs
 
-/**
- * @author Robert Fuller 
- */
 class ByteIndexBug extends GroovyTestCase {
     // TODO: this tests a string with 128 nulls - is that what is intended?
     void testBug() {
diff --git a/src/test/org/codehaus/groovy/dummy/FooHandler.java b/src/test/org/codehaus/groovy/dummy/FooHandler.java
index 7a0f7ba..704ab96 100644
--- a/src/test/org/codehaus/groovy/dummy/FooHandler.java
+++ b/src/test/org/codehaus/groovy/dummy/FooHandler.java
@@ -20,9 +20,6 @@ package org.codehaus.groovy.dummy;
 
 import java.io.Reader;
 
-/**
- * @author Robert Fuller
- */
 public interface FooHandler {
     void handle(Reader reader);
 }
diff --git a/subprojects/groovy-servlet/src/main/java/groovy/servlet/AbstractHttpServlet.java b/subprojects/groovy-servlet/src/main/java/groovy/servlet/AbstractHttpServlet.java
index 7a2d615..fecb97b 100644
--- a/subprojects/groovy-servlet/src/main/java/groovy/servlet/AbstractHttpServlet.java
+++ b/subprojects/groovy-servlet/src/main/java/groovy/servlet/AbstractHttpServlet.java
@@ -78,9 +78,6 @@ import java.util.regex.Pattern;
  * <pre>
  * reflection = false(default) | true
  * </pre>
- *
- * @author Christian Stein
- * @author Roshan Dawrani (roshandawrani)
  */
 public abstract class AbstractHttpServlet extends HttpServlet implements ResourceConnector {
 
diff --git a/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java b/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java
index f64ec95..73b044d 100644
--- a/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java
+++ b/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java
@@ -67,12 +67,6 @@ import java.io.IOException;
  * <p>The URL pattern does not require the "*.groovy" mapping.  You can, for
  * example, make it more Struts-like but groovy by making your mapping "*.gdo".
  *
- * @author Sam Pullara
- * @author Mark Turansky (markturansky at hotmail.com)
- * @author Guillaume Laforge
- * @author Christian Stein
- * @author Marcel Overdijk
- *
  * @see groovy.servlet.ServletBinding
  */
 public class GroovyServlet extends AbstractHttpServlet {
diff --git a/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java b/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java
index 3b386f9..b626969 100644
--- a/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java
+++ b/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java
@@ -92,18 +92,12 @@ import java.util.Map;
  * <li><tt>"include(String path)"</tt> : <code>request.getRequestDispatcher(path).include(request, response)</code></li>
  * <li><tt>"redirect(String location)"</tt> : <code>response.sendRedirect(location)</code></li>
  * </ul>
- *
- * @author Guillaume Laforge
- * @author Christian Stein
- * @author Jochen Theodorou
  */
 public class ServletBinding extends Binding {
     
     /**
      * A OutputStream dummy that will throw a GroovyBugError for any
      * write method call to it. 
-     * 
-     * @author Jochen Theodorou
      */
     private static class InvalidOutputStream extends OutputStream {
         /**
@@ -121,8 +115,6 @@ public class ServletBinding extends Binding {
      * using the stream will cause a IllegalStateException. 'used' means
      * any write method has been called. Simply requesting the objects will
      * not cause an exception. 
-     * 
-     * @author Jochen Theodorou
      */
     private static class ServletOutput {
         private final HttpServletResponse response;
diff --git a/subprojects/groovy-servlet/src/main/java/groovy/servlet/TemplateServlet.java b/subprojects/groovy-servlet/src/main/java/groovy/servlet/TemplateServlet.java
index d64378e..ba43617 100644
--- a/subprojects/groovy-servlet/src/main/java/groovy/servlet/TemplateServlet.java
+++ b/subprojects/groovy-servlet/src/main/java/groovy/servlet/TemplateServlet.java
@@ -102,8 +102,6 @@ import java.util.WeakHashMap;
  *   groovy.source.encoding
  * </pre>
  *
- * @author Christian Stein
- * @author Guillaume Laforge
  * @see TemplateServlet#setVariables(ServletBinding)
  */
 public class TemplateServlet extends AbstractHttpServlet {
@@ -111,8 +109,6 @@ public class TemplateServlet extends AbstractHttpServlet {
     /**
      * Simple cache entry. If a file is supplied, then the entry is validated against
      * last modified and length attributes of the specified file.
-     *
-     * @author Christian Stein
      */
     private static class TemplateCacheEntry {
 
diff --git a/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/AbstractHttpServletTest.groovy b/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/AbstractHttpServletTest.groovy
index 8f6a4ed..1b7fb9f 100644
--- a/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/AbstractHttpServletTest.groovy
+++ b/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/AbstractHttpServletTest.groovy
@@ -26,8 +26,6 @@ import javax.servlet.ServletConfig
  * This test case tests the AbstractHttpServlet class. It uses a test
  * specific subclass called ConcreteHttpServlet to test the abstract
  * class in isolation from any implementations.
- *
- * @author Hamlet D'Arcy
  */
 class AbstractHttpServletTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/ServletBindingTest.groovy b/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/ServletBindingTest.groovy
index 4100b12..138df07 100644
--- a/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/ServletBindingTest.groovy
+++ b/subprojects/groovy-servlet/src/test/groovy/groovy/servlet/ServletBindingTest.groovy
@@ -27,8 +27,6 @@ import groovy.xml.MarkupBuilder
 
 /**
  * This test case tests the ServletBinding class.
- *
- * @author Hamlet D'Arcy
  */
 class ServletBindingTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/BatchingPreparedStatementWrapper.java b/subprojects/groovy-sql/src/main/java/groovy/sql/BatchingPreparedStatementWrapper.java
index eb8d76c..6f02420 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/BatchingPreparedStatementWrapper.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/BatchingPreparedStatementWrapper.java
@@ -31,9 +31,6 @@ import java.util.logging.Logger;
  * a batch count size. If the batch count reaches the predefined number,
  * this Statement does an executeBatch() automatically. If batchSize is
  * zero, then no batching is performed.
- *
- * @author Daniel Henrique Alves Lima
- * @author Paul King
  */
 public class BatchingPreparedStatementWrapper extends BatchingStatementWrapper {
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/CallResultSet.java b/subprojects/groovy-sql/src/main/java/groovy/sql/CallResultSet.java
index a821d78..3b7a807 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/CallResultSet.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/CallResultSet.java
@@ -24,8 +24,6 @@ import java.sql.SQLException;
 
 /**
  * Represents a ResultSet retrieved as a callable statement out parameter.
- *
- * @author rfuller
  */
 class CallResultSet extends GroovyResultSetExtension {
     int indx;
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/DataSet.java b/subprojects/groovy-sql/src/main/java/groovy/sql/DataSet.java
index 551a349..7d3c922 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/DataSet.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/DataSet.java
@@ -65,10 +65,6 @@ import java.util.Set;
  * classpath at runtime. Also, at the moment, the expressions (or nested expressions) can only contain
  * references to fields of the POGO or literals (i.e. constant Strings or numbers). This limitation
  * may be removed in a future version of Groovy.
- *
- * @author Chris Stevenson
- * @author Paul King
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class DataSet extends Sql {
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/ExpandedVariable.java b/subprojects/groovy-sql/src/main/java/groovy/sql/ExpandedVariable.java
index 9fdbeed..1ad1957 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/ExpandedVariable.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/ExpandedVariable.java
@@ -21,8 +21,6 @@ package groovy.sql;
 /**
  * Identifies a variable to be expanded into the
  * sql string rather than representing a placeholder.
- *
- * @author rfuller
  */
 public interface ExpandedVariable {
     Object getObject();
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSet.java b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSet.java
index ef5d135..6a1cea8 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSet.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSet.java
@@ -27,10 +27,6 @@ import java.util.Map;
 
 /**
  * Represents an extent of objects
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author <a href="mailto:ivan_ganza@yahoo.com">Ivan Ganza</a>
- * @author Chris Stevenson
  */
 public interface GroovyResultSet extends GroovyObject, ResultSet {
     /**
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetExtension.java b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetExtension.java
index e7eeda2..759d13c 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetExtension.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetExtension.java
@@ -40,7 +40,6 @@ import java.util.Map;
  * <b>This class is not intended to be used directly. Should be used through
  * GroovyResultSetProxy only!</b>
  *
- * @author Jochen Theodorou
  * @see GroovyResultSet
  * @see GroovyResultSetProxy
  */
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetProxy.java b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetProxy.java
index 2e242d7..39764be 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetProxy.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyResultSetProxy.java
@@ -37,8 +37,6 @@ import java.sql.ResultSet;
  * This way it is possible to replace and add methods. To overload methods
  * from ResultSet all methods have to be implemented on the extension
  * class.
- *
- * @author Jochen Theodorou
  */
 public final class GroovyResultSetProxy implements InvocationHandler {
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyRowResult.java b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyRowResult.java
index 00224bf..4202749 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyRowResult.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/GroovyRowResult.java
@@ -30,8 +30,6 @@ import java.util.Set;
  * Represents an extent of objects.
  * It's primarily used by methods of Groovy's {@link groovy.sql.Sql} class to return {@code ResultSet} data in map
  * form; allowing access to the result of a SQL query by the name of the column, or by the column number.
- *
- * @author Jean-Louis Berliet
  */
 public class GroovyRowResult extends GroovyObjectSupport implements Map {
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/InOutParameter.java b/subprojects/groovy-sql/src/main/java/groovy/sql/InOutParameter.java
index 3f00ca4..cdfcc82 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/InOutParameter.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/InOutParameter.java
@@ -19,8 +19,6 @@
 package groovy.sql;
 
 /**
- * @author rfuller
- *
  * A typed parameter passed to, and returned from a CallableStatement.
  */
 public interface InOutParameter extends InParameter, OutParameter {
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/InParameter.java b/subprojects/groovy-sql/src/main/java/groovy/sql/InParameter.java
index 49eea9b..02880f2 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/InParameter.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/InParameter.java
@@ -20,8 +20,6 @@ package groovy.sql;
 
 /**
  * A typed parameter to pass to a query
- *
- * @author rfuller
  */
 public interface InParameter {
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/OutParameter.java b/subprojects/groovy-sql/src/main/java/groovy/sql/OutParameter.java
index 34c9eb8..8e41927 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/OutParameter.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/OutParameter.java
@@ -20,8 +20,6 @@ package groovy.sql;
 
 /**
  * A parameter to be returned from a CallableStatement.
- *
- * @author rfuller
  */
 public interface OutParameter {
     /**
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/ResultSetOutParameter.java b/subprojects/groovy-sql/src/main/java/groovy/sql/ResultSetOutParameter.java
index a2a68a8..4f59f2e 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/ResultSetOutParameter.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/ResultSetOutParameter.java
@@ -20,8 +20,6 @@ package groovy.sql;
 
 /**
  * A ResultSet out parameter.
- * @author rfuller
- *
  */
 public interface ResultSetOutParameter extends OutParameter{
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java b/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java
index 1616f65..513bc0e 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java
@@ -229,16 +229,6 @@ import static org.apache.groovy.sql.extensions.SqlExtensions.toRowResult;
  * the interaction with the underlying database.
  * <p>
  * This class is <b>not</b> thread-safe.
- *
- * @author Chris Stevenson
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Paul King
- * @author Marc DeXeT
- * @author John Bito
- * @author John Hurst
- * @author David Durham
- * @author Daniel Henrique Alves Lima
- * @author David Sutherland
  */
 public class Sql implements AutoCloseable {
 
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/SqlOrderByVisitor.java b/subprojects/groovy-sql/src/main/java/groovy/sql/SqlOrderByVisitor.java
index de6c0b2..62d0345 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/SqlOrderByVisitor.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/SqlOrderByVisitor.java
@@ -22,9 +22,6 @@ import org.codehaus.groovy.ast.CodeVisitorSupport;
 import org.codehaus.groovy.ast.expr.PropertyExpression;
 import org.codehaus.groovy.ast.stmt.ReturnStatement;
 
-/**
- * @author Paul King
- */
 public class SqlOrderByVisitor extends CodeVisitorSupport {
 
     private final StringBuffer buffer = new StringBuffer();
@@ -41,5 +38,4 @@ public class SqlOrderByVisitor extends CodeVisitorSupport {
         buffer.append(expression.getPropertyAsString());
     }
 
-
 }
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/SqlWhereVisitor.java b/subprojects/groovy-sql/src/main/java/groovy/sql/SqlWhereVisitor.java
index f994cae..76cca95 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/SqlWhereVisitor.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/SqlWhereVisitor.java
@@ -33,9 +33,6 @@ import org.codehaus.groovy.syntax.Types;
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @author James Strachan
- */
 public class SqlWhereVisitor extends CodeVisitorSupport {
 
     private final StringBuffer buffer = new StringBuffer();
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/bugs/ForAndSqlBug.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/bugs/ForAndSqlBug.groovy
index 3e9e240..1141b28 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/bugs/ForAndSqlBug.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/bugs/ForAndSqlBug.groovy
@@ -20,9 +20,6 @@ package groovy.bugs
 
 import groovy.sql.SqlHelperTestCase
 
-/**
- * @author Jonathan Carlson
- */
 class ForAndSqlBug extends GroovyTestCase {
 
     void testBugInNormalMethod() {
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlBatchTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlBatchTest.groovy
index 6916113..72e8e60 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlBatchTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlBatchTest.groovy
@@ -26,8 +26,6 @@ import static groovy.sql.SqlTestConstants.*
 
 /**
  * Test Sql batch features
- *
- * @author Paul King
  */
 class SqlBatchTest extends GroovyTestCase {
     Sql sql
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCacheTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCacheTest.groovy
index 52e0941..213ba57 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCacheTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCacheTest.groovy
@@ -27,8 +27,6 @@ import static groovy.sql.SqlTestConstants.*
 
 /**
  * Unit test of Sql cache feature 
- * @author Marc DeXeT
- * @author Paul King
  */
 class SqlCacheTest extends GroovyTestCase {
     Sql sql
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCallTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCallTest.groovy
index 8dc6189..cc9ddef 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCallTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlCallTest.groovy
@@ -26,8 +26,6 @@ import static groovy.sql.SqlTestConstants.*
 /**
  * Test Sql transaction features using a Sql built from a connection
  * along with testing Stored Procedure calls
- *
- * @author Paul King
  */
 class SqlCallTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlStatementTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlStatementTest.groovy
index 31e9df9..d1720dd 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlStatementTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlStatementTest.groovy
@@ -24,8 +24,6 @@ import static groovy.sql.SqlTestConstants.*
 
 /**
  * Unit test of Sql statement feature
- *
- * @author Paul King
  */
 class SqlStatementTest extends GroovyTestCase {
     Sql sql
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionConnectionTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionConnectionTest.groovy
index 9a0d2d4..191fe47 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionConnectionTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionConnectionTest.groovy
@@ -24,8 +24,6 @@ import static groovy.sql.SqlTestConstants.*
 
 /**
  * Test Sql transaction features using a Sql built from a connection
- *
- * @author Paul King
  */
 class SqlTransactionConnectionTest extends SqlTransactionTestCase {
 
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionDataSourceTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionDataSourceTest.groovy
index 8e74dd3..2daee04 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionDataSourceTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionDataSourceTest.groovy
@@ -24,8 +24,6 @@ import static groovy.sql.SqlTestConstants.*
 
 /**
  * Test Sql transaction features using a Sql built from a DataSource
- *
- * @author Paul King
  */
 class SqlTransactionDataSourceTest extends SqlTransactionTestCase {
     protected Sql setUpSql() {
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionTestCase.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionTestCase.groovy
index 5ae948c..64e5adc 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionTestCase.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlTransactionTestCase.groovy
@@ -23,8 +23,6 @@ import java.sql.SQLException
 
 /**
  * Test Sql transaction features using a Sql built from a connection
- *
- * @author Paul King
  */
 class SqlTransactionTestCase extends GroovyTestCase {
 
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithBuilderTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithBuilderTest.groovy
index 21a667c..cbf43ad 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithBuilderTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithBuilderTest.groovy
@@ -18,9 +18,6 @@
  */
 package groovy.sql
 
-/**
- * @author Brian McCallister
- */
 class SqlWithBuilderTest extends SqlHelperTestCase {
     void testSqlQuery() {
          def sql = createSql()
diff --git a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithTypedResultsTest.groovy b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithTypedResultsTest.groovy
index a9b9feb..e321e18 100644
--- a/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithTypedResultsTest.groovy
+++ b/subprojects/groovy-sql/src/test/groovy/groovy/sql/SqlWithTypedResultsTest.groovy
@@ -18,10 +18,6 @@
  */
 package groovy.sql
 
-/**
- * @author Thomas Heller
- * @author Paul King
- */
 class SqlWithTypedResultsTest extends SqlHelperTestCase {
 
     void testSqlQuery() {


[groovy] 02/28: GROOVY-8928: Bump jackson-dataformat-yaml and jackson-databind to 2.9.8

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 59c8f140b4b775caf226e8c52e61585467e616a5
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Dec 16 21:30:30 2018 +0800

    GROOVY-8928: Bump jackson-dataformat-yaml and jackson-databind to 2.9.8
---
 subprojects/groovy-yaml/build.gradle | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/subprojects/groovy-yaml/build.gradle b/subprojects/groovy-yaml/build.gradle
index e1db2b2..3d6e89c 100644
--- a/subprojects/groovy-yaml/build.gradle
+++ b/subprojects/groovy-yaml/build.gradle
@@ -18,8 +18,8 @@
  */
 
 ext {
-    jacksondataformatyamlVersion = '2.9.7'
-    jacksondatabindVersion = '2.9.7'
+    jacksondataformatyamlVersion = '2.9.8'
+    jacksondatabindVersion = '2.9.8'
 }
 
 dependencies {


[groovy] 01/28: Update git repository link in the README

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 728b978d6b9e2d67ca5d8403d50c06c4609c96c1
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sat Dec 15 19:42:34 2018 +0800

    Update git repository link in the README
---
 README.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.adoc b/README.adoc
index d90490c..67a2c5e 100644
--- a/README.adoc
+++ b/README.adoc
@@ -72,7 +72,7 @@ You don't need the source code to use Apache Groovy but if you wish to explore i
 
 Apache Groovy uses Git. The official Git repository is at:
 
-    https://git-wip-us.apache.org/repos/asf/groovy.git
+    https://gitbox.apache.org/repos/asf/groovy.git
 
 And a mirror is hosted on Github:
 


[groovy] 06/28: Trivial refactoring: remove unused imports

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 03a5c975af7dba9f205952967b9a0da6a88e94f6
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Dec 16 23:19:45 2018 +0800

    Trivial refactoring: remove unused imports
---
 .../java/org/codehaus/groovy/transform/SortableASTTransformation.java    | 1 -
 .../java/org/codehaus/groovy/transform/ToStringASTTransformation.java    | 1 -
 2 files changed, 2 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java
index fb80e33..4a1304a 100644
--- a/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/SortableASTTransformation.java
@@ -26,7 +26,6 @@ import org.codehaus.groovy.ast.ClassHelper;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
 import org.codehaus.groovy.ast.InnerClassNode;
-import org.codehaus.groovy.ast.MethodNode;
 import org.codehaus.groovy.ast.Parameter;
 import org.codehaus.groovy.ast.PropertyNode;
 import org.codehaus.groovy.ast.expr.BinaryExpression;
diff --git a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
index 0986d1d..b0a0570 100644
--- a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
@@ -25,7 +25,6 @@ import org.codehaus.groovy.ast.AnnotationNode;
 import org.codehaus.groovy.ast.ClassHelper;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
-import org.codehaus.groovy.ast.MethodNode;
 import org.codehaus.groovy.ast.Parameter;
 import org.codehaus.groovy.ast.PropertyNode;
 import org.codehaus.groovy.ast.expr.ConstantExpression;


[groovy] 03/28: GROOVY-8777/GROOVY-8776: @MapConstructor on inner class in conjunction with @CompileStatic

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 66aadb2624b34ed1b51b081c6adaab0f7706961a
Author: Paul King <pa...@asert.com.au>
AuthorDate: Sun Dec 16 21:49:20 2018 +1000

    GROOVY-8777/GROOVY-8776: @MapConstructor on inner class in conjunction with @CompileStatic
---
 .../transform/options/DefaultPropertyHandler.java  |  8 +++-
 .../transform/MapConstructorTransformTest.groovy   | 43 ++++++++++++++++++++++
 2 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/main/groovy/groovy/transform/options/DefaultPropertyHandler.java b/src/main/groovy/groovy/transform/options/DefaultPropertyHandler.java
index c38bc68..a0462b6 100644
--- a/src/main/groovy/groovy/transform/options/DefaultPropertyHandler.java
+++ b/src/main/groovy/groovy/transform/options/DefaultPropertyHandler.java
@@ -26,6 +26,7 @@ import org.codehaus.groovy.ast.PropertyNode;
 import org.codehaus.groovy.ast.expr.ArgumentListExpression;
 import org.codehaus.groovy.ast.expr.Expression;
 import org.codehaus.groovy.ast.expr.MapExpression;
+import org.codehaus.groovy.ast.expr.MethodCallExpression;
 import org.codehaus.groovy.ast.stmt.BlockStatement;
 import org.codehaus.groovy.ast.stmt.Statement;
 import org.codehaus.groovy.transform.AbstractASTTransformation;
@@ -94,8 +95,11 @@ public class DefaultPropertyHandler extends PropertyHandler {
 
     private static Statement assignFieldS(boolean useSetters, Parameter map, String name) {
         ArgumentListExpression nameArg = args(constX(name));
-        Expression var = callX(varX(map), "get", nameArg);
-        return ifS(callX(varX(map), "containsKey", nameArg), useSetters ?
+        MethodCallExpression var = callX(varX(map), "get", nameArg);
+        var.setImplicitThis(false);
+        MethodCallExpression containsKey = callX(varX(map), "containsKey", nameArg);
+        containsKey.setImplicitThis(false);
+        return ifS(containsKey, useSetters ?
                 setViaSetterS(name, var) :
                 assignToFieldS(name, var));
     }
diff --git a/src/test/org/codehaus/groovy/transform/MapConstructorTransformTest.groovy b/src/test/org/codehaus/groovy/transform/MapConstructorTransformTest.groovy
index a48d3ff..96d79dc 100644
--- a/src/test/org/codehaus/groovy/transform/MapConstructorTransformTest.groovy
+++ b/src/test/org/codehaus/groovy/transform/MapConstructorTransformTest.groovy
@@ -212,4 +212,47 @@ class MapConstructorTransformTest extends GroovyShellTestCase {
         '''
     }
 
+    // GROOVY-8776
+    void testNestedMapConstructorCS() {
+        assertScript '''
+            import groovy.transform.*
+            class GroovyMapConstructorCheck {
+                @CompileStatic
+                @MapConstructor
+                @ToString
+                static class Goo {
+                    int x0
+                }
+            }
+            assert new GroovyMapConstructorCheck.Goo(x0:123).toString() == 'GroovyMapConstructorCheck$Goo(123)'
+        '''
+    }
+
+    // GROOVY-8777
+    void testMapConstructorUsedInInnerCS() {
+        assertScript '''
+            import groovy.transform.*
+
+            @CompileStatic
+            class GroovyMapConstructorCheck {
+                @MapConstructor(noArg = true)
+                class Goo {
+                    final int x0
+
+                    @Override
+                    public String toString() {
+                        return "Goo(|$x0|)"
+                    }
+                }
+
+                def go() {
+                    new Goo(x0:123).toString().toUpperCase()
+                }
+            }
+
+            final check = new GroovyMapConstructorCheck()
+            assert check.go() == 'GOO(|123|)'
+        '''
+    }
+
 }


[groovy] 08/28: GROOVY-7233: Pre-factor some non-consequential changes

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 38e279553fb76db38c90a627a6698e3243c9403d
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue Dec 18 10:00:46 2018 +1000

    GROOVY-7233: Pre-factor some non-consequential changes
    
    whitespace, unneeded modifiers, cleanup @author tags, add @Override annotations
---
 gradle/pomconfigurer.gradle                        | 44 +++++++++---
 src/main/groovy/groovy/util/logging/Commons.java   |  4 +-
 src/main/groovy/groovy/util/logging/Log.java       |  8 +--
 src/main/groovy/groovy/util/logging/Log4j.java     |  4 +-
 src/main/groovy/groovy/util/logging/Log4j2.java    |  2 +
 src/main/groovy/groovy/util/logging/Slf4j.java     |  4 +-
 .../groovy/transform/LogASTTransformation.java     | 14 ++--
 src/test/groovy/util/logging/CommonsTest.groovy    | 78 ++++++++++++++++++++--
 src/test/groovy/util/logging/Log4jTest.groovy      | 26 +++-----
 src/test/groovy/util/logging/LogTest.groovy        | 34 ++++------
 src/test/groovy/util/logging/Slf4jTest.groovy      |  5 +-
 11 files changed, 148 insertions(+), 75 deletions(-)

diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index 4d854a9..b4d5d5c 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -33,7 +33,7 @@ project.ext.pomConfigureClosureWithoutTweaks = {
         inceptionYear '2003'
         organization {
             name 'Apache Software Foundation'
-            url 'http://groovy-lang.org'
+            url 'http://apache.org'
         }
         developers {
             developer {
@@ -41,7 +41,6 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Guillaume Laforge'
                 organization 'SpringSource'
                 roles {
-                    role 'Project Manager'
                     role 'Despot'
                     role 'Developer'
                 }
@@ -249,8 +248,9 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 id 'paulk'
                 name 'Paul King'
                 email 'paulk@asert.com.au'
-                organization 'ASERT, Australia'
+                organization 'OCI, Australia'
                 roles {
+                    role 'Project Manager'
                     role 'Developer'
                     role 'Despot'
                 }
@@ -365,6 +365,20 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                     role 'Despot'
                 }
             }
+            developer {
+                id 'rpopma'
+                name 'Remko Popma'
+                roles {
+                    role 'Developer'
+                }
+            }
+            developer {
+                id 'grocher'
+                name 'Graeme Rocher'
+                roles {
+                    role 'Developer'
+                }
+            }
         }
         contributors {
             contributor {
@@ -568,6 +582,9 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Nikolay Chugunov'
             }
             contributor {
+                name 'Francesco Durbin'
+            }
+            contributor {
                 name 'Paolo Di Tommaso'
             }
             contributor {
@@ -577,6 +594,9 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Matias Bjarland'
             }
             contributor {
+                name 'Tomasz Bujok'
+            }
+            contributor {
                 name 'Richard Hightower'
             }
             contributor {
@@ -610,13 +630,22 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Martin Kempf'
             }
             contributor {
-                name 'Stephane Landelle'
+                name 'Martin Ghados'
             }
             contributor {
-                name 'Vladimir Vivien'
+                name 'Alberto Mijares'
             }
             contributor {
-                name 'Graeme Rocher'
+                name 'Matthias Cullmann'
+            }
+            contributor {
+                name 'Tomek Bujok'
+            }
+            contributor {
+                name 'Stephane Landelle'
+            }
+            contributor {
+                name 'Vladimir Vivien'
             }
             contributor {
                 name 'Joe Wolf'
@@ -628,9 +657,6 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Tom Nichols'
             }
             contributor {
-                name 'Remko Popma'
-            }
-            contributor {
                 name 'mgroovy'
             }
             contributor {
diff --git a/src/main/groovy/groovy/util/logging/Commons.java b/src/main/groovy/groovy/util/logging/Commons.java
index c833c00..d4e5ad6 100644
--- a/src/main/groovy/groovy/util/logging/Commons.java
+++ b/src/main/groovy/groovy/util/logging/Commons.java
@@ -56,8 +56,6 @@ import java.util.Locale;
  * If the expression exp is a constant or only a variable access the method call will
  * not be transformed. But this will still cause a call on the injected logger.
  *
- * @author Hamlet D'Arcy
- * @author Matthias Cullmann
  * @since 1.8.0
  */
 @java.lang.annotation.Documented
@@ -88,10 +86,12 @@ public @interface Commons {
                             new ConstantExpression(getCategoryName(classNode, categoryName))));
         }
 
+        @Override
         public boolean isLoggingMethod(String methodName) {
             return methodName.matches("fatal|error|warn|info|debug|trace");
         }
 
+        @Override
         public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) {
             MethodCallExpression condition = new MethodCallExpression(
                     logVariable,
diff --git a/src/main/groovy/groovy/util/logging/Log.java b/src/main/groovy/groovy/util/logging/Log.java
index e52d39b..1a4e554 100644
--- a/src/main/groovy/groovy/util/logging/Log.java
+++ b/src/main/groovy/groovy/util/logging/Log.java
@@ -61,12 +61,6 @@ import java.util.Locale;
  * the method call will not be transformed. But this will still cause a call on the injected
  * logger.
  *
- * @author Guillaume Laforge
- * @author Jochen Theodorou
- * @author Dinko Srkoc
- * @author Hamlet D'Arcy
- * @author Raffaele Cigni
- * @author Alberto Vilches Raton
  * @since 1.8.0
  */
 @java.lang.annotation.Documented
@@ -100,10 +94,12 @@ public @interface Log {
                                 new ConstantExpression(getCategoryName(classNode, categoryName))));
         }
 
+        @Override
         public boolean isLoggingMethod(String methodName) {
             return methodName.matches("severe|warning|info|fine|finer|finest");
         }
 
+        @Override
         public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) {
             AttributeExpression logLevelExpression = new AttributeExpression(
                     new ClassExpression(LEVEL_CLASSNODE),
diff --git a/src/main/groovy/groovy/util/logging/Log4j.java b/src/main/groovy/groovy/util/logging/Log4j.java
index e976673..28633b5 100644
--- a/src/main/groovy/groovy/util/logging/Log4j.java
+++ b/src/main/groovy/groovy/util/logging/Log4j.java
@@ -57,8 +57,6 @@ import java.util.Locale;
  * If the expression exp is a constant or only a variable access the method call will
  * not be transformed. But this will still cause a call on the injected logger.
  *
- * @author Hamlet D'Arcy
- * @author Tomek Bujok
  * @since 1.8.0
  */
 @java.lang.annotation.Documented
@@ -88,10 +86,12 @@ public @interface Log4j {
                             new ConstantExpression(getCategoryName(classNode, categoryName))));
         }
 
+        @Override
         public boolean isLoggingMethod(String methodName) {
             return methodName.matches("fatal|error|warn|info|debug|trace");
         }
 
+        @Override
         public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) {
             final MethodCallExpression condition;
             if (!"trace".equals(methodName)) {
diff --git a/src/main/groovy/groovy/util/logging/Log4j2.java b/src/main/groovy/groovy/util/logging/Log4j2.java
index 7dd1d72..a53874c 100644
--- a/src/main/groovy/groovy/util/logging/Log4j2.java
+++ b/src/main/groovy/groovy/util/logging/Log4j2.java
@@ -85,10 +85,12 @@ public @interface Log4j2 {
                             new ConstantExpression(getCategoryName(classNode, categoryName))));
         }
 
+        @Override
         public boolean isLoggingMethod(String methodName) {
             return methodName.matches("fatal|error|warn|info|debug|trace");
         }
 
+        @Override
         public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) {
             MethodCallExpression condition = new MethodCallExpression(
                     logVariable,
diff --git a/src/main/groovy/groovy/util/logging/Slf4j.java b/src/main/groovy/groovy/util/logging/Slf4j.java
index c5fb392..7561cf7 100644
--- a/src/main/groovy/groovy/util/logging/Slf4j.java
+++ b/src/main/groovy/groovy/util/logging/Slf4j.java
@@ -56,8 +56,6 @@ import java.util.Locale;
  * If the expression exp is a constant or only a variable access the method call will
  * not be transformed. But this will still cause a call on the injected logger.
  *
- * @author Hamlet D'Arcy
- * @author Alberto Mijares
  * @since 1.8.0
  */
 @java.lang.annotation.Documented
@@ -87,10 +85,12 @@ public @interface Slf4j {
                             new ConstantExpression(getCategoryName(classNode, categoryName))));
         }
 
+        @Override
         public boolean isLoggingMethod(String methodName) {
             return methodName.matches("error|warn|info|debug|trace");
         }
 
+        @Override
         public Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression) {
             MethodCallExpression condition = new MethodCallExpression(
                     logVariable,
diff --git a/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java
index ecf92bc..1895062 100644
--- a/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java
@@ -48,16 +48,6 @@ import java.lang.reflect.Modifier;
 
 /**
  * This class provides an AST Transformation to add a log field to a class.
- *
- * @author Guillaume Laforge
- * @author Jochen Theodorou
- * @author Dinko Srkoc
- * @author Hamlet D'Arcy
- * @author Raffaele Cigni
- * @author Alberto Vilches Raton
- * @author Tomasz Bujok
- * @author Martin Ghados
- * @author Matthias Cullmann
  */
 @GroovyASTTransformation(phase = CompilePhase.SEMANTIC_ANALYSIS)
 public class LogASTTransformation extends AbstractASTTransformation implements CompilationUnitAware {
@@ -70,6 +60,7 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
 
     private CompilationUnit compilationUnit;
 
+    @Override
     public void visit(ASTNode[] nodes, final SourceUnit source) {
         init(nodes, source);
         AnnotatedNode targetClass = (AnnotatedNode) nodes[1];
@@ -96,6 +87,7 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
                 return source;
             }
 
+            @Override
             public Expression transform(Expression exp) {
                 if (exp == null) return null;
                 if (exp instanceof MethodCallExpression) {
@@ -274,6 +266,7 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
             this(null);
         }
 
+        @Override
         public String getCategoryName(ClassNode classNode, String categoryName) {
             if (categoryName.equals(DEFAULT_CATEGORY_NAME)) {
                 return classNode.getName();
@@ -291,6 +284,7 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
         }
     }
 
+    @Override
     public void setCompilationUnit(final CompilationUnit unit) {
         this.compilationUnit = unit;
     }
diff --git a/src/test/groovy/util/logging/CommonsTest.groovy b/src/test/groovy/util/logging/CommonsTest.groovy
index 48f928e..9e2a460 100644
--- a/src/test/groovy/util/logging/CommonsTest.groovy
+++ b/src/test/groovy/util/logging/CommonsTest.groovy
@@ -23,10 +23,6 @@ import java.lang.reflect.Modifier
 
 /**
  * Unit test for the commons logging @Log based annotation.
- *
- * @author Hamlet D'Arcy
- * @author Matthias Cullmann
- * 
  */
 class CommonsTest extends GroovyTestCase {
 
@@ -60,6 +56,80 @@ class CommonsTest extends GroovyTestCase {
         }
     }
 
+    void testExplicitPrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PRIVATE)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPrivate(field.getModifiers()) && 
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPackagePrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PACKAGE_PRIVATE)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    !Modifier.isPrivate(field.getModifiers()) && 
+                    !Modifier.isProtected(field.getModifiers()) && 
+                    !Modifier.isPublic(field.getModifiers()) && 
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testProtectedFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PROTECTED)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isProtected(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPublicFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PUBLIC)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
     void testPrivateFinalStaticNamedLogFieldAppears() {
         Class clazz = new GroovyClassLoader().parseClass('''
               @groovy.util.logging.Commons('logger')
diff --git a/src/test/groovy/util/logging/Log4jTest.groovy b/src/test/groovy/util/logging/Log4jTest.groovy
index 5472a67..febc05f 100644
--- a/src/test/groovy/util/logging/Log4jTest.groovy
+++ b/src/test/groovy/util/logging/Log4jTest.groovy
@@ -19,17 +19,13 @@
 package groovy.util.logging
 
 import java.lang.reflect.*
-import org.codehaus.groovy.ast.*
-import org.codehaus.groovy.control.*
-import org.codehaus.groovy.tools.ast.*
-import org.codehaus.groovy.transform.*
 import org.apache.log4j.AppenderSkeleton
 import org.apache.log4j.spi.LoggingEvent
 import org.apache.log4j.Level
 import org.apache.log4j.Logger
 
 /**
- * @author Tomasz Bujok
+ * Tests for Log4j AST transformation
  */
 class Log4jTest extends GroovyTestCase {
 
@@ -50,7 +46,7 @@ class Log4jTest extends GroovyTestCase {
         logger.removeAllAppenders()
     }
 
-    public void testPrivateFinalStaticLogFieldAppears() {
+    void testPrivateFinalStaticLogFieldAppears() {
 
         Class clazz = new GroovyClassLoader().parseClass('''
               @groovy.util.logging.Log4j
@@ -66,7 +62,7 @@ class Log4jTest extends GroovyTestCase {
         }
     }
 
-    public void testClassAlreadyHasLogField() {
+    void testClassAlreadyHasLogField() {
 
         shouldFail {
 
@@ -80,7 +76,7 @@ class Log4jTest extends GroovyTestCase {
         }
     }
 
-    public void testClassAlreadyHasNamedLogField() {
+    void testClassAlreadyHasNamedLogField() {
 
         shouldFail {
 
@@ -94,7 +90,7 @@ class Log4jTest extends GroovyTestCase {
         }
     }
 
-    public void testLogInfo() {
+    void testLogInfo() {
 
         Class clazz = new GroovyClassLoader().parseClass('''
             @groovy.util.logging.Log4j
@@ -150,7 +146,7 @@ class Log4jTest extends GroovyTestCase {
         assert events[0].message == "(static) info called"
     }
 
-    public void testLogInfoForNamedLogger() {
+    void testLogInfoForNamedLogger() {
 
         Class clazz = new GroovyClassLoader().parseClass('''
             @groovy.util.logging.Log4j('logger')
@@ -187,7 +183,7 @@ class Log4jTest extends GroovyTestCase {
         assert events[ind].message == "trace called"
     }
 
-    public void testLogGuard() {
+    void testLogGuard() {
         Class clazz = new GroovyClassLoader().parseClass('''
             @groovy.util.logging.Log4j
             class MyClass {
@@ -229,7 +225,7 @@ class Log4jTest extends GroovyTestCase {
         assert appender.getEvents().size() == 1
     }
 
-    public void testCustomCategory() {
+    void testCustomCategory() {
         Log4jInterceptingAppender appenderForCustomCategory = new Log4jInterceptingAppender()
 
         Logger loggerForCustomCategory = Logger.getLogger('customCategory')
@@ -251,15 +247,15 @@ class Log4jTest extends GroovyTestCase {
     }
 }
 
-public class Log4jInterceptingAppender extends AppenderSkeleton {
+class Log4jInterceptingAppender extends AppenderSkeleton {
     List<LoggingEvent> events
     boolean isLogGuarded = true
 
-    public Log4jInterceptingAppender() {
+    Log4jInterceptingAppender() {
         this.events = new ArrayList<LoggingEvent>()
     }
 
-    public List<LoggingEvent> getEvents() {
+    List<LoggingEvent> getEvents() {
         return events
     }
 
diff --git a/src/test/groovy/util/logging/LogTest.groovy b/src/test/groovy/util/logging/LogTest.groovy
index 4db46bd..a52788a 100644
--- a/src/test/groovy/util/logging/LogTest.groovy
+++ b/src/test/groovy/util/logging/LogTest.groovy
@@ -26,18 +26,10 @@ import org.codehaus.groovy.control.MultipleCompilationErrorsException
 
 /**
  * Test to make sure the @Log annotation is working correctly. 
- *
- * @author Guillaume Laforge
- * @author Jochen Theodorou
- * @author Dinko Srkoc
- * @author Hamlet D'Arcy
- * @author Raffaele Cigni
- * @author Alberto Vilches Raton
- * @author Tomasz Bujok
  */
 class LogTest extends GroovyTestCase {
 
-    public void testPrivateFinalStaticLogFieldAppears() {
+    void testPrivateFinalStaticLogFieldAppears() {
 
         Class clazz = new GroovyClassLoader().parseClass("""
           @groovy.util.logging.Log
@@ -53,7 +45,7 @@ class LogTest extends GroovyTestCase {
         }
     }
 
-    public void testPrivateFinalStaticNamedLogFieldAppears() {
+    void testPrivateFinalStaticNamedLogFieldAppears() {
 
         Class clazz = new GroovyClassLoader().parseClass("""
           @groovy.util.logging.Log('logger')
@@ -69,7 +61,7 @@ class LogTest extends GroovyTestCase {
         }
     }
 
-    public void testClassAlreadyHasLogField() {
+    void testClassAlreadyHasLogField() {
 
         shouldFail {
 
@@ -83,7 +75,7 @@ class LogTest extends GroovyTestCase {
         }
     }
 
-    public void testClassAlreadyHasNamedLogField() {
+    void testClassAlreadyHasNamedLogField() {
 
         shouldFail {
 
@@ -116,7 +108,7 @@ class LogTest extends GroovyTestCase {
         assert logSpy.infoParameter == 'info    called'
     }
 
-    public void testLogInfo() {
+    void testLogInfo() {
 
         Class clazz = new GroovyClassLoader().parseClass("""
           @groovy.util.logging.Log
@@ -148,7 +140,7 @@ class LogTest extends GroovyTestCase {
         assert logSpy.finestParameter == 'finest  called'
     }
 
-    public void testLogInfoWithName() {
+    void testLogInfoWithName() {
 
         Class clazz = new GroovyClassLoader().parseClass("""
           @groovy.util.logging.Log('logger')
@@ -180,7 +172,7 @@ class LogTest extends GroovyTestCase {
         assert logSpy.finestParameter == 'finest  called'
     }
 
-    public void testLogGuard() {
+    void testLogGuard() {
         Class clazz = new GroovyClassLoader().parseClass("""
                @groovy.util.logging.Log
                class MyClass {
@@ -216,7 +208,7 @@ class LogTest extends GroovyTestCase {
         assert !logSpy.finestParameter
     }
 
-    public void testInheritance() {
+    void testInheritance() {
 
         def clazz = new GroovyShell().evaluate("""
             class MyParent {
@@ -251,7 +243,7 @@ class LogTest extends GroovyTestCase {
         }
     }
 
-    public void testInheritance_ProtectedShadowing() {
+    void testInheritance_ProtectedShadowing() {
 
         shouldFail(MultipleCompilationErrorsException) {
             new GroovyClassLoader().parseClass("""
@@ -265,7 +257,7 @@ class LogTest extends GroovyTestCase {
         }
     }
 
-    public void testInheritance_PublicShadowing() {
+    void testInheritance_PublicShadowing() {
 
         shouldFail(MultipleCompilationErrorsException) {
             new GroovyClassLoader().parseClass("""
@@ -279,7 +271,7 @@ class LogTest extends GroovyTestCase {
         }
     }
 
-    public void testDefaultCategory() {
+    void testDefaultCategory() {
         Class clazz = new GroovyClassLoader().parseClass("""
             @groovy.util.logging.Log
             class MyClass {
@@ -294,7 +286,7 @@ class LogTest extends GroovyTestCase {
         assert logFormatterSpy.messageReceived
     }
 
-    public void testCustomCategory() {
+    void testCustomCategory() {
         String categoryName = 'customCategory'
         Class clazz = new GroovyClassLoader().parseClass("""
             @groovy.util.logging.Log(category='$categoryName')
@@ -375,7 +367,7 @@ class LogFormatterSpy extends Formatter {
     boolean messageReceived = false
 
     @Override
-    public String format(LogRecord record) {
+    String format(LogRecord record) {
         messageReceived = true
         return record.message
     }
diff --git a/src/test/groovy/util/logging/Slf4jTest.groovy b/src/test/groovy/util/logging/Slf4jTest.groovy
index c63e04d..6a6324b 100644
--- a/src/test/groovy/util/logging/Slf4jTest.groovy
+++ b/src/test/groovy/util/logging/Slf4jTest.groovy
@@ -30,10 +30,7 @@ import java.lang.reflect.Field
 import java.lang.reflect.Modifier
 
 /**
- * @author Hamlet D'Arcy
- * @author Francesco Durbin
- * @author Tomasz Bujok
- * @author Paul King
+ * Tests for Slf4j AST transformation
  */
 
 class Slf4jTest extends GroovyTestCase {


[groovy] 21/28: cleanup/remove @author tags as per Apache recommended practices for groovy-groovysh, groovy-macro

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 25a836547037274eb81dde9a9dae765a6b3ac755
Author: Paul King <pa...@asert.com.au>
AuthorDate: Thu Dec 27 20:46:29 2018 +1000

    cleanup/remove @author tags as per Apache recommended practices for groovy-groovysh, groovy-macro
---
 gradle/pomconfigurer.gradle                               | 15 +++++++++++++++
 .../org/codehaus/groovy/tools/shell/BufferManager.groovy  |  2 --
 .../groovy/org/codehaus/groovy/tools/shell/Command.groovy |  2 --
 .../org/codehaus/groovy/tools/shell/CommandAlias.groovy   |  2 --
 .../codehaus/groovy/tools/shell/CommandException.groovy   |  2 --
 .../codehaus/groovy/tools/shell/CommandRegistry.groovy    |  2 --
 .../org/codehaus/groovy/tools/shell/CommandSupport.groovy |  2 --
 .../groovy/tools/shell/ComplexCommandSupport.groovy       |  2 --
 .../codehaus/groovy/tools/shell/ExitNotification.groovy   |  2 --
 .../org/codehaus/groovy/tools/shell/Groovysh.groovy       |  2 --
 .../groovy/tools/shell/InteractiveShellRunner.groovy      |  4 ----
 .../org/codehaus/groovy/tools/shell/Interpreter.groovy    |  2 --
 .../groovy/org/codehaus/groovy/tools/shell/Parser.groovy  |  2 --
 .../groovy/org/codehaus/groovy/tools/shell/Shell.groovy   |  2 --
 .../org/codehaus/groovy/tools/shell/ShellRunner.groovy    |  2 --
 .../groovy/tools/shell/commands/AliasCommand.groovy       |  2 --
 .../groovy/tools/shell/commands/ClearCommand.groovy       |  2 --
 .../groovy/tools/shell/commands/DisplayCommand.groovy     |  2 --
 .../groovy/tools/shell/commands/DocCommand.groovy         |  3 ---
 .../groovy/tools/shell/commands/EditCommand.groovy        |  2 --
 .../groovy/tools/shell/commands/ExitCommand.groovy        |  2 --
 .../groovy/tools/shell/commands/GrabCommand.groovy        |  2 --
 .../groovy/tools/shell/commands/HelpCommand.groovy        |  2 --
 .../groovy/tools/shell/commands/HistoryCommand.groovy     |  2 --
 .../groovy/tools/shell/commands/ImportCommand.groovy      |  2 --
 .../groovy/tools/shell/commands/InspectCommand.groovy     |  4 ----
 .../groovy/tools/shell/commands/LoadCommand.groovy        |  2 --
 .../groovy/tools/shell/commands/PurgeCommand.groovy       |  2 --
 .../groovy/tools/shell/commands/RecordCommand.groovy      |  2 --
 .../groovy/tools/shell/commands/RegisterCommand.groovy    |  2 --
 .../groovy/tools/shell/commands/SaveCommand.groovy        |  2 --
 .../groovy/tools/shell/commands/SetCommand.groovy         |  2 --
 .../groovy/tools/shell/commands/ShadowCommand.groovy      |  2 --
 .../groovy/tools/shell/commands/ShowCommand.groovy        |  2 --
 .../tools/shell/completion/CommandNameCompleter.groovy    |  2 --
 .../tools/shell/completion/GroovySyntaxCompletor.groovy   |  2 --
 .../tools/shell/util/DefaultCommandsRegistrar.groovy      |  2 --
 .../groovy/tools/shell/util/SimpleCompletor.groovy        |  2 --
 .../groovy/tools/shell/util/XmlCommandRegistrar.groovy    |  5 +----
 .../groovy/tools/shell/ShellRunnerTestSupport.groovy      |  3 ---
 .../groovy/tools/shell/commands/AliasCommandTest.groovy   |  2 --
 .../groovy/tools/shell/commands/ClearCommandTest.groovy   |  2 --
 .../groovy/tools/shell/commands/CommandTestSupport.groovy |  2 --
 .../tools/shell/commands/ComplexCommandSupportTest.groovy |  2 --
 .../groovy/tools/shell/commands/DisplayCommandTest.groovy |  2 --
 .../groovy/tools/shell/commands/DocCommandTest.groovy     |  3 ---
 .../groovy/tools/shell/commands/EditCommandTest.groovy    |  2 --
 .../groovy/tools/shell/commands/ExitCommandTest.groovy    |  2 --
 .../groovy/tools/shell/commands/GrabCommandTest.groovy    |  2 --
 .../groovy/tools/shell/commands/HelpCommandTest.groovy    |  2 --
 .../groovy/tools/shell/commands/HistoryCommandTest.groovy |  2 --
 .../groovy/tools/shell/commands/ImportCommandTest.groovy  |  2 --
 .../groovy/tools/shell/commands/InspectCommandTest.groovy |  2 --
 .../groovy/tools/shell/commands/LoadCommandTest.groovy    |  2 --
 .../groovy/tools/shell/commands/PurgeCommandTest.groovy   |  2 --
 .../groovy/tools/shell/commands/RecordCommandTest.groovy  |  2 --
 .../tools/shell/commands/RegisterCommandTest.groovy       |  2 --
 .../groovy/tools/shell/commands/SaveCommandTest.groovy    |  2 --
 .../groovy/tools/shell/commands/SetCommandTest.groovy     |  2 --
 .../groovy/tools/shell/commands/ShowCommandTest.groovy    |  2 --
 .../tools/shell/expr/ClassWithPrivateConstructor.groovy   |  2 --
 .../groovy/tools/shell/expr/ExprTestSupport.groovy        |  2 --
 .../codehaus/groovy/tools/shell/expr/TimeItTest.groovy    |  2 --
 .../groovy/tools/shell/util/MessageSourceTest.groovy      |  6 +-----
 .../groovy/macro/matcher/ContextualClassCodeVisitor.java  |  1 -
 .../groovy/org/codehaus/groovy/macro/runtime/Macro.java   |  2 --
 .../org/codehaus/groovy/macro/runtime/MacroBuilder.java   |  1 -
 .../org/codehaus/groovy/macro/runtime/MacroContext.java   |  1 -
 .../org/codehaus/groovy/macro/runtime/MacroStub.java      |  1 -
 .../macro/transform/MacroCallTransformingVisitor.java     |  1 -
 .../groovy/macro/transform/MacroMethodsCache.java         |  2 +-
 .../groovy/macro/transform/MacroTransformation.java       |  2 --
 .../groovy/org/codehaus/groovy/macro/MacroTest.groovy     |  4 ----
 73 files changed, 18 insertions(+), 152 deletions(-)

diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index e000950..ee72aa5 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -425,9 +425,18 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Ivan Z. Ganza'
             }
             contributor {
+                name 'Larry Jacobson'
+            }
+            contributor {
+                name 'Jake Gage'
+            }
+            contributor {
                 name 'Arjun Nayyar'
             }
             contributor {
+                name 'Masato Nagai'
+            }
+            contributor {
                 name 'Mark Chu-Carroll'
             }
             contributor {
@@ -540,6 +549,9 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Jan Weitz'
             }
             contributor {
+                name 'Chris K Wensel'
+            }
+            contributor {
                 name 'Joachim Baumann'
             }
             contributor {
@@ -624,6 +636,9 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Alan Green'
             }
             contributor {
+                name 'Marty Saxton'
+            }
+            contributor {
                 name 'Alex Popescu'
             }
             contributor {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/BufferManager.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/BufferManager.groovy
index 097376c..79a0289 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/BufferManager.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/BufferManager.groovy
@@ -22,8 +22,6 @@ import org.codehaus.groovy.tools.shell.util.Logger
 
 /**
  * Manages the shells buffers.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class BufferManager
 {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Command.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Command.groovy
index 0d3c4be..455351e 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Command.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Command.groovy
@@ -23,8 +23,6 @@ import jline.console.completer.Completer
 
 /**
  * Provides the interface required for command extensions.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 @CompileStatic
 interface Command
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandAlias.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandAlias.groovy
index f65d538..8c7fdc3 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandAlias.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandAlias.groovy
@@ -23,8 +23,6 @@ import jline.console.completer.Completer
 
 /**
  * Provides simple command aliasing.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class CommandAlias
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandException.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandException.groovy
index cc8a317..f807677 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandException.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandException.groovy
@@ -22,8 +22,6 @@ import groovy.transform.CompileStatic
 
 /**
  * Thrown to indicate a problem with command execution.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 @CompileStatic
 class CommandException
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandRegistry.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandRegistry.groovy
index 9cb08b3..c4af3a8 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandRegistry.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandRegistry.groovy
@@ -22,8 +22,6 @@ import org.codehaus.groovy.tools.shell.util.Logger
 
 /**
  * A registry of shell {@link Command} instances which may be executed.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class CommandRegistry
 {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandSupport.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandSupport.groovy
index 71c2494..acd2d3c 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandSupport.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/CommandSupport.groovy
@@ -28,8 +28,6 @@ import org.codehaus.groovy.tools.shell.util.MessageSource
 
 /**
  * Support for {@link Command} instances.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 abstract class CommandSupport
     implements Command
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ComplexCommandSupport.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ComplexCommandSupport.groovy
index 155fcad..98ddfb7 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ComplexCommandSupport.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ComplexCommandSupport.groovy
@@ -23,8 +23,6 @@ import org.codehaus.groovy.tools.shell.util.SimpleCompletor
 
 /**
  * Support for more complex commands.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 abstract class ComplexCommandSupport
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ExitNotification.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ExitNotification.groovy
index 6b1ed7f..682ff02 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ExitNotification.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ExitNotification.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell
 
 /**
  * Notification to signal the shell to exit.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ExitNotification
     extends Error
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Groovysh.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Groovysh.groovy
index de28339..3186d45 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Groovysh.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Groovysh.groovy
@@ -51,8 +51,6 @@ import java.util.regex.Pattern
  * <code>org/codehaus/groovy/tools/shell/commands.xml</code>
  *
  * See {@link XmlCommandRegistrar}
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class Groovysh extends Shell {
 
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/InteractiveShellRunner.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/InteractiveShellRunner.groovy
index 599c63f..0733ec9 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/InteractiveShellRunner.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/InteractiveShellRunner.groovy
@@ -36,8 +36,6 @@ import org.codehaus.groovy.tools.shell.util.WrappedInputStream
 
 /**
  * Support for running a {@link Shell} interactively using the JLine library.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class InteractiveShellRunner
     extends ShellRunner
@@ -161,8 +159,6 @@ class InteractiveShellRunner
 
 /**
  * Completer for interactive shells.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class CommandsMultiCompleter
     extends AggregateCompleter
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Interpreter.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Interpreter.groovy
index 316dab3..91e4c0e 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Interpreter.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Interpreter.groovy
@@ -27,8 +27,6 @@ import java.lang.reflect.Method
 
 /**
  * Helper to interpret a source buffer.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class Interpreter implements Evaluator
 {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Parser.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Parser.groovy
index c5e089d..d9f6b4e 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Parser.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Parser.groovy
@@ -39,8 +39,6 @@ interface Parsing {
 
 /**
  * Provides a facade over the parser to recognize valid Groovy syntax.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class Parser
 {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Shell.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Shell.groovy
index d84fb98..ac06f8f 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Shell.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Shell.groovy
@@ -27,8 +27,6 @@ import static org.fusesource.jansi.Ansi.ansi
 
 /**
  * A simple shell for invoking commands from a command-line.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class Shell
 {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ShellRunner.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ShellRunner.groovy
index 7147149..16f5165 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ShellRunner.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/ShellRunner.groovy
@@ -22,8 +22,6 @@ import org.codehaus.groovy.tools.shell.util.Logger
 
 /**
  * Support for running a {@link Shell}.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 abstract class ShellRunner
     implements Runnable
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommand.groovy
index 0c5bf54..ffb32ae 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommand.groovy
@@ -26,8 +26,6 @@ import org.codehaus.groovy.tools.shell.completion.CommandNameCompleter
 
 /**
  * The 'alias' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class AliasCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommand.groovy
index 9721407..5a1ba91 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommand.groovy
@@ -23,8 +23,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * The 'clear' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ClearCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommand.groovy
index b0e228d..e4a828e 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommand.groovy
@@ -23,8 +23,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * The 'display' command. Displays the current buffer (e.g. while method declaration was not finished).
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class DisplayCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DocCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DocCommand.groovy
index 9a8a48f..75a939a 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DocCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/DocCommand.groovy
@@ -25,9 +25,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 /**
  * The 'doc' command.
  *
- * @author <a href="mailto:me@masatonagai.com">Masato Nagai</a>
- * @author Andre Steingress
- *
  * @since 2.2.0
  */
 class DocCommand extends CommandSupport {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/EditCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/EditCommand.groovy
index 6b37a12..8962009 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/EditCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/EditCommand.groovy
@@ -24,8 +24,6 @@ import org.codehaus.groovy.tools.shell.util.Preferences
 
 /**
  * The 'edit' command. Opens Editor to write into the current Buffer.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class EditCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommand.groovy
index 194284e..aa9f815 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommand.groovy
@@ -24,8 +24,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * The 'exit' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ExitCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommand.groovy
index 53cc20c..442a60f 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommand.groovy
@@ -26,8 +26,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * The 'grab' command.
- *
- * @author <a href="mailto:jake.gage@gmail.com">Jake Gage</a>
  */
 class GrabCommand extends CommandSupport {
 
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommand.groovy
index 4e13adc..1a27701 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommand.groovy
@@ -26,8 +26,6 @@ import org.codehaus.groovy.tools.shell.completion.CommandNameCompleter
 
 /**
  * The 'help' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class HelpCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommand.groovy
index 1f56c78..306c28e 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommand.groovy
@@ -25,8 +25,6 @@ import org.codehaus.groovy.tools.shell.util.SimpleCompletor
 
 /**
  * The 'history' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class HistoryCommand
     extends ComplexCommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommand.groovy
index 6789e17..894d076 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommand.groovy
@@ -39,8 +39,6 @@ import java.util.regex.Pattern
 
 /**
  * The 'import' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ImportCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommand.groovy
index 6c917dd..7c56def 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommand.groovy
@@ -30,8 +30,6 @@ import java.util.List
 
 /**
  * The 'inspect' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class InspectCommand
     extends CommandSupport
@@ -106,8 +104,6 @@ class InspectCommand
 
 /**
  * Completor for the 'inspect' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class InspectCommandCompletor
     extends SimpleCompletor
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommand.groovy
index f01485a..f8fe884 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommand.groovy
@@ -26,8 +26,6 @@ import org.codehaus.groovy.tools.shell.completion.FileNameCompleter
 
 /**
  * The 'load' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class LoadCommand extends CommandSupport {
     public static final String COMMAND_NAME = ':load'
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommand.groovy
index ab61069..bbec262 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommand.groovy
@@ -24,8 +24,6 @@ import org.codehaus.groovy.tools.shell.util.Preferences
 
 /**
  * The 'purge' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class PurgeCommand
     extends ComplexCommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommand.groovy
index dd79022..d7e0711 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommand.groovy
@@ -24,8 +24,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * The 'record' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class RecordCommand
     extends ComplexCommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommand.groovy
index 9aa25be..57055d9 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommand.groovy
@@ -26,8 +26,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
  * The 'register' command.
  * Registers a class as a new groovysh command.
  * Requires the command to have matching constructors (shell) or (shell, name, alias).
- *
- * @author <a href="mailto:chris@wensel.net">Chris K Wensel</a>
  */
 class RegisterCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommand.groovy
index f9fe271..3577bfc 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommand.groovy
@@ -25,8 +25,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * The 'save' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class SaveCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SetCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SetCommand.groovy
index d21e894..4c6ba52 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SetCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/SetCommand.groovy
@@ -27,8 +27,6 @@ import org.codehaus.groovy.tools.shell.util.SimpleCompletor
 
 /**
  * The 'set' command, used to set preferences.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class SetCommand
     extends CommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShadowCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShadowCommand.groovy
index 4244551..936864c 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShadowCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShadowCommand.groovy
@@ -25,8 +25,6 @@ import org.codehaus.groovy.tools.shell.util.Preferences
 
 /**
  * The 'shadow' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ShadowCommand
     extends ComplexCommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommand.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommand.groovy
index e526fef..a824919 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommand.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommand.groovy
@@ -26,8 +26,6 @@ import org.codehaus.groovy.tools.shell.util.Preferences
 
 /**
  * The 'show' command.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ShowCommand
     extends ComplexCommandSupport
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/CommandNameCompleter.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/CommandNameCompleter.groovy
index 9058261..e13657f 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/CommandNameCompleter.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/CommandNameCompleter.groovy
@@ -24,8 +24,6 @@ import org.codehaus.groovy.tools.shell.util.SimpleCompletor
 
 /**
  * Completor for the command.names
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class CommandNameCompleter extends SimpleCompletor {
     private final CommandRegistry registry
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/GroovySyntaxCompletor.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/GroovySyntaxCompletor.groovy
index 3afe91a..f31ff8a4 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/GroovySyntaxCompletor.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/completion/GroovySyntaxCompletor.groovy
@@ -62,8 +62,6 @@ import static org.codehaus.groovy.antlr.parser.GroovyTokenTypes.SPREAD_DOT
 /**
  * Implements the Completor interface to provide competions for
  * GroovyShell by tokenizing the buffer and invoking other classes depending on the tokens found.
- *
- * @author <a href="mailto:probabilitytrees@gmail.com">Marty Saxton</a>
  */
 class GroovySyntaxCompletor implements Completer {
 
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/DefaultCommandsRegistrar.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/DefaultCommandsRegistrar.groovy
index 771dded..af5b662 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/DefaultCommandsRegistrar.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/DefaultCommandsRegistrar.groovy
@@ -45,8 +45,6 @@ import org.codehaus.groovy.tools.shell.commands.ShowCommand
  *  <command>org.codehaus.groovy.tools.shell.commands.HelpCommand</command>
  * ...
  * </commands>
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class DefaultCommandsRegistrar
 {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/SimpleCompletor.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/SimpleCompletor.groovy
index ab84f5f..10f1a7b 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/SimpleCompletor.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/SimpleCompletor.groovy
@@ -23,8 +23,6 @@ import org.codehaus.groovy.runtime.InvokerHelper
 
 /**
  * Support for simple completors.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class SimpleCompletor implements Completer {
 
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/XmlCommandRegistrar.groovy b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/XmlCommandRegistrar.groovy
index 0c1f9e2..6083204 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/XmlCommandRegistrar.groovy
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/util/XmlCommandRegistrar.groovy
@@ -50,11 +50,8 @@ import org.codehaus.groovy.tools.shell.Shell
  </commands>
  * }
  * <pre>
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
-class XmlCommandRegistrar
-{
+class XmlCommandRegistrar {
     private final Logger log = Logger.create(this.class)
 
     private final Shell shell
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/ShellRunnerTestSupport.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/ShellRunnerTestSupport.groovy
index a83b70d..d86550f 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/ShellRunnerTestSupport.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/ShellRunnerTestSupport.groovy
@@ -24,9 +24,6 @@ import jline.console.ConsoleReader
 
 /**
  * Support for testing {@link Command} instances.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
- * @author tkruse
  */
 abstract class ShellRunnerTestSupport extends GroovyTestCase {
 
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommandTest.groovy
index dd1def1..64dc802 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/AliasCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link AliasCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class AliasCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommandTest.groovy
index f1d4ec8..7d6f95d 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ClearCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link ClearCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ClearCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/CommandTestSupport.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/CommandTestSupport.groovy
index 60e67d4..f907a81 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/CommandTestSupport.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/CommandTestSupport.groovy
@@ -22,8 +22,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * Support for testing {@link Command} instances.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 abstract class CommandTestSupport
     extends GroovyTestCase
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ComplexCommandSupportTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ComplexCommandSupportTest.groovy
index de33a3e..6598918 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ComplexCommandSupportTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ComplexCommandSupportTest.groovy
@@ -24,8 +24,6 @@ import org.codehaus.groovy.tools.shell.ComplexCommandSupport
 
 /**
  * Tests for the {@link ComplexCommandSupport} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ComplexCommandSupportTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommandTest.groovy
index e7d0160..a72916a 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DisplayCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link DisplayCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class DisplayCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DocCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DocCommandTest.groovy
index 8cbc08e..c207c40 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DocCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/DocCommandTest.groovy
@@ -22,9 +22,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * Tests for the {@link DocCommand} class.
- *
- * @author <a href="mailto:me@masatonagai.com">Masato Nagai</a>
- * @author Andre Steingress
  */
 class DocCommandTest extends CommandTestSupport
 {
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/EditCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/EditCommandTest.groovy
index 210332c..acf9de1 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/EditCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/EditCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link EditCommand} class.
- *
- * @author <a href="mailto:4larryj@gmail.com">Larry Jacobson</a>
  */
 class EditCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommandTest.groovy
index 8422a1e..9880400 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ExitCommandTest.groovy
@@ -22,8 +22,6 @@ import org.codehaus.groovy.tools.shell.ExitNotification
 
 /**
  * Tests for the {@link ExitCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ExitCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommandTest.groovy
index 19dc6a2..52ec1a9 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/GrabCommandTest.groovy
@@ -25,8 +25,6 @@ import org.codehaus.groovy.tools.shell.util.PackageHelperImpl
 
 /**
  * Tests for the {@link GrabCommand} class.
- *
- * @author <a href="mailto:jake.gage@gmail.com">Jake Gage</a>
  */
 class GrabCommandTest extends CommandTestSupport {
 
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommandTest.groovy
index a9f19bc..cc2bc89 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HelpCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link HelpCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class HelpCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommandTest.groovy
index 0ea71b3..5551345 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/HistoryCommandTest.groovy
@@ -24,8 +24,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * Tests for the {@link HistoryCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class HistoryCommandTest extends CommandTestSupport
 {
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommandTest.groovy
index 98f2a7b..b8f051b 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ImportCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link ImportCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ImportCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommandTest.groovy
index 8673400..589d192 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/InspectCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link InspectCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class InspectCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommandTest.groovy
index 72de085..16a771e 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/LoadCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link LoadCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class LoadCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommandTest.groovy
index 3f32b92..b11de3f 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/PurgeCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link PurgeCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class PurgeCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommandTest.groovy
index 5350261..9faf5c2 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RecordCommandTest.groovy
@@ -22,8 +22,6 @@ import org.codehaus.groovy.tools.shell.CommandException
 
 /**
  * Tests for the {@link RecordCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class RecordCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommandTest.groovy
index b28d059..3c05b3d 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/RegisterCommandTest.groovy
@@ -23,8 +23,6 @@ import org.codehaus.groovy.tools.shell.Shell
 
 /**
  * Tests for the {@link RegisterCommand} class.
- *
- * @author <a href="mailto:chris@wensel.net">Chris K Wensel</a>
  */
 class RegisterCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommandTest.groovy
index b903768..6dff1f1 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SaveCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link SaveCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class SaveCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SetCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SetCommandTest.groovy
index 5e1ea6e..35dfd82 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SetCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/SetCommandTest.groovy
@@ -25,8 +25,6 @@ import org.codehaus.groovy.tools.shell.util.Preferences
 
 /**
  * Tests for the {@link SetCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class SetCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommandTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommandTest.groovy
index 3f72281..b76ac40 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommandTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/commands/ShowCommandTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.commands
 
 /**
  * Tests for the {@link ShowCommand} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ShowCommandTest
     extends CommandTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ClassWithPrivateConstructor.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ClassWithPrivateConstructor.groovy
index 4d61b0a..41be4bc 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ClassWithPrivateConstructor.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ClassWithPrivateConstructor.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.expr
 
 /**
  * Tests for classes defined which have private constructors.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class ClassWithPrivateConstructor
     extends ExprTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ExprTestSupport.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ExprTestSupport.groovy
index 41f5add..ecb1d1b 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ExprTestSupport.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/ExprTestSupport.groovy
@@ -22,8 +22,6 @@ import org.codehaus.groovy.tools.shell.Groovysh
 
 /**
  * Support for expression tests.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 abstract class ExprTestSupport
     extends GroovyTestCase
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/TimeItTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/TimeItTest.groovy
index 7e6b6de..db2cc9e 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/TimeItTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/expr/TimeItTest.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.tools.shell.expr
 
 /**
  * Tests for <tt>time = { it() }</tt> expressions.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
 class TimeItTest
     extends ExprTestSupport
diff --git a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/util/MessageSourceTest.groovy b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/util/MessageSourceTest.groovy
index a9765a0..07321cd 100644
--- a/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/util/MessageSourceTest.groovy
+++ b/subprojects/groovy-groovysh/src/test/groovy/org/codehaus/groovy/tools/shell/util/MessageSourceTest.groovy
@@ -20,12 +20,8 @@ package org.codehaus.groovy.tools.shell.util
 
 /**
  * Unit tests for the {@link MessageSource} class.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  */
-class MessageSourceTest
-    extends GroovyTestCase
-{
+class MessageSourceTest extends GroovyTestCase {
     private MessageSource messages
 
     @Override
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java
index efcdc9e..64a2f66 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java
@@ -93,7 +93,6 @@ import java.util.List;
  * where for example it is necessary to check the parent nodes of an AST node before
  * performing some operations.
  *
- * @author Cedric Champeau
  * @since 2.5.0
  */
 public abstract class ContextualClassCodeVisitor extends ClassCodeVisitorSupport {
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/Macro.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/Macro.java
index a0fa4fc..6d76564 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/Macro.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/Macro.java
@@ -26,10 +26,8 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * @author Sergei Egorov <bs...@gmail.com>
  * @since 2.5.0
  */
-
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.METHOD})
 @Incubating
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java
index d864be1..3f7ecbc 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java
@@ -41,7 +41,6 @@ import static org.codehaus.groovy.macro.methods.MacroGroovyMethods.DOLLAR_VALUE;
 /**
  * Runtime support for <pre>{@code macro {} }</pre> method.
  *
- * @author Sergei Egorov <bs...@gmail.com>
  * @since 2.5.0
  */
 
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroContext.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroContext.java
index 07df293..b67c50d 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroContext.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroContext.java
@@ -26,7 +26,6 @@ import org.codehaus.groovy.control.SourceUnit;
 /**
  * Macro method context. Every macro method must be an extension method of it.
  *
- * @author Sergei Egorov <bs...@gmail.com>
  * @since 2.5.0
  */
 
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroStub.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroStub.java
index cf4b2f7..5353a59 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroStub.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroStub.java
@@ -21,7 +21,6 @@ package org.codehaus.groovy.macro.runtime;
 /**
  * Stub for macro calls.
  *
- * @author Sergei Egorov <bs...@gmail.com>
  * @since 2.5.0
  */
 public enum MacroStub {
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java
index 54929b3..3109435 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java
@@ -47,7 +47,6 @@ import java.util.List;
  * {@code MacroStub.INSTANCE.macroMethod(123)}
  * (where {@code myMacroMethod} returns constant expression {@code 123})
  *
- * @author Sergei Egorov <bs...@gmail.com>
  * @since 2.5.0
  */
 class MacroCallTransformingVisitor extends ClassCodeVisitorSupport {
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroMethodsCache.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroMethodsCache.java
index ebb4423..9b84f21 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroMethodsCache.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroMethodsCache.java
@@ -39,7 +39,7 @@ import java.util.WeakHashMap;
 
 /**
  * TODO share some code with {@link org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.ExtensionMethodCache}
- * @author Sergei Egorov <bs...@gmail.com>
+ *
  * @since 2.5.0
  */
 class MacroMethodsCache {
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroTransformation.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroTransformation.java
index f92cb87..5a066ee 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroTransformation.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroTransformation.java
@@ -28,10 +28,8 @@ import org.codehaus.groovy.control.SourceUnit;
 import org.codehaus.groovy.transform.GroovyASTTransformation;
 
 /**
- * @author Sergei Egorov <bs...@gmail.com>
  * @since 2.5.0
  */
-
 @GroovyASTTransformation(phase = CompilePhase.CONVERSION)
 public class MacroTransformation extends MethodCallTransformation implements CompilationUnitAware {
 
diff --git a/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy b/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy
index e3bade5..aba9ee0 100644
--- a/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy
+++ b/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy
@@ -21,10 +21,6 @@ package org.codehaus.groovy.macro
 import groovy.transform.CompileStatic
 import org.codehaus.groovy.runtime.metaclass.MethodSelectionException
 
-/**
- *
- * @author Sergei Egorov <bs...@gmail.com>
- */
 @CompileStatic
 class MacroTest extends GroovyTestCase {
 


[groovy] 19/28: GROOVY-8939: Add methods in StringGroovyMethods for better API Usage (closes #846)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 01b4dbad3f976bf89f67bf7a3563b3c07159db07
Author: Adithyan K <ad...@gmail.com>
AuthorDate: Wed Dec 26 07:24:30 2018 +0530

    GROOVY-8939: Add methods in StringGroovyMethods for better API Usage (closes #846)
---
 .../groovy/runtime/StringGroovyMethods.java        | 516 +++++++++++++++++++++
 src/test/groovy/GroovyMethodsTest.groovy           | 334 +++++++++++++
 2 files changed, 850 insertions(+)

diff --git a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
index ddca930..66b886c 100644
--- a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
@@ -3888,4 +3888,520 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
 
         return self.toString().matches("\\s*");
     }
+
+    /**
+     * Returns the last <code>num</code> elements from this CharSequence.
+     * <pre class="groovyTestCase">
+     * def text = "Groovy"
+     * assert text.takeRight( 0 ) == ''
+     * assert text.takeRight( 2 ) == 'vy'
+     * assert text.takeRight( 7 ) == 'Groovy'
+     * </pre>
+     *
+     * @param self the original CharSequence
+     * @param num  the number of chars to take from this CharSequence from the right
+     * @return a CharSequence consisting of the last <code>num</code> chars,
+     * or else the whole CharSequence if it has less than <code>num</code> elements.
+     * @since 3.0.0
+     */
+    public static CharSequence takeRight(CharSequence self, int num) {
+        if (num < 0)
+            return self.subSequence(0, 0);
+
+        int begin = Math.max(0, self.length() - num);
+        return self.subSequence(begin, self.length());
+    }
+
+    /**
+     * A GString variant of the equivalent CharSequence method {@link #takeRight(CharSequence, int)}
+     *
+     * @param self the original CharSequence
+     * @param num  the number of chars to take from this CharSequence from the right
+     * @return a String consisting of the last <code>num</code> chars,
+     * or else the whole CharSequence if it has less than <code>num</code> elements.
+     * @since 3.0.0
+     */
+    public static String takeRight(String self, int num) {
+        return (String) takeRight((CharSequence) self, num);
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method {@link #takeRight(CharSequence, int)}
+     *
+     * @param self the original GString
+     * @param num  the number of chars to take from this GString from the right
+     * @return a String consisting of the last <code>num</code> chars,
+     * or else the whole GString if it has less than <code>num</code> elements.
+     * @since 3.0.0
+     */
+    public static String takeRight(GString self, int num) {
+        return takeRight(self.toString(), num);
+    }
+
+    /**
+     * Returns the {@code CharSequence} that exists after the first occurrence of the given
+     * {@code searchString} in this CharSequence
+     *
+     * <pre class="groovyTestCase">
+     * def text = "Groovy development. Groovy team"
+     * assert text.takeAfter( 'Groovy' )           == ' development. Groovy team'
+     * assert text.takeAfter( 'team' )             == ''
+     * assert text.takeAfter( '' )                 == ''
+     * assert text.takeAfter( 'Unavailable text' ) == ''
+     * assert text.takeAfter( null )               == ''
+     * </pre>
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence that is searched in this CharSequence
+     * @return CharSequence that is after the given searchString and empty string if it does not exist
+     * @since 3.0.0
+     */
+    public static CharSequence takeAfter(CharSequence self, CharSequence searchString) {
+        if (searchString == null || searchString.toString().isEmpty() || self.length() <= searchString.length())
+            return self.subSequence(0, 0);
+
+        String s = self.toString();
+
+        int index = s.indexOf(searchString.toString());
+
+        return (index == -1) ? self.subSequence(0, 0) : self.subSequence(index + searchString.length(), self.length());
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method {@link #takeAfter(CharSequence, CharSequence)}
+     *
+     * @param self         the original CharSequence
+     * @param searchString String that is searched in this CharSequence
+     * @return String that is after the given searchString and empty string if it does not exist
+     * @since 3.0.0
+     */
+    public static String takeAfter(String self, CharSequence searchString) {
+        return (String) takeAfter((CharSequence) self, searchString);
+    }
+
+    /**
+     * A GString variant of the equivalent CharSequence method {@link #takeAfter(CharSequence, CharSequence)}
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence that is searched in this CharSequence
+     * @return String that is after the given searchString and empty string if it does not exist
+     * @since 3.0.0
+     */
+    public static String takeAfter(GString self, CharSequence searchString) {
+        return takeAfter(self.toString(), searchString);
+    }
+
+    /**
+     * Returns the {@code CharSequence} that exists before the first occurrence of the given
+     * {@code searchString} in this CharSequence
+     *
+     * <pre class="groovyTestCase">
+     * def text = "Groovy development. Groovy team"
+     *
+     * assert text.takeBefore( ' Groovy ' )         == 'Groovy development.'
+     * assert text.takeBefore( ' ' )                == 'Groovy'
+     * assert text.takeBefore( 'Unavailable text' ) == ''
+     * assert text.takeBefore( null )               == ''
+     * </pre>
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence that is searched in this CharSequence
+     * @return CharSequence that is before the given searchString
+     * @since 3.0.0
+     */
+    public static CharSequence takeBefore(CharSequence self, CharSequence searchString) {
+        if (searchString == null || searchString.toString().isEmpty() || self.length() <= searchString.length())
+            return self.subSequence(0, 0);
+
+        String s = self.toString();
+
+        int index = s.indexOf(searchString.toString());
+
+        return (index == -1) ? self.subSequence(0, 0) : self.subSequence(0, index);
+    }
+
+    /**
+     * A GString variant of the equivalent CharSequence method {@link #takeBefore(CharSequence, CharSequence)}
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence that is searched in this CharSequence
+     * @return String that is before the given searchString
+     * @since 3.0.0
+     */
+    public static String takeBefore(GString self, String searchString) {
+        return takeBefore(self.toString(), searchString);
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method {@link #takeBefore(CharSequence, CharSequence)}
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence that is searched in this CharSequence
+     * @return String that is before the given searchString
+     * @since 3.0.0
+     */
+    public static String takeBefore(String self, String searchString) {
+        return (String) takeBefore((CharSequence) self, searchString);
+    }
+
+    /**
+     * The method returns new CharSequence after removing the right {@code num} chars. Returns empty String if the
+     * {@code num} is greater than the length of the CharSequence
+     *
+     * <pre class="groovyTestCase">
+     * def text = "groovy"
+     *
+     * assert text.dropRight(  3 ) == 'gro'
+     * assert text.dropRight(  6 ) == ''
+     * assert text.dropRight(  0 ) == 'groovy'
+     * assert text.dropRight( -1 ) == 'groovy'
+     * assert text.dropRight( 10 ) == ''
+     *
+     * 	</pre>
+     *
+     * @param self the original CharSequence
+     * @param num  number of characters
+     * @return CharSequence after removing the right {@code num} chars and empty of the {@code num} is greater than the
+     * length of the CharSequence
+     * @since 3.0.0
+     */
+    public static CharSequence dropRight(CharSequence self, int num) {
+
+        if (num < 0)
+            return self;
+
+        if (num >= self.length())
+            return self.subSequence(0, 0);
+
+        return take(self, self.length() - num);
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method {@link #dropRight(CharSequence, int)}
+     *
+     * @param self the original CharSequence
+     * @param num  number of characters
+     * @return String after removing the right {@code num} chars and empty of the {@code num} is greater than the
+     * length of the CharSequence
+     * @since 3.0.0
+     */
+    public static String dropRight(String self, int num) {
+        return (String) dropRight((CharSequence) self, num);
+    }
+
+
+    /**
+     * A GString variant of the equivalent CharSequence method {@link #dropRight(CharSequence, int)}
+     *
+     * @param self the original CharSequence
+     * @param num  number of characters
+     * @return String after removing the right {@code num} chars and empty of the {@code num} is greater than the
+     * length of the CharSequence
+     * @since 3.0.0
+     */
+    public static String dropRight(GString self, int num) {
+        return dropRight(self.toString(), num);
+    }
+
+    /**
+     * Returns the CharSequence that is in between the first occurrence of the given {@code from} and {@code to}
+     * CharSequences and empty if the unavailable inputs are given
+     *
+     * <pre class="groovyTestCase">
+     * def text = "Groovy"
+     *
+     * assert text.takeBetween( 'r', 'v' ) == 'oo'
+     * assert text.takeBetween( 'r', 'z' ) == ''
+     * assert text.takeBetween( 'a', 'r' ) == ''
+     *
+     * 	</pre>
+     *
+     * @param self the original CharSequence
+     * @param from beginning of search
+     * @param to   end of search
+     * @return the CharSequence that is in between the given two CharSequences and empty if the unavailable inputs are
+     * given
+     * @see #takeBetween(CharSequence, CharSequence, CharSequence, int)
+     * @since 3.0.0
+     */
+    public static CharSequence takeBetween(CharSequence self, CharSequence from, CharSequence to) {
+        if (from == null || to == null || from.length() == 0 || to.length() == 0 || from.length() > self.length() || to.length() > self.length())
+            return self.subSequence(0, 0);
+
+        String s = self.toString();
+        String f = from.toString();
+
+        int fi = s.indexOf(f);
+
+        if (fi == -1)
+            return self.subSequence(0, 0);
+
+        String t = to.toString();
+
+        int ti = s.indexOf(t, fi + from.length());
+
+        if (ti == -1)
+            return self.subSequence(0, 0);
+
+        return self.subSequence(fi + from.length(), ti);
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method {@link #takeBetween(CharSequence, CharSequence, CharSequence)}
+     *
+     * @param self the original CharSequence
+     * @param from beginning of search
+     * @param to   end of search
+     * @return String that is in between the given two CharSequences and empty if the unavailable inputs are
+     * given
+     * @since 3.0.0
+     */
+    public static String takeBetween(String self, CharSequence from, CharSequence to) {
+        return (String) takeBetween((CharSequence) self, from, to);
+    }
+
+    /**
+     * A GString variant of the equivalent CharSequence method {@link #takeBetween(CharSequence, CharSequence, CharSequence)}
+     *
+     * @param self the original CharSequence
+     * @param from beginning of search
+     * @param to   end of search
+     * @return String that is in between the given two CharSequences and empty if the unavailable inputs are
+     * given
+     * @since 3.0.0
+     */
+    public static String takeBetween(GString self, CharSequence from, CharSequence to) {
+        return takeBetween(self.toString(), from, to);
+    }
+
+    /**
+     * Method to take the characters between the first occurrence of the two subsequent {@code enclosure} strings
+     *
+     * <pre class="groovyTestCase">
+     * def text = "name = 'some name'"
+     *
+     * assert text.takeBetween( "'" ) == 'some name'
+     * assert text.takeBetween( 'z' ) == ''
+     *
+     * </pre>
+     *
+     * @param self      the original CharSequence
+     * @param enclosure Enclosure String
+     * @return CharSequence between the 2 subsequent {@code enclosure} strings
+     * @see #takeBetween(CharSequence, CharSequence, int)
+     * @since 3.0.0
+     */
+    public static CharSequence takeBetween(CharSequence self, CharSequence enclosure) {
+        return takeBetween(self, enclosure, enclosure);
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method {@link #takeBetween(CharSequence, CharSequence)}
+     *
+     * @param self      the original GString
+     * @param enclosure Enclosure String
+     * @return String between the 2 subsequent {@code enclosure} strings
+     * @since 3.0.0
+     */
+    public static String takeBetween(String self, CharSequence enclosure) {
+        return (String) takeBetween((CharSequence) self, enclosure);
+    }
+
+    /**
+     * A GString variant of the equivalent CharSequence method {@link #takeBetween(CharSequence, CharSequence)}
+     *
+     * @param self      the original GString
+     * @param enclosure Enclosure String
+     * @return String between the 2 subsequent {@code enclosure} strings
+     * @since 3.0.0
+     */
+    public static String takeBetween(GString self, CharSequence enclosure) {
+        return takeBetween(self.toString(), enclosure);
+    }
+
+    /**
+     * Returns the CharSequence that is in between the given the nth (specified by occurrence) pair of
+     * {@code from} and {@code to} CharSequences and empty if the unavailable inputs are given.
+     *
+     * <pre class="groovyTestCase">
+     * def text = "t1=10 ms, t2=100 ms"
+     *
+     * assert text.takeBetween( '=', ' ', 0 ) == '10'
+     * assert text.takeBetween( '=', ' ', 1 ) == '100'
+     * assert text.takeBetween( 't1', 'z' ) == ''
+     * </pre>
+     *
+     * @param self       the original CharSequence
+     * @param from       beginning of search
+     * @param to         end of search
+     * @param occurrence nth occurrence that is to be returned. 0 represents first one
+     * @return the CharSequence that is in between the given the nth (specified by occurrence) pair of
+     * {@code from} and {@code to} CharSequences and empty if the unavailable inputs are given.
+     * @see #takeBetween(CharSequence, CharSequence, CharSequence)
+     * @since 3.0.0
+     */
+    public static CharSequence takeBetween(CharSequence self, CharSequence from, CharSequence to, int occurrence) {
+        if (from == null || to == null || from.length() > self.length() || to.length() > self.length() || (to.length() + from.length() >= self.length()) || occurrence < 0)
+            return self.subSequence(0, 0);
+
+        String s = self.toString();
+        String f = from.toString();
+
+        int start = 0;
+        int counter = 0;
+
+        while (counter <= occurrence) {
+            int fi = s.indexOf(f, start);
+
+            if (fi == -1)
+                return self.subSequence(0, 0);
+
+            int ti = s.indexOf(to.toString(), fi + f.length());
+
+            if (ti == -1)
+                return self.subSequence(0, 0);
+
+            if (counter == occurrence)
+                return self.subSequence(fi + f.length(), ti);
+
+            start = ti + to.length() + 1;
+            counter++;
+        }
+
+        return self.subSequence(0, 0);
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method
+     * {@link #takeBetween(CharSequence, CharSequence, CharSequence, int)}
+     *
+     * @param self       the original CharSequence
+     * @param from       beginning of search
+     * @param to         end of search
+     * @param occurrence nth occurrence that is to be returned. 0 represents first one
+     * @return the String that is in between the given nth (specified by occurrence) pair of
+     * {@code from} and {@code to} CharSequences and empty if the unavailable inputs are given.
+     * @since 3.0.0
+     */
+    public static String takeBetween(String self, CharSequence from, CharSequence to, int occurrence) {
+        return (String) takeBetween((CharSequence) self, from, to, occurrence);
+    }
+
+    /**
+     * A GString variant of the equivalent CharSequence method
+     * {@link #takeBetween(CharSequence, CharSequence, CharSequence, int)}
+     *
+     * @param self       the original CharSequence
+     * @param from       beginning of search
+     * @param to         end of search
+     * @param occurrence nth occurrence that is to be returned. 0 represents first one
+     * @return the String that is in between the given nth (specified by occurrence) pair of
+     * {@code from} and {@code to} CharSequences and empty if the unavailable inputs are given.
+     * @since 3.0.0
+     */
+    public static String takeBetween(GString self, CharSequence from, CharSequence to, int occurrence) {
+        return takeBetween(self.toString(), from, to, occurrence);
+    }
+
+    /**
+     * Method to take the characters between nth (specified by occurrence) pair of @code enclosure} strings
+     *
+     * <pre class="groovyTestCase">
+     * def text = "t1='10' ms, t2='100' ms"
+     *
+     * assert text.takeBetween( "'", 0 ) == '10'
+     * assert text.takeBetween( "'", 1 ) == '100'
+     * assert text.takeBetween( "'", 2 ) == ''
+     * </pre>
+     *
+     * @param self       the original CharSequence
+     * @param enclosure  Enclosure String
+     * @param occurrence nth occurrence being returned
+     * @return CharSequence between the nth occurrence of pair of {@code enclosure} strings
+     * @see #takeBetween(CharSequence, CharSequence, int)
+     * @since 3.0.0
+     */
+    public static CharSequence takeBetween(CharSequence self, CharSequence enclosure, int occurrence) {
+        return takeBetween(self, enclosure, enclosure, occurrence);
+    }
+
+    /**
+     * A String variant of the equivalent CharSequence method
+     * {@link #takeBetween(CharSequence, CharSequence, int)}
+     *
+     * @param self       the original CharSequence
+     * @param enclosure  Enclosure String
+     * @param occurrence nth occurrence being returned
+     * @return String between the nth occurrence of pair of {@code enclosure} strings
+     * @since 3.0.0
+     */
+    public static String takeBetween(String self, CharSequence enclosure, int occurrence) {
+        return (String) takeBetween((CharSequence) self, enclosure, occurrence);
+    }
+
+    /**
+     * A GString variant of the equivalent CharSequence method
+     * {@link #takeBetween(CharSequence, CharSequence, int)}
+     *
+     * @param self       the original CharSequence
+     * @param enclosure  Enclosure String
+     * @param occurrence nth occurrence being returned
+     * @return String between the nth occurrence of pair of {@code enclosure} strings
+     * @since 3.0.0
+     */
+    public static String takeBetween(GString self, CharSequence enclosure, int occurrence) {
+        return takeBetween(self.toString(), enclosure, occurrence);
+    }
+
+    /**
+     * Checks whether this CharSequence starts with the {@code searchString} ignoring the case considerations
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence being checked against this
+     * @return {@code true} if the character sequence represented by the argument is a prefix of this CharSequence
+     * ignoring the case considerations. {@code false} otherwise. Returns false if the argument is null
+     * @since 3.0.0
+     */
+    public static boolean startsWithIgnoreCase(CharSequence self, CharSequence searchString) {
+        if (searchString == null || searchString.length() == 0 || self.length() < searchString.length())
+            return false;
+
+        String s = take(self.toString(), searchString.length()).toString();
+
+        return s.equalsIgnoreCase(searchString.toString());
+    }
+
+    /**
+     * Checks whether this CharSequence ends with the {@code searchString} ignoring the case considerations
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence bring checked against this
+     * @return {@code true} if the character sequence represented by the argument is a suffix of this CharSequence
+     * ignoring the case considerations. {@code false} otherwise. Returns false if the argument is null
+     * @since 3.0.0
+     */
+    public static boolean endsWithIgnoreCase(CharSequence self, CharSequence searchString) {
+        if (searchString == null || searchString.length() == 0 || self.length() < searchString.length())
+            return false;
+
+        String s = takeRight(self.toString(), searchString.length()).toString();
+
+        return s.equalsIgnoreCase(searchString.toString());
+    }
+
+    /**
+     * Checks whether this CharSequence contains the {@code searchString} ignoring the caseConsiderations
+     *
+     * @param self         the original CharSequence
+     * @param searchString CharSequence being checked against this
+     * @return {@code true} if the character sequence represented by the argument exists in this CharSequence
+     * ignoring the case considerations. {@code false} otherwise. Returns false if the argument is null
+     * @since 3.0.0
+     */
+    public static boolean containsIgnoreCase(CharSequence self, CharSequence searchString) {
+        if (searchString == null || searchString.length() == 0 || self.length() < searchString.length())
+            return false;
+
+        return self.toString().toLowerCase().contains(searchString.toString().toLowerCase());
+    }
 }
diff --git a/src/test/groovy/GroovyMethodsTest.groovy b/src/test/groovy/GroovyMethodsTest.groovy
index b773890..b23fd27 100644
--- a/src/test/groovy/GroovyMethodsTest.groovy
+++ b/src/test/groovy/GroovyMethodsTest.groovy
@@ -19,6 +19,7 @@
 package groovy
 
 import java.awt.Dimension
+import java.nio.CharBuffer
 import java.util.concurrent.LinkedBlockingQueue
 import org.codehaus.groovy.util.StringUtil
 
@@ -1820,6 +1821,339 @@ class GroovyMethodsTest extends GroovyTestCase {
             ([] as int[]).swap(1, 2)
         }
     }
+
+    void testCharSequenceTakeRight() {
+        def data = ['groovy',      // String
+                    "${'groovy'}", // GString
+                    java.nio.CharBuffer.wrap('groovy'),
+                    new StringBuffer('groovy'),
+                    new StringBuilder('groovy')]
+        data.each {
+            // Need toString() as CharBuffer.subSequence returns a java.nio.StringCharBuffer
+            assert it.takeRight(-1).toString() == ''
+            assert it.takeRight(0).toString() == ''
+            assert it.takeRight(3).toString() == 'ovy'
+            assert it.takeRight(6).toString() == 'groovy'
+            assert it.takeRight(10).toString() == 'groovy'
+        }
+    }
+
+    void testCharSequenceTakeAfter() {
+        def text = 'Groovy development. Groovy team'
+
+        def data = [text,      // String
+                    "${text}", // GString
+                    java.nio.CharBuffer.wrap(text),
+                    new StringBuffer(text),
+                    new StringBuilder(text)]
+
+        List<List<String>> searchStringsAndResults = [
+
+                ['Groovy', ' development. Groovy team'],
+                ['team', ''],
+                ['Java.', ''],
+                ['Unavailable text', ''],
+                ['Some larger String than self', ''],
+                ['', ''],
+                [null, '']
+        ]
+
+        data.each { s ->
+
+            searchStringsAndResults.each { r ->
+
+                // Need toString() as CharBuffer.subSequence returns a java.nio.StringCharBuffer
+
+                assert s.takeAfter(r[0]).toString() == r[1]                //String as searchString
+                assert s.takeAfter("${r[0]}").toString() == r[1]  //GString as searchString
+
+                if (r[0]) {
+                    assert s.takeAfter(java.nio.CharBuffer.wrap(r[0])).toString() == r[1] //CharBuffer as searchString
+                    assert s.takeAfter(new StringBuffer(r[0])).toString() == r[1]  //StringBuffer as searchString
+                    assert s.takeAfter(new StringBuilder(r[0])).toString() == r[1] //StringBuilder as searchString
+                }
+            }
+        }
+
+    }
+
+    void testCharSequenceTakeBefore() {
+        def text = "Groovy development. Groovy team"
+
+        def data = [text,      // String
+                    "${text}", // GString
+                    java.nio.CharBuffer.wrap(text),
+                    new StringBuffer(text),
+                    new StringBuilder(text)]
+
+        List<List<String>> searchStringsAndResults = [
+
+                [' Groovy ', 'Groovy development.'],
+                ['Groovy', ''],
+                [' ', 'Groovy'],
+                ['Unavailable text', ''],
+                ['Some larger String than self', ''],
+                ['r', 'G'],
+                ['', ''],
+                [null, '']
+        ]
+
+        data.each { s ->
+
+            searchStringsAndResults.each { r ->
+
+                // Need toString() as CharBuffer.subSequence returns a java.nio.StringCharBuffer
+
+                assert s.takeBefore(r[0]).toString() == r[1]                //String as searchString
+                assert s.takeBefore("${r[0]}").toString() == r[1]  //GString as searchString
+
+                if (r[0]) {
+                    assert s.takeBefore(java.nio.CharBuffer.wrap(r[0])).toString() == r[1] //CharBuffer as searchString
+                    assert s.takeBefore(new StringBuffer(r[0])).toString() == r[1]  //StringBuffer as searchString
+                    assert s.takeBefore(new StringBuilder(r[0])).toString() == r[1] //StringBuilder as searchString
+                }
+            }
+        }
+
+    }
+
+    void testCharSequenceDropRight() {
+        def data = ['groovy',      // String
+                    "${'groovy'}", // GString
+                    java.nio.CharBuffer.wrap('groovy'),
+                    new StringBuffer('groovy'),
+                    new StringBuilder('groovy')]
+        data.each {
+            // Need toString() as CharBuffer.subSequence returns a java.nio.StringCharBuffer
+            assert it.dropRight(-1).toString() == 'groovy'
+            assert it.dropRight(0).toString() == 'groovy'
+            assert it.dropRight(3).toString() == 'gro'
+            assert it.dropRight(6).toString() == ''
+            assert it.dropRight(10).toString() == ''
+        }
+    }
+
+    void testCharSequenceTakeBetween() {
+
+        def text = 'Time taken for Select Query = 12 ms, Update Query = 15 ms. Result = "One", "Two"'
+
+        def data = [text,      // String
+                    "${text}", // GString
+                    java.nio.CharBuffer.wrap(text),
+                    new StringBuffer(text),
+                    new StringBuilder(text)]
+
+        data.each { s ->
+
+            List<List<String>> fromToCasesWithoutNum = [
+
+                    ['Query = ', ' ms', '12'], //positive case
+                    ['Query = ', ' MS', ''],   //negative case with invalid 'to'
+                    ['Query123 = ', ' ms', '']     //negative case with invalid 'from'
+            ]
+
+            fromToCasesWithoutNum.each { r ->
+
+                assert s.takeBetween(r[0], r[1]).toString() == r[2]
+                assert s.takeBetween("${r[0]}", "${r[1]}").toString() == r[2]
+
+                if (r[0] && r[1]) {
+                    assert s.takeBetween(CharBuffer.wrap(r[0]), CharBuffer.wrap(r[1])).toString() == r[2]
+                    assert s.takeBetween(new StringBuffer(r[0]), CharBuffer.wrap(r[1])).toString() == r[2]
+                    assert s.takeBetween(CharBuffer.wrap(r[0]), new StringBuilder(r[1])).toString() == r[2]
+                }
+            }
+        }
+
+        data.each { s ->
+
+            List<List<String>> enclosureWithoutNum = [
+
+                    ['"', 'One'],               //positive case
+                    ['Query', ' = 12 ms, Update '], //negative case with invalid enclosure
+                    ['Query123', '']                   //negative case with invalid enclosure
+            ]
+
+            enclosureWithoutNum.each { r ->
+
+                assert s.takeBetween(r[0]).toString() == r[1]
+                assert s.takeBetween("${r[0]}").toString() == r[1]
+
+                if (r[0] && r[1]) {
+                    assert s.takeBetween(CharBuffer.wrap(r[0])).toString() == r[1]
+                    assert s.takeBetween(new StringBuffer(r[0])).toString() == r[1]
+                    assert s.takeBetween(new StringBuilder(r[0])).toString() == r[1]
+                }
+            }
+        }
+
+        data.each { s ->
+
+            List<List<Object>> fromToCasesWithNum = [
+
+                    ['Query = ', ' ms', 1, '15'],
+                    ['Query = ', ' ms', 2, '']
+            ]
+
+            fromToCasesWithNum.each { r ->
+
+                assert s.takeBetween(r[0], r[1], r[2]).toString() == r[3]
+                assert s.takeBetween("${r[0]}", "${r[1]}", r[2]).toString() == r[3]
+
+                if (r[0] && r[1]) {
+                    assert s.takeBetween(CharBuffer.wrap(r[0]), CharBuffer.wrap(r[1]), r[2]).toString() == r[3]
+                    assert s.takeBetween(new StringBuffer(r[0]), new StringBuffer(r[1]), r[2]).toString() == r[3]
+                    assert s.takeBetween(new StringBuilder(r[0]), new StringBuilder(r[1]), r[2]).toString() == r[3]
+                }
+            }
+        }
+
+        data.each { s ->
+
+            List<List<Object>> enclosureWithNum = [
+
+                    ['"', 1, 'Two'],
+                    ['"', 2, ''],
+                    ['"', -1, '']
+            ]
+
+            enclosureWithNum.each { r ->
+
+                assert s.takeBetween(r[0], r[1]).toString() == r[2]
+                assert s.takeBetween("${r[0]}", r[1]).toString() == r[2]
+
+                if (r[0] && r[1]) {
+                    assert s.takeBetween(CharBuffer.wrap(r[0]), r[1]).toString() == r[2]
+                    assert s.takeBetween(new StringBuffer(r[0]), r[1]).toString() == r[2]
+                    assert s.takeBetween(new StringBuilder(r[0]), r[1]).toString() == r[2]
+                }
+            }
+        }
+
+        assert 'smalltext'.takeBetween('somelargertextfrom', 'somelargertextto') == ''
+        assert 'smalltext'.takeBetween('somelargertextfrom', 'somelargertextto', 0) == ''
+
+        def text2 = "name = 'some name'"
+
+        assert text2.takeBetween("'") == 'some name'
+        assert text2.takeBetween('z') == ''
+
+        def text3 = "t1=10 ms, t2=100 ms"
+
+        assert text3.takeBetween('=', ' ', 0) == '10'
+        assert text3.takeBetween('=', ' ', 1) == '100'
+        assert text3.takeBetween('t1', 'z') == ''
+
+        assert 'one\ntwo\nthree'.takeBetween('\n') == 'two'
+    }
+
+    void testCharSequenceStartsWithIgnoreCase() {
+        def text = 'Some Text'
+
+        def data = [text,      // String
+                    "${text}", // GString
+                    java.nio.CharBuffer.wrap(text),
+                    new StringBuffer(text),
+                    new StringBuilder(text)]
+
+        List<List<Object>> searchStringsAndResults = [
+
+                ['SOME', true],
+                ['some', true],
+                ['Some', true],
+                ['Wrong', false],
+                ['Some larger String than self', false],
+                ['', false],
+                [null, false]
+        ]
+
+        data.each { s ->
+
+            searchStringsAndResults.each { r ->
+
+                assert s.startsWithIgnoreCase(r[0]) == r[1]
+                assert s.startsWithIgnoreCase("${r[0]}") == r[1]
+
+                if (r[0]) {
+                    assert s.startsWithIgnoreCase(CharBuffer.wrap(r[0])) == r[1]
+                    assert s.startsWithIgnoreCase(new StringBuffer(r[0])) == r[1]
+                    assert s.startsWithIgnoreCase(new StringBuilder(r[0])) == r[1]
+                }
+            }
+        }
+    }
+
+    void testCharSequenceEndsWithIgnoreCase() {
+        def text = 'Some Text'
+
+        def data = [text,      // String
+                    "${text}", // GString
+                    java.nio.CharBuffer.wrap(text),
+                    new StringBuffer(text),
+                    new StringBuilder(text)]
+
+        List<List<Object>> searchStringsAndResults = [
+
+                ['TEXT', true],
+                ['text', true],
+                ['Text', true],
+                ['Wrong', false],
+                ['Some larger String than self', false],
+                ['', false],
+                [null, false]
+        ]
+
+        data.each { s ->
+
+            searchStringsAndResults.each { r ->
+
+                assert s.endsWithIgnoreCase(r[0]) == r[1]
+                assert s.endsWithIgnoreCase("${r[0]}") == r[1]
+
+                if (r[0]) {
+                    assert s.endsWithIgnoreCase(CharBuffer.wrap(r[0])) == r[1]
+                    assert s.endsWithIgnoreCase(new StringBuffer(r[0])) == r[1]
+                    assert s.endsWithIgnoreCase(new StringBuilder(r[0])) == r[1]
+                }
+            }
+        }
+    }
+
+    void testCharSequenceContainsIgnoreCase() {
+        def text = 'Some Text'
+
+        def data = [text,      // String
+                    "${text}", // GString
+                    java.nio.CharBuffer.wrap(text),
+                    new StringBuffer(text),
+                    new StringBuilder(text)]
+
+        List<List<Object>> searchStringsAndResults = [
+
+                ['E TEX', true],
+                ['Me t', true],
+                ['me T', true],
+                ['Wrong', false],
+                ['Some larger String than self', false],
+                ['', false],
+                [null, false]
+        ]
+
+        data.each { s ->
+
+            searchStringsAndResults.each { r ->
+
+                assert s.containsIgnoreCase(r[0]) == r[1]
+                assert s.containsIgnoreCase("${r[0]}") == r[1]
+
+                if (r[0]) {
+                    assert s.containsIgnoreCase(CharBuffer.wrap(r[0])) == r[1]
+                    assert s.containsIgnoreCase(new StringBuffer(r[0])) == r[1]
+                    assert s.containsIgnoreCase(new StringBuilder(r[0])) == r[1]
+                }
+            }
+        }
+    }
 }
 
 class WackyList extends LinkedList {


[groovy] 27/28: cleanup/remove @author tags as per Apache recommended practices for groovy-swing (typo)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit da2aabb4a24afb65dfa4fca87ce1275389edfc69
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Dec 28 14:29:02 2018 +1000

    cleanup/remove @author tags as per Apache recommended practices for groovy-swing (typo)
---
 .../src/main/groovy/groovy/swing/factory/BindFactory.groovy      | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy
index 96137ef..55afe7f 100644
--- a/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy
+++ b/subprojects/groovy-swing/src/main/groovy/groovy/swing/factory/BindFactory.groovy
@@ -111,7 +111,6 @@ class BindFactory extends AbstractFactory {
      * source ((sourceProperty) | (sourceEvent sourceValue))
      * (target targetProperty)? (? use default javabeans property if targetProperty is not present?)
      *
-     *
      * @param builder
      * @param name
      * @param value
@@ -192,7 +191,7 @@ class BindFactory extends AbstractFactory {
                 trigger = getTriggerBinding(pb)
             }
 
-            SourceBinding sb;
+            SourceBinding sb
             if (sva) {
                 // source value comes from a value closure
                 Closure queryValue = (Closure) attributes.remove("sourceValue")
@@ -303,7 +302,7 @@ class BindFactory extends AbstractFactory {
         return psb
     }
 
-    bindingAttributeDelegate(FactoryBuilderSupport builder, def node, def attributes) {
+    def bindingAttributeDelegate(FactoryBuilderSupport builder, def node, def attributes) {
         Iterator iter = attributes.entrySet().iterator()
         Map bindContext = builder.context.get(CONTEXT_DATA_KEY) ?: [:]
 
@@ -339,7 +338,7 @@ class BindFactory extends AbstractFactory {
                 finishContextualBinding(fb, builder, bindAttrs, id)
             } else if (value instanceof ClosureTriggerBinding) {
                 PropertyBinding psb = new PropertyBinding(node, property, update)
-                fb = value.createBinding(value, psb);
+                fb = value.createBinding(value, psb)
                 finishContextualBinding(fb, builder, bindAttrs, id)
             } else {
                 continue
@@ -359,7 +358,7 @@ class BindFactory extends AbstractFactory {
         }
     }
 
-    private def finishContextualBinding(FullBinding fb, FactoryBuilderSupport builder, bindAttrs, id) {
+    private finishContextualBinding(FullBinding fb, FactoryBuilderSupport builder, bindAttrs, id) {
         bindAttrs.remove('update')
         Object bindValue = bindAttrs.remove("bind")
         List propertiesToBeSkipped = ['group']


[groovy] 09/28: GROOVY-7233: Pre-factor (fix merge glitch)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit f6001784de3ae572cea914f1ad80691f3e0c2e04
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue Dec 18 11:13:54 2018 +1000

    GROOVY-7233: Pre-factor (fix merge glitch)
---
 src/test/groovy/util/logging/CommonsTest.groovy | 74 -------------------------
 1 file changed, 74 deletions(-)

diff --git a/src/test/groovy/util/logging/CommonsTest.groovy b/src/test/groovy/util/logging/CommonsTest.groovy
index 9e2a460..b8d5acc 100644
--- a/src/test/groovy/util/logging/CommonsTest.groovy
+++ b/src/test/groovy/util/logging/CommonsTest.groovy
@@ -56,80 +56,6 @@ class CommonsTest extends GroovyTestCase {
         }
     }
 
-    void testExplicitPrivateFinalStaticLogFieldAppears() {
-        Class clazz = new GroovyClassLoader().parseClass('''
-            import static groovy.transform.options.Visibility.*
-            @groovy.transform.VisibilityOptions(value = PRIVATE)
-            @groovy.util.logging.Commons
-            class MyClass {
-            }
-        ''')
-
-        assert clazz.declaredFields.find { Field field ->
-            field.name == "log" &&
-                    Modifier.isPrivate(field.getModifiers()) && 
-                    Modifier.isStatic(field.getModifiers()) &&
-                    Modifier.isTransient(field.getModifiers()) &&
-                    Modifier.isFinal(field.getModifiers())
-        }
-    }
-
-    void testPackagePrivateFinalStaticLogFieldAppears() {
-        Class clazz = new GroovyClassLoader().parseClass('''
-            import static groovy.transform.options.Visibility.*
-            @groovy.transform.VisibilityOptions(value = PACKAGE_PRIVATE)
-            @groovy.util.logging.Commons
-            class MyClass {
-            }
-        ''')
-
-        assert clazz.declaredFields.find { Field field ->
-            field.name == "log" &&
-                    !Modifier.isPrivate(field.getModifiers()) && 
-                    !Modifier.isProtected(field.getModifiers()) && 
-                    !Modifier.isPublic(field.getModifiers()) && 
-                    Modifier.isStatic(field.getModifiers()) &&
-                    Modifier.isTransient(field.getModifiers()) &&
-                    Modifier.isFinal(field.getModifiers())
-        }
-    }
-
-    void testProtectedFinalStaticLogFieldAppears() {
-        Class clazz = new GroovyClassLoader().parseClass('''
-            import static groovy.transform.options.Visibility.*
-            @groovy.transform.VisibilityOptions(value = PROTECTED)
-            @groovy.util.logging.Commons
-            class MyClass {
-            }
-        ''')
-
-        assert clazz.declaredFields.find { Field field ->
-            field.name == "log" &&
-                    Modifier.isProtected(field.getModifiers()) &&
-                    Modifier.isStatic(field.getModifiers()) &&
-                    Modifier.isTransient(field.getModifiers()) &&
-                    Modifier.isFinal(field.getModifiers())
-        }
-    }
-
-    void testPublicFinalStaticLogFieldAppears() {
-        Class clazz = new GroovyClassLoader().parseClass('''
-            import static groovy.transform.options.Visibility.*
-            @groovy.transform.VisibilityOptions(value = PUBLIC)
-            @groovy.util.logging.Commons
-            class MyClass {
-            }
-        ''')
-
-        assert clazz.declaredFields.find { Field field ->
-            field.name == "log" &&
-                    Modifier.isPublic(field.getModifiers()) &&
-                    Modifier.isStatic(field.getModifiers()) &&
-                    Modifier.isTransient(field.getModifiers()) &&
-                    Modifier.isFinal(field.getModifiers())
-        }
-    }
-
     void testPrivateFinalStaticNamedLogFieldAppears() {
         Class clazz = new GroovyClassLoader().parseClass('''
               @groovy.util.logging.Commons('logger')


[groovy] 13/28: GROOVY-8936: NPE occurred when `null` message passed into `MissingPropertyException`(closes #844)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 254c7c8ea20122c4dadb78ab335f4c09f2109833
Author: Jesse Glick <jg...@apache.org>
AuthorDate: Thu Dec 20 11:43:17 2018 -0500

    GROOVY-8936: NPE occurred when `null` message passed into `MissingPropertyException`(closes #844)
---
 .../groovy/groovy/lang/GroovyRuntimeException.java |  7 ++++-
 .../groovy/lang/MissingPropertyException.java      |  3 ++
 .../groovy/lang/MissingPropertyExceptionTest.java  | 34 ++++++++++++++++++++++
 3 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/src/main/groovy/groovy/lang/GroovyRuntimeException.java b/src/main/groovy/groovy/lang/GroovyRuntimeException.java
index de489c3..af62bb6 100644
--- a/src/main/groovy/groovy/lang/GroovyRuntimeException.java
+++ b/src/main/groovy/groovy/lang/GroovyRuntimeException.java
@@ -60,7 +60,12 @@ public class GroovyRuntimeException extends RuntimeException {
     }
 
     public String getMessage() {
-        return getMessageWithoutLocationText() + getLocationText();
+        String messageWithoutLocationText = getMessageWithoutLocationText();
+        String locationText = getLocationText();
+        if (messageWithoutLocationText == null && locationText.isEmpty()) {
+            return null; // not "null"
+        }
+        return messageWithoutLocationText + locationText;
     }
 
     public ASTNode getNode() {
diff --git a/src/main/groovy/groovy/lang/MissingPropertyException.java b/src/main/groovy/groovy/lang/MissingPropertyException.java
index 273d963..4d27393 100644
--- a/src/main/groovy/groovy/lang/MissingPropertyException.java
+++ b/src/main/groovy/groovy/lang/MissingPropertyException.java
@@ -58,6 +58,9 @@ public class MissingPropertyException extends GroovyRuntimeException {
     }
 
     public String getMessageWithoutLocationText() {
+        if (property == null || type == null) {
+            return super.getMessageWithoutLocationText();
+        }
         final Throwable cause = getCause();
         if (cause == null) {
             if (super.getMessageWithoutLocationText() != null) {
diff --git a/src/test/groovy/lang/MissingPropertyExceptionTest.java b/src/test/groovy/lang/MissingPropertyExceptionTest.java
new file mode 100644
index 0000000..3b6c746
--- /dev/null
+++ b/src/test/groovy/lang/MissingPropertyExceptionTest.java
@@ -0,0 +1,34 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package groovy.lang;
+
+import junit.framework.TestCase;
+
+/**
+ * Provides unit tests for the <code>MissingPropertyException</code> class.
+ */
+public class MissingPropertyExceptionTest extends TestCase {
+
+    public void testNullMessage() {
+        Throwable mpe = new MissingPropertyException(null);
+        assertNull(mpe.getMessage());
+        assertEquals("groovy.lang.MissingPropertyException", mpe.toString());
+    }
+
+}


[groovy] 24/28: fix typo

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 86f0aae076fe1daeb464266ae1b19f50b88fc618
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Dec 28 09:17:53 2018 +1000

    fix typo
---
 src/main/groovy/groovy/transform/NullCheck.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/groovy/groovy/transform/NullCheck.java b/src/main/groovy/groovy/transform/NullCheck.java
index 56ba109..9f007ea 100644
--- a/src/main/groovy/groovy/transform/NullCheck.java
+++ b/src/main/groovy/groovy/transform/NullCheck.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * import groovy.transform.NullCheck
  * import static groovy.test.GroovyAssert.shouldFail
  *
- * {@code @NullCheck)
+ * {@code @NullCheck}
  * class Greeter {
  *     private String audience
  *


[groovy] 25/28: cleanup/remove @author tags as per Apache recommended practices for groovy-test, groovy-xml, parser-antlr4

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 8a176f21a0be150940c2a2abb5de85dfd1526468
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Dec 28 09:52:45 2018 +1000

    cleanup/remove @author tags as per Apache recommended practices for groovy-test, groovy-xml, parser-antlr4
---
 gradle/pomconfigurer.gradle                        | 21 +++++++++++
 .../groovy/groovy/lang/GroovyLogTestCase.groovy    | 43 ++++++++++------------
 .../groovy/groovy/mock/interceptor/Demand.groovy   |  1 -
 .../groovy/groovy/mock/interceptor/Ignore.groovy   |  2 -
 .../mock/interceptor/LooseExpectation.groovy       |  1 -
 .../groovy/groovy/mock/interceptor/MockFor.groovy  |  3 --
 .../groovy/mock/interceptor/MockInterceptor.groovy |  2 -
 .../mock/interceptor/StrictExpectation.groovy      |  1 -
 .../groovy/groovy/mock/interceptor/StubFor.groovy  |  3 --
 .../groovy/groovy/util/GroovyShellTestCase.groovy  |  4 +-
 .../groovy/util/JavadocAssertionTestBuilder.groovy |  2 -
 .../groovy/util/JavadocAssertionTestSuite.groovy   |  2 -
 .../mock/interceptor/MockProxyMetaClass.java       |  2 -
 .../src/main/java/groovy/test/GroovyAssert.java    |  4 --
 .../java/groovy/transform/NotYetImplemented.java   |  4 --
 .../src/main/java/groovy/util/AllTestSuite.java    |  4 --
 .../src/main/java/groovy/util/GroovyTestCase.java  |  5 ---
 .../src/main/java/groovy/util/GroovyTestSuite.java |  2 -
 .../NotYetImplementedASTTransformation.java        |  5 ---
 .../src/test/groovy/GroovyTestCaseTest.groovy      |  2 -
 .../groovy/lang/GroovyLogTestCaseTest.groovy       |  6 +--
 .../groovy/groovy/test/GroovyAssertTest.groovy     |  4 --
 .../groovy/groovy/util/AllTestSuiteTest.groovy     |  1 -
 .../NotYetImplementedTransformTest.groovy          |  4 --
 .../src/main/groovy/groovy/xml/StaxBuilder.groovy  |  3 --
 .../src/main/java/groovy/util/XmlNodePrinter.java  |  1 -
 .../src/main/java/groovy/util/XmlSlurper.java      |  1 -
 .../java/groovy/util/slurpersupport/Attribute.java |  2 -
 .../groovy/util/slurpersupport/Attributes.java     |  2 -
 .../util/slurpersupport/FilteredAttributes.java    |  2 -
 .../util/slurpersupport/FilteredNodeChildren.java  |  2 -
 .../groovy/util/slurpersupport/GPathResult.java    |  2 -
 .../groovy/util/slurpersupport/NoChildren.java     |  2 -
 .../main/java/groovy/util/slurpersupport/Node.java |  2 -
 .../java/groovy/util/slurpersupport/NodeChild.java |  2 -
 .../groovy/util/slurpersupport/NodeChildren.java   |  2 -
 .../groovy/util/slurpersupport/NodeIterator.java   |  2 -
 .../groovy/util/slurpersupport/NodeParents.java    |  2 -
 .../util/slurpersupport/ReplacementNode.java       |  2 -
 .../src/main/java/groovy/xml/DOMBuilder.java       |  2 -
 .../src/main/java/groovy/xml/MarkupBuilder.java    |  4 --
 .../main/java/groovy/xml/MarkupBuilderHelper.java  |  2 -
 .../src/main/java/groovy/xml/NamespaceBuilder.java |  2 -
 .../java/groovy/xml/NamespaceBuilderSupport.java   |  5 ---
 .../src/main/java/groovy/xml/SAXBuilder.java       |  2 -
 .../src/main/java/groovy/xml/XmlUtil.java          |  2 -
 .../src/main/java/groovy/xml/dom/DOMCategory.java  |  3 --
 .../codehaus/groovy/runtime/XmlGroovyMethods.java  |  3 --
 .../org/codehaus/groovy/tools/xml/DomToGroovy.java |  3 --
 .../src/spec/test/UserGuideDOMCategory.groovy      |  2 -
 .../spec/test/UserGuideMarkupBuilderTest.groovy    |  2 -
 .../UserGuideStreamingMarkupBuilderTest.groovy     |  2 -
 .../src/spec/test/UserGuideXmlParserTest.groovy    |  2 -
 .../src/spec/test/UserGuideXmlSlurperTest.groovy   |  2 -
 .../src/spec/test/UserGuideXmlUtilTest.groovy      |  2 -
 .../test/groovy/groovy/bugs/Groovy249_Bug.groovy   |  3 --
 .../test/groovy/groovy/bugs/Groovy593_Bug.groovy   |  3 --
 .../test/groovy/groovy/bugs/TedsClosureBug.groovy  |  3 --
 .../groovy/groovy/xml/BuilderTestSupport.groovy    |  4 --
 .../groovy/xml/GpathSyntaxTestSupport.groovy       |  3 --
 .../groovy/groovy/xml/MarkupBuilderTest.groovy     |  4 --
 .../groovy/xml/StreamingMarkupBuilderTest.groovy   |  3 --
 .../src/test/groovy/groovy/xml/TestXmlSupport.java |  3 --
 .../src/test/groovy/groovy/xml/XmlTest.java        |  3 --
 .../src/test/groovy/groovy/xml/XmlUtilTest.groovy  |  3 --
 .../groovy/groovy/xml/vm6/StaxBuilderTest.groovy   |  3 --
 .../groovy/tools/xml/DomToGroovyTest.groovy        |  4 --
 .../org/apache/groovy/parser/AbstractParser.java   |  3 --
 .../org/apache/groovy/parser/Antlr2Parser.java     |  3 --
 .../org/apache/groovy/parser/Antlr4Parser.java     |  3 --
 .../groovy/parser/antlr4/Antlr4ParserPlugin.java   |  3 --
 .../groovy/parser/antlr4/Antlr4PluginFactory.java  |  3 --
 .../apache/groovy/parser/antlr4/AstBuilder.java    |  3 --
 .../groovy/parser/antlr4/GroovyLangLexer.java      |  3 --
 .../groovy/parser/antlr4/GroovyLangParser.java     |  3 --
 .../antlr4/TryWithResourcesASTTransformation.java  |  3 --
 .../antlr4/internal/DescriptiveErrorStrategy.java  |  3 --
 .../antlr4/internal/atnmanager/AtnManager.java     |  3 --
 .../groovy/parser/antlr4/SyntaxErrorTest.groovy    |  3 --
 .../groovy/parser/antlr4/util/AstDumper.groovy     |  6 ---
 80 files changed, 44 insertions(+), 234 deletions(-)

diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index cc3fb90..f7882fd 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -483,9 +483,30 @@ project.ext.pomConfigureClosureWithoutTweaks = {
                 name 'Ted Naleid'
             }
             contributor {
+                name 'Ted Leung'
+            }
+            contributor {
+                name 'Merrick Schincariol'
+            }
+            contributor {
                 name 'Chanwit Kaewkasi'
             }
             contributor {
+                name 'Stefan Matthias Aust'
+            }
+            contributor {
+                name 'Jochen Eddel+'
+            }
+            contributor {
+                name 'Ilinca V. Hallberg'
+            }
+            contributor {
+                name 'Björn Westlin'
+            }
+            contributor {
+                name 'Andrew Glover'
+            }
+            contributor {
                 name 'Brad Long'
             }
             contributor {
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/lang/GroovyLogTestCase.groovy b/subprojects/groovy-test/src/main/groovy/groovy/lang/GroovyLogTestCase.groovy
index 0fa406e..0205d47 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/lang/GroovyLogTestCase.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/lang/GroovyLogTestCase.groovy
@@ -25,26 +25,24 @@ import java.util.logging.SimpleFormatter
 import java.util.logging.StreamHandler
 
 /**
-Helper class to spoof log entries as produced by calling arbitrary code.
-This allows non-intrusive testing of dependent objects without
-explicitly using Mock objects as long as those dependent objects
-do some proper logging.
-As a measure of last resort, it can be used on MetaClass to spoof
-it's log entries on 'invokeMethod'.
-
-@author Dierk Koenig
-@see GroovyLogTestCaseTest
-**/
-
+ * Helper class to spoof log entries as produced by calling arbitrary code.
+ * This allows non-intrusive testing of dependent objects without
+ * explicitly using Mock objects as long as those dependent objects
+ * do some proper logging.
+ * As a measure of last resort, it can be used on MetaClass to spoof
+ * it's log entries on 'invokeMethod'.
+ *
+ * @see GroovyLogTestCaseTest
+ */
 class GroovyLogTestCase extends GroovyTestCase {
 
     /**
-     Execute the given Closure with the according level for the Logger that
-     is qualified by the qualifier and return the log output as a String.
-     Qualifiers are usually package or class names.
-     Existing log level and handlers are restored after execution.
-    **/
-    static String stringLog (Level level, String qualifier, Closure yield){
+     *      Execute the given Closure with the according level for the Logger that
+     *      is qualified by the qualifier and return the log output as a String.
+     *      Qualifiers are usually package or class names.
+     *      Existing log level and handlers are restored after execution.
+     */
+    static String stringLog(Level level, String qualifier, Closure yield) {
         // store old values
         Logger logger = Logger.getLogger(qualifier)
         def usesParentHandlers = logger.useParentHandlers
@@ -67,12 +65,11 @@ class GroovyLogTestCase extends GroovyTestCase {
     }
 
     /**
-     Execute the given Closure with the according level for the Logger that
-     is qualified by the qualifier. Qualifiers are usually package or class
-     names.
-     The log level is restored after execution.
-    **/
-    static def withLevel(Level level, String qualifier, Closure yield){
+     * Execute the given Closure with the according level for the Logger that
+     * is qualified by the qualifier. Qualifiers are usually package or class names.
+     * The log level is restored after execution.
+     */
+    static def withLevel(Level level, String qualifier, Closure yield) {
         // store old values
         Logger logger = Logger.getLogger(qualifier)
         def loglevel = logger.level
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Demand.groovy b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Demand.groovy
index fc377bf..f06d773 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Demand.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Demand.groovy
@@ -23,7 +23,6 @@ import junit.framework.AssertionFailedError
 /**
  *  The object that registers method calls on it for the use with Mocks and Stubs.
  *  For each call a CallSpec object is added to the recorded list.
- *  @author Dierk Koenig
  */
 
 class Demand {
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Ignore.groovy b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Ignore.groovy
index a62e433..f38d4e5 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Ignore.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/Ignore.groovy
@@ -21,8 +21,6 @@ package groovy.mock.interceptor
 /**
  * Helper object to support convenience "ignore.methodName" notation similar to demand notation.
  * Can't be used with methods within <code>java.lang.Object</code>.
- *
- * @author Paul King
  */
 class Ignore {
 
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/LooseExpectation.groovy b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/LooseExpectation.groovy
index 5e04795..ef97542 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/LooseExpectation.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/LooseExpectation.groovy
@@ -27,7 +27,6 @@ import org.codehaus.groovy.runtime.DefaultGroovyMethods
  *  If a method is demanded multiple times, the ranges are filled by order of recording.
  * 
  *  @see StrictExpectation
- *  @author Dierk Koenig
  */
 class LooseExpectation {
     Demand fDemand  = null
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockFor.groovy b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockFor.groovy
index fae9f09..82f7c98 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockFor.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockFor.groovy
@@ -83,9 +83,6 @@ import java.util.regex.Pattern
  * </ul>
  *
  * See also: {@link StubFor}.
- *
- * @author Dierk Koenig
- * @author Paul King
  */
 class MockFor {
 
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockInterceptor.groovy b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockInterceptor.groovy
index b2f45da..5313c31 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockInterceptor.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/MockInterceptor.groovy
@@ -20,8 +20,6 @@ package groovy.mock.interceptor
 
 /**
  * Intercepting calls to the collaborating object and notify the expectation object.
- *
- * @author Dierk Koenig
  */
 
 class MockInterceptor implements PropertyAccessInterceptor {
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StrictExpectation.groovy b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StrictExpectation.groovy
index 7a0028d..f5eb4ac 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StrictExpectation.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StrictExpectation.groovy
@@ -25,7 +25,6 @@ import org.codehaus.groovy.runtime.DefaultGroovyMethods
  *  Expects demanded call cardinalities to match demanded ranges in the sequence of recording.
  *
  *  @see LooseExpectation
- *  @author Dierk Koenig
  */
 class StrictExpectation {
     Demand fDemand  = null
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StubFor.groovy b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StubFor.groovy
index deb069f..a3a29ee 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StubFor.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/mock/interceptor/StubFor.groovy
@@ -64,9 +64,6 @@ import java.util.regex.Pattern
  * <code>father.first</code> causes a call to <code>father.getFirst()</code> to occur.
  *
  * For a complete list of features, see: {@link MockFor}.
- *
- * @author Dierk Koenig
- * @author Paul King
  */
 class StubFor {
 
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/util/GroovyShellTestCase.groovy b/subprojects/groovy-test/src/main/groovy/groovy/util/GroovyShellTestCase.groovy
index a93cd6a..463aa65 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/util/GroovyShellTestCase.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/util/GroovyShellTestCase.groovy
@@ -19,9 +19,7 @@
 package groovy.util
 
 /**
- * Groovy test case, which recreates internal GroovyShell in each setUp ()
- *
- * @author Alex Tkachman
+ * Groovy test case, which recreates internal GroovyShell in each setUp()
  */
 class GroovyShellTestCase extends GroovyTestCase {
 
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestBuilder.groovy b/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestBuilder.groovy
index 176afcc..8fa5546 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestBuilder.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestBuilder.groovy
@@ -25,8 +25,6 @@ import java.util.regex.Pattern
  * the Javadoc comments of a source file. Assertions should be placed within an html tag with a <code>class="groovyTestCase"</code>
  * attribute assignment. Example:
  * <pre>&lt;pre class="groovyTestCase"&gt; assert "example".size() == 7 &lt;/pre&gt;</pre>
- *
- * @author Merlyn Albery-Speyer
  */
 class JavadocAssertionTestBuilder {
     // TODO write tests for this classes functionality
diff --git a/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestSuite.groovy b/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestSuite.groovy
index e3cc5a7..285428a 100644
--- a/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestSuite.groovy
+++ b/subprojects/groovy-test/src/main/groovy/groovy/util/JavadocAssertionTestSuite.groovy
@@ -43,8 +43,6 @@ import junit.textui.TestRunner
  * </code>
  *
  * <b>Note: this class requires the Ant module at runtime.</b>
- *
- * @author Merlyn Albery-Speyer
  */
 class JavadocAssertionTestSuite extends TestSuite {
     /** The System Property to set as base directory for collection of Classes.
diff --git a/subprojects/groovy-test/src/main/java/groovy/mock/interceptor/MockProxyMetaClass.java b/subprojects/groovy-test/src/main/java/groovy/mock/interceptor/MockProxyMetaClass.java
index 61ec117..d1df519 100644
--- a/subprojects/groovy-test/src/main/java/groovy/mock/interceptor/MockProxyMetaClass.java
+++ b/subprojects/groovy-test/src/main/java/groovy/mock/interceptor/MockProxyMetaClass.java
@@ -30,8 +30,6 @@ import groovy.lang.ProxyMetaClass;
 /**
  * The ProxyMetaClass for the MockInterceptor.
  * Instance and class methods are intercepted, but constructors are not to allow mocking of aggregated objects.
- *
- * @author Dierk Koenig
  */
 
 public class MockProxyMetaClass extends ProxyMetaClass {
diff --git a/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java b/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java
index 3b51b3c..831f64a 100644
--- a/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java
+++ b/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java
@@ -51,10 +51,6 @@ import java.util.logging.Logger;
  * </p>
  *
  * @see groovy.util.GroovyTestCase
- *
- * @author Paul King
- * @author Andre Steingress
- *
  * @since 2.3
  */
 public class GroovyAssert extends org.junit.Assert {
diff --git a/subprojects/groovy-test/src/main/java/groovy/transform/NotYetImplemented.java b/subprojects/groovy-test/src/main/java/groovy/transform/NotYetImplemented.java
index 622b743..253fb71 100644
--- a/subprojects/groovy-test/src/main/java/groovy/transform/NotYetImplemented.java
+++ b/subprojects/groovy-test/src/main/java/groovy/transform/NotYetImplemented.java
@@ -35,10 +35,6 @@ import java.lang.annotation.Target;
  * <p>
  * The idea for this AST transformation originated in {@link groovy.util.GroovyTestCase#notYetImplemented()}.
  *
- * @author Dierk König
- * @author Andre Steingress
- * @author Ilinca V. Hallberg
- * @author Björn Westlin
  * @since 2.0.0
  */
 @java.lang.annotation.Documented
diff --git a/subprojects/groovy-test/src/main/java/groovy/util/AllTestSuite.java b/subprojects/groovy-test/src/main/java/groovy/util/AllTestSuite.java
index 216fe8a..fe06867 100644
--- a/subprojects/groovy-test/src/main/java/groovy/util/AllTestSuite.java
+++ b/subprojects/groovy-test/src/main/java/groovy/util/AllTestSuite.java
@@ -45,10 +45,6 @@ import java.util.logging.Logger;
  * When setting the log level of this class to FINEST, all file loading will be logged.
  * <p>
  * See also groovy.util.AllTestSuiteTest.groovy
- *
- * @author Andrew Glover
- * @author Dierk Koenig
- * @author Paul King
  */
 public class AllTestSuite extends TestSuite {
 
diff --git a/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestCase.java b/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestCase.java
index df563f1..383efcb 100644
--- a/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestCase.java
+++ b/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestCase.java
@@ -33,11 +33,6 @@ import java.util.logging.Logger;
  * In case JUnit 4 is used, see {@link groovy.test.GroovyAssert}.
  *
  * @see groovy.test.GroovyAssert
- *
- * @author <a href="mailto:bob@werken.com">bob mcwhirter</a>
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Dierk Koenig (the notYetImplemented feature, changes to shouldFail)
- * @author Andre Steingress
  */
 public class GroovyTestCase extends TestCase {
 
diff --git a/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestSuite.java b/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestSuite.java
index 4c7dce7..ac16128 100644
--- a/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestSuite.java
+++ b/subprojects/groovy-test/src/main/java/groovy/util/GroovyTestSuite.java
@@ -45,8 +45,6 @@ import java.security.PrivilegedAction;
  * <code>
  * -Dtest=src/test/Foo.groovy
  * </code>
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class GroovyTestSuite extends TestSuite {
 
diff --git a/subprojects/groovy-test/src/main/java/org/codehaus/groovy/transform/NotYetImplementedASTTransformation.java b/subprojects/groovy-test/src/main/java/org/codehaus/groovy/transform/NotYetImplementedASTTransformation.java
index 5824814..c520bfb 100644
--- a/subprojects/groovy-test/src/main/java/org/codehaus/groovy/transform/NotYetImplementedASTTransformation.java
+++ b/subprojects/groovy-test/src/main/java/org/codehaus/groovy/transform/NotYetImplementedASTTransformation.java
@@ -47,11 +47,6 @@ import static org.codehaus.groovy.ast.tools.GeneralUtils.throwS;
  * Handles generation of code for the {@code @NotYetImplemented} annotation.
  * 
  * @see groovy.transform.NotYetImplemented
- *
- * @author Dierk König
- * @author Andre Steingress
- * @author Ilinca V. Hallberg
- * @author Björn Westlin
  */
 @GroovyASTTransformation(phase = CompilePhase.CANONICALIZATION)
 public class NotYetImplementedASTTransformation extends AbstractASTTransformation {
diff --git a/subprojects/groovy-test/src/test/groovy/GroovyTestCaseTest.groovy b/subprojects/groovy-test/src/test/groovy/GroovyTestCaseTest.groovy
index 9ee4c2f..e1093f2 100644
--- a/subprojects/groovy-test/src/test/groovy/GroovyTestCaseTest.groovy
+++ b/subprojects/groovy-test/src/test/groovy/GroovyTestCaseTest.groovy
@@ -20,8 +20,6 @@ import junit.framework.AssertionFailedError
 
 /**
  * Testing the notYetImplemented feature of GroovyTestCase.
- * TODO: testing all other features.
- * @author Dierk Koenig
  */
 class GroovyTestCaseTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-test/src/test/groovy/groovy/lang/GroovyLogTestCaseTest.groovy b/subprojects/groovy-test/src/test/groovy/groovy/lang/GroovyLogTestCaseTest.groovy
index 37d0afd..74d1367 100644
--- a/subprojects/groovy-test/src/test/groovy/groovy/lang/GroovyLogTestCaseTest.groovy
+++ b/subprojects/groovy-test/src/test/groovy/groovy/lang/GroovyLogTestCaseTest.groovy
@@ -22,10 +22,8 @@ import java.util.logging.Level
 import java.util.logging.Logger
 
 /**
-Showing usage of the GroovyLogTestCase
-@author Dierk Koenig
-**/
-
+ * Showing usage of the GroovyLogTestCase
+ */
 class GroovyLogTestCaseTest extends GroovyLogTestCase {
 
     static final LOG = Logger.getLogger('groovy.lang.GroovyLogTestCaseTest')
diff --git a/subprojects/groovy-test/src/test/groovy/groovy/test/GroovyAssertTest.groovy b/subprojects/groovy-test/src/test/groovy/groovy/test/GroovyAssertTest.groovy
index 2238ffd..0c2bfde 100644
--- a/subprojects/groovy-test/src/test/groovy/groovy/test/GroovyAssertTest.groovy
+++ b/subprojects/groovy-test/src/test/groovy/groovy/test/GroovyAssertTest.groovy
@@ -21,10 +21,6 @@ package groovy.test
 import org.junit.Test
 import static groovy.test.GroovyAssert.*
 
-/**
- * @author Paul King
- * @author Andre Steingress
- */
 class GroovyAssertTest {
 
     @Test
diff --git a/subprojects/groovy-test/src/test/groovy/groovy/util/AllTestSuiteTest.groovy b/subprojects/groovy-test/src/test/groovy/groovy/util/AllTestSuiteTest.groovy
index cdae63d..63e9ede 100644
--- a/subprojects/groovy-test/src/test/groovy/groovy/util/AllTestSuiteTest.groovy
+++ b/subprojects/groovy-test/src/test/groovy/groovy/util/AllTestSuiteTest.groovy
@@ -26,7 +26,6 @@ import java.util.logging.Level
  * add found files to the log,
  * produce a proper TestSuite,
  * and wrap Scripts into TestCases.
- * @author Dierk Koenig
  */
 class AllTestSuiteTest extends GroovyLogTestCase {
 
diff --git a/subprojects/groovy-test/src/test/groovy/org/codehaus/groovy/transform/NotYetImplementedTransformTest.groovy b/subprojects/groovy-test/src/test/groovy/org/codehaus/groovy/transform/NotYetImplementedTransformTest.groovy
index 4e6bf37..50fb658 100644
--- a/subprojects/groovy-test/src/test/groovy/org/codehaus/groovy/transform/NotYetImplementedTransformTest.groovy
+++ b/subprojects/groovy-test/src/test/groovy/org/codehaus/groovy/transform/NotYetImplementedTransformTest.groovy
@@ -20,10 +20,6 @@ package org.codehaus.groovy.transform
 
 import junit.framework.AssertionFailedError
 
-/**
- * @author Dierk König
- * @author Andre Steingress
- */
 class NotYetImplementedTransformTest extends GroovyShellTestCase {
 
     void testNotYetImplemented() {
diff --git a/subprojects/groovy-xml/src/main/groovy/groovy/xml/StaxBuilder.groovy b/subprojects/groovy-xml/src/main/groovy/groovy/xml/StaxBuilder.groovy
index 91dac1e..0aa5b19 100644
--- a/subprojects/groovy-xml/src/main/groovy/groovy/xml/StaxBuilder.groovy
+++ b/subprojects/groovy-xml/src/main/groovy/groovy/xml/StaxBuilder.groovy
@@ -50,9 +50,6 @@ package groovy.xml
  * }
  * assert writer.toString() == '''{"root1":{"@a":"5","@b":"7","elem1":"hello1","elem2":"hello2","elem3":{"@x":"7"}}}'''
  * </pre>
- *
- * @author <a href="dejan@nighttale.net">Dejan Bosanac</a>
- * @author Paul King
  */
 public class StaxBuilder extends BuilderSupport {
 
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/XmlNodePrinter.java b/subprojects/groovy-xml/src/main/java/groovy/util/XmlNodePrinter.java
index f6c4fde..eac1b00 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/XmlNodePrinter.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/XmlNodePrinter.java
@@ -42,7 +42,6 @@ import java.util.Map;
  * &lt;/body&gt;
  * </pre>
  *
- * @author Christian Stein
  * @see groovy.util.NodePrinter
  * @see groovy.xml.XmlUtil#serialize(Node)
  */
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/XmlSlurper.java b/subprojects/groovy-xml/src/main/java/groovy/util/XmlSlurper.java
index ee93474..a154cf0 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/XmlSlurper.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/XmlSlurper.java
@@ -76,7 +76,6 @@ import java.util.Stack;
  * rootNode.a.each { assert it.text() in ['one!','two!'] }
  * </pre>
  *
- * @author John Wilson
  * @see GPathResult
  */
 public class XmlSlurper extends DefaultHandler {
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attribute.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attribute.java
index 9d57662..1172e01 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attribute.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attribute.java
@@ -30,8 +30,6 @@ import java.util.Map;
 
 /**
  * Lazy evaluated representation of a node attribute.
- *
- * @author John Wilson
  */
 public class Attribute extends GPathResult {
     private final String value;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attributes.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attributes.java
index d4fa5d4..3ad93f7 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attributes.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Attributes.java
@@ -32,8 +32,6 @@ import java.util.Map;
 
 /**
  * Lazy evaluated representation of a node's attributes.
- *
- * @author John Wilson
  */
 public class Attributes extends NodeChildren {
     final String attributeName;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredAttributes.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredAttributes.java
index b920970..353b100 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredAttributes.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredAttributes.java
@@ -26,8 +26,6 @@ import java.util.Map;
 
 /**
  * Lazy evaluated representation of a node's attributes filtered by a Closure.
- *
- * @author John Wilson
  */
 public class FilteredAttributes extends Attributes
 {
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredNodeChildren.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredNodeChildren.java
index b6c4590..0bc1d2e 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredNodeChildren.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/FilteredNodeChildren.java
@@ -26,8 +26,6 @@ import java.util.Map;
 
 /**
  * Lazy evaluated representation of child nodes filtered by a Closure.
- *
- * @author John Wilson
  */
 public class FilteredNodeChildren extends NodeChildren {
     private final Closure closure;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/GPathResult.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/GPathResult.java
index 5bf5a2a..3e37a1c 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/GPathResult.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/GPathResult.java
@@ -47,8 +47,6 @@ import java.util.Stack;
 
 /**
  * Base class for representing lazy evaluated GPath expressions.
- *
- * @author John Wilson
  */
 public abstract class GPathResult extends GroovyObjectSupport implements Writable, Buildable, Iterable {
     protected final GPathResult parent;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NoChildren.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NoChildren.java
index 0401b87..92ad881 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NoChildren.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NoChildren.java
@@ -32,8 +32,6 @@ import java.util.Map;
  *
  * As this class represents a GPath expression with no results, all methods
  * are either NOPs or return an empty result.
- *
- * @author John Wilson
  */
 public class NoChildren extends GPathResult {
 
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Node.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Node.java
index ed2202b..23e7cb7 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Node.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/Node.java
@@ -35,8 +35,6 @@ import java.util.Stack;
 
 /**
  * Represents a node.
- *
- * @author John Wilson
  */
 public class Node implements Writable {
     private final String name;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChild.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChild.java
index 2843262..38b3287 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChild.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChild.java
@@ -31,8 +31,6 @@ import java.util.Map;
 
 /**
  * Lazy evaluated representation of a child node.
- *
- * @author John Wilson
  */
 public class NodeChild extends GPathResult {
     private final Node node;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChildren.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChildren.java
index f6ea038..bef9567 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChildren.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeChildren.java
@@ -31,8 +31,6 @@ import java.util.Map;
 
 /**
  * Lazy evaluated representation of child nodes.
- *
- * @author John Wilson
  */
 public class NodeChildren extends GPathResult {
     private int size = -1;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeIterator.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeIterator.java
index 00fbba8..beecd21 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeIterator.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeIterator.java
@@ -22,8 +22,6 @@ import java.util.Iterator;
 
 /**
  * Helper class for iterating through nodes.
- * 
- * @author John Wilson
  */
 public abstract class NodeIterator implements Iterator {
     private static final Object DELAYED_INIT = new Object();
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeParents.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeParents.java
index c045cfa..f8de7c1 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeParents.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/NodeParents.java
@@ -23,8 +23,6 @@ import java.util.Map;
 
 /**
 * Lazy evaluated representation of parent nodes without duplicates
-*
-* @author Jochen Eddel+
 */
 public class NodeParents extends NodeChildren {
     
diff --git a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/ReplacementNode.java b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/ReplacementNode.java
index 5fdbc87..c28e3a0 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/ReplacementNode.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/util/slurpersupport/ReplacementNode.java
@@ -28,8 +28,6 @@ import java.util.Map;
 
 /**
  * Helper base class used for lazy updates.
- *
- * @author John Wilson
  */
 public abstract class ReplacementNode implements Buildable, Writable {
     public abstract void build(GroovyObject builder, Map namespaceMap, Map<String, String> namespaceTagHints);
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java b/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java
index 9c910cf..f1fd975 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java
@@ -37,8 +37,6 @@ import java.util.Map;
 
 /**
  * A helper class for creating a W3C DOM tree
- *
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class DOMBuilder extends BuilderSupport {
 
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilder.java b/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilder.java
index 2190088..d67e842 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilder.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilder.java
@@ -54,10 +54,6 @@ import java.util.Map;
  * See the javadoc for {@link #getMkp()} for further details.</li>
  *     <li>Note that tab, newline and carriage return characters are escaped within attributes, i.e. will become &amp;#09;, &amp;#10; and &amp;#13; respectively</li>
  * </ul>
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Stefan Matthias Aust
- * @author <a href="mailto:scottstirling@rcn.com">Scott Stirling</a>
- * @author Paul King
  */
 public class MarkupBuilder extends BuilderSupport {
     private IndentPrinter out;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilderHelper.java b/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilderHelper.java
index 173f5f5..bed8872 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilderHelper.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/MarkupBuilderHelper.java
@@ -23,8 +23,6 @@ import java.util.Map;
 
 /**
  * A helper class for MarkupBuilder.
- *
- * @author Paul King
  */
 public class MarkupBuilderHelper {
     private final MarkupBuilder builder;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilder.java b/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilder.java
index 1df2239..263e095 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilder.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilder.java
@@ -24,8 +24,6 @@ import java.util.Map;
 
 /**
  * A helper class for creating namespaces for GroovyMarkup
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class NamespaceBuilder {
 
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilderSupport.java b/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilderSupport.java
index 51129c7..4b56e58 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilderSupport.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/NamespaceBuilderSupport.java
@@ -30,11 +30,6 @@ import java.util.Map;
 
 /**
  * A helper class for creating namespaced GroovyMarkup
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- * @author Paul King
- * @author Denver Dino
- * @author Marc Guillemot
  */
 public class NamespaceBuilderSupport extends BuilderSupport {
     private boolean autoPrefix;
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java b/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java
index 037b8a0..c901f8d 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java
@@ -30,8 +30,6 @@ import java.util.Map;
 
 /**
  * A builder for generating W3C SAX events.  Use similar to MarkupBuilder.
- * 
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
  */
 public class SAXBuilder extends BuilderSupport {
 
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/XmlUtil.java b/subprojects/groovy-xml/src/main/java/groovy/xml/XmlUtil.java
index fcdabcc..0594fd1 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/XmlUtil.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/XmlUtil.java
@@ -55,8 +55,6 @@ import java.net.URL;
 
 /**
  * Used for pretty printing XML content and other XML related utilities.
- *
- * @author Paul King
  */
 public class XmlUtil {
     /**
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java b/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java
index 71fb4d3..95eca0d 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java
@@ -45,9 +45,6 @@ import java.util.Map;
 
 /**
  * Category class which adds GPath style operations to Java's DOM classes.
- *
- * @author sam
- * @author paulk
  */
 public class DOMCategory {
     private static boolean trimWhitespace = false;
diff --git a/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/runtime/XmlGroovyMethods.java b/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/runtime/XmlGroovyMethods.java
index 666d7b6..5c1c093 100644
--- a/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/runtime/XmlGroovyMethods.java
+++ b/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/runtime/XmlGroovyMethods.java
@@ -29,9 +29,6 @@ import java.util.Iterator;
  * This class defines all the new XML-related groovy methods which enhance
  * the normal JDK XML classes when inside the Groovy environment.
  * Static methods are used with the first parameter the destination class.
- *
- * @author Paul King
- * @author Jochen Theodorou
  */
 public class XmlGroovyMethods {
 
diff --git a/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/tools/xml/DomToGroovy.java b/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/tools/xml/DomToGroovy.java
index 10f42c4..d4d8dc9 100644
--- a/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/tools/xml/DomToGroovy.java
+++ b/subprojects/groovy-xml/src/main/java/org/codehaus/groovy/tools/xml/DomToGroovy.java
@@ -47,9 +47,6 @@ import java.util.Map;
 
 /**
  * A SAX handler for turning XML into Groovy scripts
- * 
- * @author James Strachan
- * @author paulk
  */
 public class DomToGroovy {
 
diff --git a/subprojects/groovy-xml/src/spec/test/UserGuideDOMCategory.groovy b/subprojects/groovy-xml/src/spec/test/UserGuideDOMCategory.groovy
index c22df5a..40754fa 100644
--- a/subprojects/groovy-xml/src/spec/test/UserGuideDOMCategory.groovy
+++ b/subprojects/groovy-xml/src/spec/test/UserGuideDOMCategory.groovy
@@ -23,8 +23,6 @@ import groovy.xml.dom.DOMCategory
 
 /**
 * Tests for the Groovy Xml user guide related to DOMCategory.
-*
-* @author Groovy Documentation Community
 */
 class UserGuideDOMCategoryTest  extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/spec/test/UserGuideMarkupBuilderTest.groovy b/subprojects/groovy-xml/src/spec/test/UserGuideMarkupBuilderTest.groovy
index 792dac9..e872053 100644
--- a/subprojects/groovy-xml/src/spec/test/UserGuideMarkupBuilderTest.groovy
+++ b/subprojects/groovy-xml/src/spec/test/UserGuideMarkupBuilderTest.groovy
@@ -23,8 +23,6 @@ import org.codehaus.groovy.tools.xml.DomToGroovy
 
 /**
 * Tests for the Groovy Xml user guide related to MarkupBuilderTest.
-*
-* @author Groovy Documentation Community
 */
 class UserGuideMarkupBuilderTest  extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/spec/test/UserGuideStreamingMarkupBuilderTest.groovy b/subprojects/groovy-xml/src/spec/test/UserGuideStreamingMarkupBuilderTest.groovy
index db64e98..a0681bd 100644
--- a/subprojects/groovy-xml/src/spec/test/UserGuideStreamingMarkupBuilderTest.groovy
+++ b/subprojects/groovy-xml/src/spec/test/UserGuideStreamingMarkupBuilderTest.groovy
@@ -22,8 +22,6 @@ import groovy.xml.StreamingMarkupBuilder
 
 /**
 * Tests for the Groovy Xml user guide related to StreamingMarkupBuilderTest.
-*
-* @author Groovy Documentation Community
 */
 class UserGuideStreamingMarkupBuilderTest  extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/spec/test/UserGuideXmlParserTest.groovy b/subprojects/groovy-xml/src/spec/test/UserGuideXmlParserTest.groovy
index b788413..ffbfea3 100644
--- a/subprojects/groovy-xml/src/spec/test/UserGuideXmlParserTest.groovy
+++ b/subprojects/groovy-xml/src/spec/test/UserGuideXmlParserTest.groovy
@@ -22,8 +22,6 @@ import groovy.util.GroovyTestCase
 
 /**
 * Tests for the Groovy Xml user guide related to XmlParser.
-*
-* @author Groovy Documentation Community
 */
 class UserGuideXmlParserTest  extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/spec/test/UserGuideXmlSlurperTest.groovy b/subprojects/groovy-xml/src/spec/test/UserGuideXmlSlurperTest.groovy
index 13e7252..fd9aa34 100644
--- a/subprojects/groovy-xml/src/spec/test/UserGuideXmlSlurperTest.groovy
+++ b/subprojects/groovy-xml/src/spec/test/UserGuideXmlSlurperTest.groovy
@@ -22,8 +22,6 @@ import groovy.util.GroovyTestCase
 
 /**
 * Tests for the Groovy Xml user guide related to XmlSlurper.
-*
-* @author Groovy Documentation Community
 */
 class UserGuideXmlSlurperTest  extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/spec/test/UserGuideXmlUtilTest.groovy b/subprojects/groovy-xml/src/spec/test/UserGuideXmlUtilTest.groovy
index c519376..bb6ab46 100644
--- a/subprojects/groovy-xml/src/spec/test/UserGuideXmlUtilTest.groovy
+++ b/subprojects/groovy-xml/src/spec/test/UserGuideXmlUtilTest.groovy
@@ -22,8 +22,6 @@ import groovy.util.GroovyTestCase
 
 /**
 * Tests for the Groovy Xml user guide related to XmlUtil.
-*
-* @author Groovy Documentation Community
 */
 class UserGuideXmlUtilTest  extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy249_Bug.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy249_Bug.groovy
index 073559a..b7c54b3 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy249_Bug.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy249_Bug.groovy
@@ -20,9 +20,6 @@ package groovy.bugs
 
 import groovy.xml.MarkupBuilder
 
-/**
- * @author Merrick Schincariol 
- */
 class Groovy249_Bug extends GroovyTestCase {
 
     void testBug() {
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy593_Bug.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy593_Bug.groovy
index 46a8f03..0179a19 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy593_Bug.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/bugs/Groovy593_Bug.groovy
@@ -22,9 +22,6 @@ import groovy.xml.MarkupBuilder
 
 /**
  * Tests that special XML chars are made into entities by MarkupBuilder.
- *
- * @author <a href="mailto:scottstirling@rcn.com">Scott Stirling</a>
- * @author Pilho Kim
  */
 class Groovy593_Bug extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/bugs/TedsClosureBug.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/bugs/TedsClosureBug.groovy
index e111f53..44a20c9 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/bugs/TedsClosureBug.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/bugs/TedsClosureBug.groovy
@@ -20,9 +20,6 @@ package groovy.bugs
 
 import groovy.xml.MarkupBuilder
 
-/**
- * @author Ted Leung
- */
 class TedsClosureBug extends GroovyTestCase {
     def EXPECTED= '''<atom>
   <title>Ted Leung off the air</title>
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/BuilderTestSupport.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/xml/BuilderTestSupport.groovy
index 761e034..05bafea 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/BuilderTestSupport.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/BuilderTestSupport.groovy
@@ -23,10 +23,6 @@ import org.custommonkey.xmlunit.Diff
 
 /**
  * Common test cases for StreamingMarkupBuilder and MarkupBuilder.
- *
- * @author Paul King
- * @author Scott Stirling
- * @author Pilho Kim
  */
 abstract class BuilderTestSupport extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/GpathSyntaxTestSupport.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/xml/GpathSyntaxTestSupport.groovy
index 4354800..614a292 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/GpathSyntaxTestSupport.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/GpathSyntaxTestSupport.groovy
@@ -22,9 +22,6 @@ import org.custommonkey.xmlunit.XMLUnit
 import org.custommonkey.xmlunit.Diff
 import groovy.xml.XmlUtil
 
-/**
- * @author Paul King
- */
 class GpathSyntaxTestSupport {
     private static final sampleXml = '''
 <characters>
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/MarkupBuilderTest.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/xml/MarkupBuilderTest.groovy
index 5c14775..94dbead 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/MarkupBuilderTest.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/MarkupBuilderTest.groovy
@@ -22,10 +22,6 @@ package groovy.xml
  * Tests for MarkupBuilder. The tests directly in this file are specific
  * to MarkupBuilder. Functionality in common with StreamingMarkupBuilder
  * is tested in the BuilderTestSupport parent class.
- *
- *   @author Scott Stirling
- *   @author Pilho Kim
- *   @author Paul King
  */
 class MarkupBuilderTest extends BuilderTestSupport {
     private StringWriter writer
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/StreamingMarkupBuilderTest.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/xml/StreamingMarkupBuilderTest.groovy
index 06cc25e..e83b6ab 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/StreamingMarkupBuilderTest.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/StreamingMarkupBuilderTest.groovy
@@ -22,9 +22,6 @@ package groovy.xml
  * Tests for StreamingMarkupBuilder. The tests directly in this file
  * are specific to StreamingMarkupBuilder. Functionality in common with
  * MarkupBuilder is tested in the BuilderTestSupport parent class.
- *
- *   @author John Wilson
- *   @author Paul King
  */
 class StreamingMarkupBuilderTest extends BuilderTestSupport {
 
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/TestXmlSupport.java b/subprojects/groovy-xml/src/test/groovy/groovy/xml/TestXmlSupport.java
index 51d5178..098a914 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/TestXmlSupport.java
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/TestXmlSupport.java
@@ -27,9 +27,6 @@ import org.xml.sax.helpers.DefaultHandler;
 
 import java.io.IOException;
 
-/**
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- */
 public abstract class TestXmlSupport extends TestSupport {
 
     protected void dump(Node node) throws IOException {
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlTest.java b/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlTest.java
index fd403c6..f85e727 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlTest.java
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlTest.java
@@ -20,9 +20,6 @@ package groovy.xml;
 
 import groovy.util.GroovyTestCase;
 
-/**
- * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
- */
 public class XmlTest extends GroovyTestCase {
 
 //    public void testTree() throws Exception {
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlUtilTest.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlUtilTest.groovy
index 07d41e7..fc3f479 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlUtilTest.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlUtilTest.groovy
@@ -29,9 +29,6 @@ import static groovy.xml.XmlUtil.escapeControlCharacters
 import static groovy.xml.XmlUtil.escapeXml
 import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI
 
-/**
- * @author Paul King
- */
 class XmlUtilTest extends GroovyTestCase {
     def xml = """\
     <?xml version="1.0" encoding="UTF-8"?>
diff --git a/subprojects/groovy-xml/src/test/groovy/groovy/xml/vm6/StaxBuilderTest.groovy b/subprojects/groovy-xml/src/test/groovy/groovy/xml/vm6/StaxBuilderTest.groovy
index 9937cef..0777cbd 100644
--- a/subprojects/groovy-xml/src/test/groovy/groovy/xml/vm6/StaxBuilderTest.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/groovy/xml/vm6/StaxBuilderTest.groovy
@@ -27,9 +27,6 @@ import org.custommonkey.xmlunit.Diff
 
 /**
  * Tests Stax builder with XML
- * 
- * @author <a href="dejan@nighttale.net">Dejan Bosanac</a>
- * @author Paul King
  */
 class StaxBuilderTest extends GroovyTestCase {
 
diff --git a/subprojects/groovy-xml/src/test/groovy/org/codehaus/groovy/tools/xml/DomToGroovyTest.groovy b/subprojects/groovy-xml/src/test/groovy/org/codehaus/groovy/tools/xml/DomToGroovyTest.groovy
index 351a9dc..8c327f9 100644
--- a/subprojects/groovy-xml/src/test/groovy/org/codehaus/groovy/tools/xml/DomToGroovyTest.groovy
+++ b/subprojects/groovy-xml/src/test/groovy/org/codehaus/groovy/tools/xml/DomToGroovyTest.groovy
@@ -24,10 +24,6 @@ import org.w3c.dom.Document
 import org.xml.sax.InputSource
 import org.xml.sax.SAXException
 
-/**
- * @author James Strachan
- * @author paulk
- */
 class DomToGroovyTest extends GroovyTestCase {
 
     private static final String TEST_XML_1 =
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/AbstractParser.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/AbstractParser.java
index 5575f0f..ccdb0e3 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/AbstractParser.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/AbstractParser.java
@@ -33,9 +33,6 @@ import java.util.logging.Logger;
 /**
  * The base parser for creating a module node.
  * The concrete compiler configuration can be specified by the sub-classes of the base parser(e.g. Antlr2Parser, Antlr4Parser)
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/08/14
  */
 public abstract class AbstractParser {
     private static final Logger LOGGER = Logger.getLogger(AbstractParser.class.getName());
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
index 6567896..d1a1436 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
@@ -22,9 +22,6 @@ import org.codehaus.groovy.control.CompilerConfiguration;
 
 /**
  * The Antlr2 parser for creating a module node.
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/08/14
  */
 public class Antlr2Parser extends AbstractParser {
     @Override
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
index 8c13e57..96df593 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
@@ -23,9 +23,6 @@ import org.codehaus.groovy.control.CompilerConfiguration;
 
 /**
  * The Antlr4 parser for creating a module node.
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/08/14
  */
 public class Antlr4Parser extends AbstractParser {
     private final CompilerConfiguration compilerConfiguration;
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java
index abd21f2..fa6b381 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java
@@ -35,9 +35,6 @@ import java.io.Reader;
 
 /**
  * A parser plugin for the new parser
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/08/14
  */
 public class Antlr4ParserPlugin implements ParserPlugin {
     private ReaderSource readerSource;
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java
index 2aeca9d..24363d5 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java
@@ -24,9 +24,6 @@ import org.codehaus.groovy.control.ParserPluginFactory;
 
 /**
  * A parser plugin factory for the new parser
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/08/14
  */
 public class Antlr4PluginFactory extends ParserPluginFactory {
     private CompilerConfiguration compilerConfiguration;
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
index 5f2d31d..007b8e2 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
@@ -353,9 +353,6 @@ import static org.codehaus.groovy.runtime.DefaultGroovyMethods.last;
 
 /**
  * Building the AST from the parse tree generated by Antlr4
- *
- * @author <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- *         Created on 2016/08/14
  */
 public class AstBuilder extends GroovyParserBaseVisitor<Object> implements GroovyParserVisitor<Object> {
 
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangLexer.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangLexer.java
index bd8c408..00af504 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangLexer.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangLexer.java
@@ -31,9 +31,6 @@ import java.io.Reader;
 
 /**
  * The lexer for Groovy programming language, which is based on the lexer generated by Antlr4
- *
- * @author <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on 2016/08/14
  */
 public class GroovyLangLexer extends GroovyLexer {
     public GroovyLangLexer(Reader reader) throws IOException {
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangParser.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangParser.java
index 6bfee3f..d004a70 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangParser.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovyLangParser.java
@@ -24,9 +24,6 @@ import org.apache.groovy.parser.antlr4.internal.atnmanager.ParserAtnManager;
 
 /**
  * The parser for Groovy programming language, which is based on the parser generated by Antlr4
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/08/14
  */
 public class GroovyLangParser extends GroovyParser {
     public GroovyLangParser(TokenStream input) {
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java
index 4ec500b..b327a32 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java
@@ -48,9 +48,6 @@ import static org.codehaus.groovy.syntax.Token.newSymbol;
 /**
  * Transform try-with-resources to try-catch-finally
  * Reference JLS "14.20.3. try-with-resources"(https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html)
- *
- * @author <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- *         Created on 2016/11/04
  */
 public class TryWithResourcesASTTransformation {
     private AstBuilder astBuilder;
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/DescriptiveErrorStrategy.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/DescriptiveErrorStrategy.java
index ddb0665..97bfb5a 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/DescriptiveErrorStrategy.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/DescriptiveErrorStrategy.java
@@ -34,9 +34,6 @@ import org.antlr.v4.runtime.misc.ParseCancellationException;
 
 /**
  * Provide friendly error messages when parsing errors occurred.
- *
- * @author <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- *         Created on 2016/10/19
  */
 public class DescriptiveErrorStrategy extends BailErrorStrategy {
     private CharStream charStream;
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java
index dff64e7..d3f9860 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java
@@ -25,9 +25,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 /**
  * Manage ATN to avoid memory leak
- *
- * @author <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on 2016/08/14
  */
 public abstract class AtnManager {
     private static final ReentrantReadWriteLock RRWL = new ReentrantReadWriteLock(true);
diff --git a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/SyntaxErrorTest.groovy b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/SyntaxErrorTest.groovy
index 04b5b95..6db980d 100644
--- a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/SyntaxErrorTest.groovy
+++ b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/SyntaxErrorTest.groovy
@@ -22,9 +22,6 @@ import org.apache.groovy.parser.antlr4.util.ASTComparatorCategory
 
 /**
  * Some syntax error test cases for the new parser
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/09/02
  */
 class SyntaxErrorTest extends GroovyTestCase {
     public static final String RESOURCES_PATH = 'src/test/resources'
diff --git a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/util/AstDumper.groovy b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/util/AstDumper.groovy
index 0fa5ca9..4c2583d 100644
--- a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/util/AstDumper.groovy
+++ b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/util/AstDumper.groovy
@@ -101,9 +101,6 @@ import java.lang.reflect.Modifier
 /**
  * Generate the groovy source according to the AST.
  * It is useful to verify the equality of new and old parser.
- *
- * @author  <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on    2016/08/16
  */
 @CompileStatic
 class AstDumper {
@@ -146,10 +143,7 @@ class AstDumper {
  * we have to copy the source code(instead of invoking it): subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstNodeToScriptAdapter.groovy
  * *****************************************************
  *
- *
  * An adapter from ASTNode tree to source code.
- *
- * @author Hamlet D'Arcy
  */
 @CompileStatic
 class AstNodeToScriptVisitor extends CompilationUnit.PrimaryClassNodeOperation implements GroovyCodeVisitor, GroovyClassVisitor {


[groovy] 18/28: GROOVY-8843: Fix illegal reflective access within o.c.g.vmplugin.v7.Java7 (closes #811)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit f40f76af134b6d5fd2d466d410ac48ad907e3b15
Author: Paul King <pa...@asert.com.au>
AuthorDate: Mon Oct 15 18:12:45 2018 +1000

    GROOVY-8843: Fix illegal reflective access within o.c.g.vmplugin.v7.Java7 (closes #811)
---
 build.gradle                                       |  6 +-
 .../org/codehaus/groovy/vmplugin/v7/Java7.java     | 67 +++++++++++-----------
 .../org/codehaus/groovy/vmplugin/v9/Java9.java     | 66 ++++++++++++++++++++-
 3 files changed, 103 insertions(+), 36 deletions(-)

diff --git a/build.gradle b/build.gradle
index b36eb55..36db7ba 100644
--- a/build.gradle
+++ b/build.gradle
@@ -414,11 +414,11 @@ task checkCompatibility {
     }
 }
 
-if (!JavaVersion.current().java8Compatible) {
+if (!JavaVersion.current().java9Compatible) {
     logger.lifecycle '''
     **************************************** WARNING ********************************************
-    ******   You are running the build with an older JDK. NEVER try to release with 1.7.   ******
-    ******   You must use a JDK 1.8+ in order to compile all features of the language.     ******
+    ******   You are running the build with an older JDK. NEVER try to release with 1.8.   ******
+    ******   You must use a JDK 1.9+ in order to compile all features of the language.     ******
     *********************************************************************************************
 '''
 }
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v7/Java7.java b/src/main/java/org/codehaus/groovy/vmplugin/v7/Java7.java
index 11a2091..8694d38 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v7/Java7.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v7/Java7.java
@@ -29,40 +29,44 @@ import java.security.AccessController;
 import java.security.PrivilegedAction;
 
 /**
- * Java 7 based functions. Currently just a stub but you can
- * add your own methods to your own version and place it on the classpath
- * ahead of this one.
+ * Java 7 based functions.
  *
- * @author Jochen Theodorou
+ * For crude customization, you can add your own methods to your own version and place it on the classpath ahead of this one.
  */
 public class Java7 extends Java6 {
-    private static final Constructor<MethodHandles.Lookup> LOOKUP_Constructor;
-    static {
-        Constructor<MethodHandles.Lookup> con = null;
-        try {
-            con = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class, int.class);
-        } catch (NoSuchMethodException e) {
-            throw new GroovyBugError(e);
-        }
-        try {
-            if (!con.isAccessible()) {
-                final Constructor tmp = con;
-                AccessController.doPrivileged(new PrivilegedAction() {
-                    @Override
-                    public Object run() {
-                        tmp.setAccessible(true);
-                        return null;
-                    }
-                });
+    private static class LookupHolder {
+        private static final Constructor<MethodHandles.Lookup> LOOKUP_Constructor;
+        static {
+            Constructor<MethodHandles.Lookup> con = null;
+            try {
+                con = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class, int.class);
+            } catch (NoSuchMethodException e) {
+                throw new GroovyBugError(e);
             }
-        } catch (SecurityException se) {
-            con = null;
-        } catch (RuntimeException re) {
-            // test for JDK9 JIGSAW
-            if (!"java.lang.reflect.InaccessibleObjectException".equals(re.getClass().getName())) throw re;
-            con = null;
+            try {
+                if (!con.isAccessible()) {
+                    final Constructor tmp = con;
+                    AccessController.doPrivileged(new PrivilegedAction() {
+                        @Override
+                        public Object run() {
+                            tmp.setAccessible(true);
+                            return null;
+                        }
+                    });
+                }
+            } catch (SecurityException se) {
+                con = null;
+            } catch (RuntimeException re) {
+                // test for JDK9 JIGSAW
+                if (!"java.lang.reflect.InaccessibleObjectException".equals(re.getClass().getName())) throw re;
+                con = null;
+            }
+            LOOKUP_Constructor = con;
         }
-        LOOKUP_Constructor = con;
+    }
+
+    private static Constructor<MethodHandles.Lookup> getLookupConstructor() {
+        return LookupHolder.LOOKUP_Constructor;
     }
 
     @Override
@@ -77,7 +81,7 @@ public class Java7 extends Java6 {
 
     @Override
     public Object getInvokeSpecialHandle(final Method method, final Object receiver) {
-        if (LOOKUP_Constructor==null) {
+        if (getLookupConstructor() == null) {
             return super.getInvokeSpecialHandle(method, receiver);
         }
         if (!method.isAccessible()) {
@@ -91,8 +95,7 @@ public class Java7 extends Java6 {
         }
         Class declaringClass = method.getDeclaringClass();
         try {
-            return LOOKUP_Constructor.
-                    newInstance(declaringClass, -1).
+            return getLookupConstructor().newInstance(declaringClass, -1).
                     unreflectSpecial(method, declaringClass).
                     bindTo(receiver);
         } catch (ReflectiveOperationException e) {
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
index 7468581..290a654 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
@@ -18,14 +18,78 @@
  */
 package org.codehaus.groovy.vmplugin.v9;
 
+import org.codehaus.groovy.GroovyBugError;
 import org.codehaus.groovy.vmplugin.v8.Java8;
 
+import java.lang.invoke.MethodHandles;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
 /**
- * Java 9 based functions will be added here if needed.
+ * Additional Java 9 based functions will be added here as needed.
  */
 public class Java9 extends Java8 {
+
+    private static class LookupHolder {
+        private static final Method PRIVATE_LOOKUP;
+        private static final Constructor<MethodHandles.Lookup> LOOKUP_Constructor;
+        static {
+            Constructor<MethodHandles.Lookup> lookup = null;
+            Method privateLookup = null;
+            try { // java 9
+                privateLookup = MethodHandles.class.getMethod("privateLookupIn", Class.class, MethodHandles.Lookup.class);
+            } catch (final NoSuchMethodException | RuntimeException e) { // java 8 or fallback if anything else goes wrong
+                try {
+                    lookup = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class, Integer.TYPE);
+                    if (!lookup.isAccessible()) {
+                        lookup.setAccessible(true);
+                    }
+                } catch (final NoSuchMethodException ex) {
+                    throw new IllegalStateException("Incompatible JVM", e);
+                }
+            }
+            PRIVATE_LOOKUP = privateLookup;
+            LOOKUP_Constructor = lookup;
+        }
+    }
+
+    private static Constructor<MethodHandles.Lookup> getLookupConstructor() {
+        return LookupHolder.LOOKUP_Constructor;
+    }
+
+    private static Method getPrivateLookup() {
+        return LookupHolder.PRIVATE_LOOKUP;
+    }
+
+    public static MethodHandles.Lookup of(final Class<?> declaringClass) {
+        try {
+            if (getPrivateLookup() != null) {
+                return MethodHandles.Lookup.class.cast(getPrivateLookup().invoke(null, declaringClass, MethodHandles.lookup()));
+            }
+            return getLookupConstructor().newInstance(declaringClass, MethodHandles.Lookup.PRIVATE).in(declaringClass);
+        } catch (final IllegalAccessException | InstantiationException e) {
+            throw new IllegalArgumentException(e);
+        } catch (final InvocationTargetException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     @Override
     public int getVersion() {
         return 9;
     }
+
+    @Override
+    public Object getInvokeSpecialHandle(Method method, Object receiver) {
+        if (getLookupConstructor() != null) {
+            Class declaringClass = method.getDeclaringClass();
+            try {
+                return of(declaringClass).unreflectSpecial(method, receiver.getClass()).bindTo(receiver);
+            } catch (ReflectiveOperationException e) {
+                throw new GroovyBugError(e);
+            }
+        }
+        return super.getInvokeSpecialHandle(method, receiver);
+    }
 }


[groovy] 07/28: GROOVY-8914: Error compiling static inner class that extends some other (static) inner class

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit e96f20bd58cad609cbd23728f57386a7b605b887
Author: Paul King <pa...@asert.com.au>
AuthorDate: Mon Dec 17 12:04:54 2018 +1000

    GROOVY-8914: Error compiling static inner class that extends some other (static) inner class
---
 .../classgen/InnerClassCompletionVisitor.java       | 11 ++++++++++-
 src/test/gls/innerClass/InnerClassTest.groovy       | 21 +++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java b/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java
index a8d84c8..4e07503 100644
--- a/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java
@@ -348,7 +348,7 @@ public class InnerClassCompletionVisitor extends InnerClassVisitorHelper impleme
     private void addCompilationErrorOnCustomMethodNode(InnerClassNode node, String methodName, Parameter[] parameters) {
         MethodNode existingMethodNode = node.getMethod(methodName, parameters);
         // if there is a user-defined methodNode, add compiler error msg and continue
-        if (existingMethodNode != null && !existingMethodNode.isSynthetic())  {
+        if (existingMethodNode != null && !isSynthetic(existingMethodNode))  {
             addError("\"" +methodName + "\" implementations are not supported on static inner classes as " +
                     "a synthetic version of \"" + methodName + "\" is added during compilation for the purpose " +
                     "of outer class delegation.",
@@ -356,6 +356,15 @@ public class InnerClassCompletionVisitor extends InnerClassVisitorHelper impleme
         }
     }
 
+    // GROOVY-8914: pre-compiled classes lose synthetic boolean - TODO fix earlier as per GROOVY-4346 then remove extra check here
+    private boolean isSynthetic(MethodNode existingMethodNode) {
+        return existingMethodNode.isSynthetic() || hasSyntheticModifier(existingMethodNode);
+    }
+
+    private boolean hasSyntheticModifier(MethodNode existingMethodNode) {
+        return (existingMethodNode.getModifiers() & Opcodes.ACC_SYNTHETIC) != 0;
+    }
+
     private void addThisReference(ConstructorNode node) {
         if (!shouldHandleImplicitThisForInnerClass(classNode)) return;
         Statement code = node.getCode();
diff --git a/src/test/gls/innerClass/InnerClassTest.groovy b/src/test/gls/innerClass/InnerClassTest.groovy
index 811f148..9a0d6ad 100644
--- a/src/test/gls/innerClass/InnerClassTest.groovy
+++ b/src/test/gls/innerClass/InnerClassTest.groovy
@@ -727,6 +727,27 @@ import org.codehaus.groovy.classgen.Verifier
             null
         '''
     }
+
+    //GROOVY-8914
+    void testNestedClassInheritingFromNestedClass() {
+        // control
+        assert new Outer8914.Nested()
+
+        assertScript '''
+            class OuterReferencingPrecompiled {
+                static class Nested extends gls.innerClass.Parent8914.Nested {}
+            }
+            assert new OuterReferencingPrecompiled.Nested()
+        '''
+    }
+}
+
+class Parent8914 {
+    static class Nested {}
+}
+
+class Outer8914 {
+    static class Nested extends Parent8914.Nested {}
 }
 
 class MyOuterClass4028 {


[groovy] 04/28: Trivial refactoring: replace with direct class object access

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 141c1bfca95a6aef70b9a7b8c1a875006d679c6c
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Dec 16 23:09:38 2018 +0800

    Trivial refactoring: replace with direct class object access
---
 src/main/groovy/groovy/lang/GroovyShell.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main/groovy/groovy/lang/GroovyShell.java b/src/main/groovy/groovy/lang/GroovyShell.java
index a802d3c..84812b4 100644
--- a/src/main/groovy/groovy/lang/GroovyShell.java
+++ b/src/main/groovy/groovy/lang/GroovyShell.java
@@ -303,9 +303,10 @@ public class GroovyShell extends GroovyObjectSupport {
         Constructor constructor = null;
         Runnable runnable = null;
         Throwable reason = null;
+
         try {
             // first, fetch the constructor taking String[] as parameter
-            constructor = scriptClass.getConstructor((new String[]{}).getClass());
+            constructor = scriptClass.getConstructor(String[].class);
             try {
                 // instantiate a runnable and run it
                 runnable = (Runnable) constructor.newInstance(new Object[]{args});


[groovy] 15/28: GROOVY-8935: Provide a @NullCheck AST transformation similar to Lombok's NonNull (closes #845)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 5422c81a4d220e4da2a104859215ad231b6eef68
Author: Paul King <pa...@asert.com.au>
AuthorDate: Sat Dec 22 14:18:03 2018 +1000

    GROOVY-8935: Provide a @NullCheck AST transformation similar to Lombok's NonNull (closes #845)
---
 src/main/groovy/groovy/transform/NullCheck.java    | 83 +++++++++++++++++++
 .../codehaus/groovy/ast/tools/GeneralUtils.java    |  4 +
 .../transform/NullCheckASTTransformation.java      | 92 ++++++++++++++++++++++
 3 files changed, 179 insertions(+)

diff --git a/src/main/groovy/groovy/transform/NullCheck.java b/src/main/groovy/groovy/transform/NullCheck.java
new file mode 100644
index 0000000..56ba109
--- /dev/null
+++ b/src/main/groovy/groovy/transform/NullCheck.java
@@ -0,0 +1,83 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package groovy.transform;
+
+import org.codehaus.groovy.transform.GroovyASTTransformationClass;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Class, method or constructor annotation which indicates that each parameter
+ * should be checked to ensure it isn't null. If placed at the class level,
+ * all explicit methods and constructors will be checked.
+ * <p>
+ * Example usage:
+ * <pre class="groovyTestCase">
+ * import groovy.transform.NullCheck
+ * import static groovy.test.GroovyAssert.shouldFail
+ *
+ * {@code @NullCheck)
+ * class Greeter {
+ *     private String audience
+ *
+ *     Greeter(String audience) {
+ *         this.audience = audience.toLowerCase()
+ *     }
+ *
+ *     String greeting(String salutation) {
+ *         salutation.toUpperCase() + ' ' + audience
+ *     }
+ * }
+ *
+ * assert new Greeter('World').greeting('hello') == 'HELLO world'
+ *
+ * def ex = shouldFail(IllegalArgumentException) { new Greeter(null) }
+ * assert ex.message == 'audience cannot be null'
+ *
+ * ex = shouldFail(IllegalArgumentException) { new Greeter('Universe').greeting(null) }
+ * assert ex.message == 'salutation cannot be null'
+ * </pre>
+ * The produced code for the above example looks like this:
+ * <pre>
+ * class Greeter {
+ *     private String audience
+ *
+ *     Foo(String audience) {
+ *         if (audience == null) throw new IllegalArgumentException('audience cannot be null')
+ *         this.audience = audience.toLowerCase()
+ *     }
+ *
+ *     String greeting(String salutation) {
+ *         if (salutation == null) throw new IllegalArgumentException('salutation cannot be null')
+ *         salutation.toUpperCase() + ' ' + audience
+ *     }
+ * }
+ * </pre>
+ *
+ * @since 3.0.0
+ */
+@java.lang.annotation.Documented
+@Retention(RetentionPolicy.SOURCE)
+@Target({ElementType.TYPE})
+@GroovyASTTransformationClass("org.codehaus.groovy.transform.NullCheckASTTransformation")
+public @interface NullCheck {
+}
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
index ed985cc..d1651f6 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
@@ -608,6 +608,10 @@ public class GeneralUtils {
         return new BooleanExpression(new BinaryExpression(objectExpression, INSTANCEOF, classX(cNode)));
     }
 
+    public static BooleanExpression isNullX(Expression expr) {
+        return new BooleanExpression(new BinaryExpression(expr, EQ, new ConstantExpression(null)));
+    }
+
     public static BooleanExpression isOneX(Expression expr) {
         return new BooleanExpression(new BinaryExpression(expr, EQ, new ConstantExpression(1)));
     }
diff --git a/src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java
new file mode 100644
index 0000000..f57a91a
--- /dev/null
+++ b/src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java
@@ -0,0 +1,92 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.codehaus.groovy.transform;
+
+import groovy.transform.NullCheck;
+import org.codehaus.groovy.ast.ASTNode;
+import org.codehaus.groovy.ast.AnnotatedNode;
+import org.codehaus.groovy.ast.AnnotationNode;
+import org.codehaus.groovy.ast.ClassHelper;
+import org.codehaus.groovy.ast.ClassNode;
+import org.codehaus.groovy.ast.ConstructorNode;
+import org.codehaus.groovy.ast.MethodNode;
+import org.codehaus.groovy.ast.Parameter;
+import org.codehaus.groovy.ast.stmt.BlockStatement;
+import org.codehaus.groovy.ast.stmt.Statement;
+import org.codehaus.groovy.control.CompilePhase;
+import org.codehaus.groovy.control.SourceUnit;
+
+import static org.codehaus.groovy.ast.ClassHelper.make;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.constX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.ctorX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.ifS;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.isNullX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.throwS;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.varX;
+
+/**
+ * Handles generation of code for the @AutoImplement annotation.
+ */
+@GroovyASTTransformation(phase = CompilePhase.CANONICALIZATION)
+public class NullCheckASTTransformation extends AbstractASTTransformation {
+    private static final Class MY_CLASS = NullCheck.class;
+    private static final ClassNode MY_TYPE = make(MY_CLASS);
+    private static final String MY_TYPE_NAME = "@" + MY_TYPE.getNameWithoutPackage();
+    private static final ClassNode EXCEPTION = ClassHelper.make(IllegalArgumentException.class);
+
+    @Override
+    public void visit(ASTNode[] nodes, SourceUnit source) {
+        init(nodes, source);
+        AnnotatedNode parent = (AnnotatedNode) nodes[1];
+        AnnotationNode anno = (AnnotationNode) nodes[0];
+        if (!MY_TYPE.equals(anno.getClassNode())) return;
+
+        if (parent instanceof ClassNode) {
+            ClassNode cNode = (ClassNode) parent;
+            if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
+            for (ConstructorNode cn : cNode.getDeclaredConstructors()) {
+                adjustMethod(cn);
+            }
+            for (MethodNode mn : cNode.getAllDeclaredMethods()) {
+                adjustMethod(mn);
+            }
+        } else if (parent instanceof MethodNode) {
+            // handles constructor case too
+            adjustMethod((MethodNode) parent);
+        }
+    }
+
+    private void adjustMethod(MethodNode mn) {
+        Statement origCode = mn.getCode();
+        BlockStatement newCode = new BlockStatement();
+        if (mn.getParameters().length == 0) return;
+        for (Parameter p : mn.getParameters()) {
+            newCode.addStatement(ifS(isNullX(varX(p)),
+                    throwS(ctorX(EXCEPTION, constX(p.getName() + " cannot be null")))));
+        }
+        if (origCode instanceof BlockStatement) {
+            for (Statement s : ((BlockStatement) origCode).getStatements()) {
+                newCode.addStatement(s);
+            }
+        } else {
+            newCode.addStatement(origCode);
+        }
+        mn.setCode(newCode);
+    }
+}


[groovy] 11/28: GROOVY-8931: AstNodeToScriptVisitor - wrong "extends/implements" order

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 6acd8e09f4ffcb6c493bcc2331c6f0591bd3f775
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue Dec 18 20:24:13 2018 +1000

    GROOVY-8931: AstNodeToScriptVisitor - wrong "extends/implements" order
---
 .../main/groovy/groovy/inspect/swingui/AstNodeToScriptAdapter.groovy  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstNodeToScriptAdapter.groovy b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstNodeToScriptAdapter.groovy
index 849bfb2..2f3a2f8 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstNodeToScriptAdapter.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/AstNodeToScriptAdapter.groovy
@@ -341,6 +341,8 @@ class AstNodeToScriptVisitor extends PrimaryClassNodeOperation implements Groovy
         if (node.isInterface()) print node.name
         else print "class $node.name"
         visitGenerics node?.genericsTypes
+        print ' extends '
+        visitType node.unresolvedSuperClass
         boolean first = true
         node.unresolvedInterfaces?.each {
             if (!first) {
@@ -351,8 +353,6 @@ class AstNodeToScriptVisitor extends PrimaryClassNodeOperation implements Groovy
             first = false
             visitType it
         }
-        print ' extends '
-        visitType node.unresolvedSuperClass
         print ' { '
         printDoubleBreak()
 


[groovy] 16/28: GROOVY-7233: Configurable Access Modifier for Log AST Transformations (closes #843)

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit f4ad23e37f7d297b5856e593ae93107f89662f88
Author: Joe Wolf <jo...@gmail.com>
AuthorDate: Tue Dec 30 00:28:34 2014 -0500

    GROOVY-7233: Configurable Access Modifier for Log AST Transformations (closes #843)
    
    All of the logging AST transformations now support @VisibilityOptions.
    This allows the log field to be public, private (the default), protected,
    or package-private.  There is a new LoggingStrategyV2 which logging
    strategies which want to support visibility should support.
---
 src/main/groovy/groovy/util/logging/Commons.java   | 15 +++-
 src/main/groovy/groovy/util/logging/Log.java       | 16 +++-
 src/main/groovy/groovy/util/logging/Log4j.java     | 16 +++-
 src/main/groovy/groovy/util/logging/Log4j2.java    | 16 +++-
 src/main/groovy/groovy/util/logging/Slf4j.java     | 16 +++-
 .../groovy/transform/LogASTTransformation.java     | 71 ++++++++++++++++-
 src/test/groovy/util/logging/CommonsTest.groovy    | 80 ++++++++++++++++++-
 src/test/groovy/util/logging/Log4j2Test.groovy     | 89 +++++++++++++++++++++-
 src/test/groovy/util/logging/Log4jTest.groovy      | 70 +++++++++++++++++
 src/test/groovy/util/logging/LogTest.groovy        | 73 +++++++++++++++++-
 src/test/groovy/util/logging/Slf4jTest.groovy      | 70 +++++++++++++++++
 11 files changed, 504 insertions(+), 28 deletions(-)

diff --git a/src/main/groovy/groovy/util/logging/Commons.java b/src/main/groovy/groovy/util/logging/Commons.java
index d4e5ad6..6b145b4 100644
--- a/src/main/groovy/groovy/util/logging/Commons.java
+++ b/src/main/groovy/groovy/util/logging/Commons.java
@@ -19,6 +19,7 @@
 package groovy.util.logging;
 
 import groovy.lang.GroovyClassLoader;
+import groovy.transform.Undefined;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
 import org.codehaus.groovy.ast.expr.ArgumentListExpression;
@@ -30,7 +31,6 @@ import org.codehaus.groovy.ast.expr.MethodCallExpression;
 import org.codehaus.groovy.ast.expr.TernaryExpression;
 import org.codehaus.groovy.transform.GroovyASTTransformationClass;
 import org.codehaus.groovy.transform.LogASTTransformation;
-import org.objectweb.asm.Opcodes;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -65,9 +65,15 @@ import java.util.Locale;
 public @interface Commons {
     String value() default "log";
     String category() default LogASTTransformation.DEFAULT_CATEGORY_NAME;
+
+    /**
+     * If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.
+     */
+    String visibilityId() default Undefined.STRING;
+
     Class<? extends LogASTTransformation.LoggingStrategy> loggingStrategy() default CommonsLoggingStrategy.class;
 
-    public  static class CommonsLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategy {
+    public  static class CommonsLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategyV2 {
 
         private static final String LOGGER_NAME = "org.apache.commons.logging.Log";
         private static final String LOGGERFACTORY_NAME = "org.apache.commons.logging.LogFactory";
@@ -76,9 +82,10 @@ public @interface Commons {
             super(loader);
         }
 
-        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName) {
+        @Override
+        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName, int fieldModifiers) {
             return classNode.addField(logFieldName,
-                    Opcodes.ACC_FINAL | Opcodes.ACC_TRANSIENT | Opcodes.ACC_STATIC | Opcodes.ACC_PRIVATE,
+                    fieldModifiers,
                     classNode(LOGGER_NAME),
                     new MethodCallExpression(
                             new ClassExpression(classNode(LOGGERFACTORY_NAME)),
diff --git a/src/main/groovy/groovy/util/logging/Log.java b/src/main/groovy/groovy/util/logging/Log.java
index 1a4e554..f99d278 100644
--- a/src/main/groovy/groovy/util/logging/Log.java
+++ b/src/main/groovy/groovy/util/logging/Log.java
@@ -19,6 +19,7 @@
 package groovy.util.logging;
 
 import groovy.lang.GroovyClassLoader;
+import groovy.transform.Undefined;
 import org.codehaus.groovy.ast.ClassHelper;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
@@ -33,7 +34,6 @@ import org.codehaus.groovy.ast.expr.TernaryExpression;
 import org.codehaus.groovy.transform.GroovyASTTransformationClass;
 import org.codehaus.groovy.transform.LogASTTransformation;
 import org.codehaus.groovy.transform.LogASTTransformation.LoggingStrategy;
-import org.objectweb.asm.Opcodes;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -70,12 +70,19 @@ import java.util.Locale;
 public @interface Log {
     String value() default "log";
     String category() default LogASTTransformation.DEFAULT_CATEGORY_NAME;
+
+    /**
+     * If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.
+     * @since 3.0.0
+     */
+    String visibilityId() default Undefined.STRING;
+
     Class<? extends LoggingStrategy> loggingStrategy() default JavaUtilLoggingStrategy.class;
 
     /**
      * This class contains the logic of how to weave a Java Util Logging logger into the host class.
      */
-    public static class JavaUtilLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategy {
+    public static class JavaUtilLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategyV2 {
 
         private static final ClassNode LOGGER_CLASSNODE = ClassHelper.make(java.util.logging.Logger.class);
         private static final ClassNode LEVEL_CLASSNODE = ClassHelper.make(java.util.logging.Level.class);
@@ -84,9 +91,10 @@ public @interface Log {
             super(loader);
         }
 
-        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName) {
+        @Override
+        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName, int fieldModifiers) {
             return classNode.addField(logFieldName,
-                        Opcodes.ACC_FINAL | Opcodes.ACC_TRANSIENT | Opcodes.ACC_STATIC | Opcodes.ACC_PRIVATE,
+                        fieldModifiers,
                         LOGGER_CLASSNODE,
                         new MethodCallExpression(
                                 new ClassExpression(LOGGER_CLASSNODE),
diff --git a/src/main/groovy/groovy/util/logging/Log4j.java b/src/main/groovy/groovy/util/logging/Log4j.java
index 28633b5..1db7bf9 100644
--- a/src/main/groovy/groovy/util/logging/Log4j.java
+++ b/src/main/groovy/groovy/util/logging/Log4j.java
@@ -19,6 +19,7 @@
 package groovy.util.logging;
 
 import groovy.lang.GroovyClassLoader;
+import groovy.transform.Undefined;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
 import org.codehaus.groovy.ast.expr.ArgumentListExpression;
@@ -31,7 +32,6 @@ import org.codehaus.groovy.ast.expr.MethodCallExpression;
 import org.codehaus.groovy.ast.expr.TernaryExpression;
 import org.codehaus.groovy.transform.GroovyASTTransformationClass;
 import org.codehaus.groovy.transform.LogASTTransformation;
-import org.objectweb.asm.Opcodes;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -66,9 +66,16 @@ import java.util.Locale;
 public @interface Log4j {
     String value() default "log";
     String category() default LogASTTransformation.DEFAULT_CATEGORY_NAME;
+
+    /**
+     * If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.
+     * @since 3.0.0
+     */
+    String visibilityId() default Undefined.STRING;
+
     Class<? extends LogASTTransformation.LoggingStrategy> loggingStrategy() default Log4jLoggingStrategy.class;
 
-    public static class Log4jLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategy {
+    public static class Log4jLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategyV2 {
         private static final String LOGGER_NAME = "org.apache.log4j.Logger";
         private static final String PRIORITY_NAME = "org.apache.log4j.Priority";
 
@@ -76,9 +83,10 @@ public @interface Log4j {
             super(loader);
         }
 
-        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName) {
+        @Override
+        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName, int fieldModifiers) {
             return classNode.addField(logFieldName,
-                    Opcodes.ACC_FINAL | Opcodes.ACC_TRANSIENT | Opcodes.ACC_STATIC | Opcodes.ACC_PRIVATE,
+                    fieldModifiers,
                     classNode(LOGGER_NAME),
                     new MethodCallExpression(
                             new ClassExpression(classNode(LOGGER_NAME)),
diff --git a/src/main/groovy/groovy/util/logging/Log4j2.java b/src/main/groovy/groovy/util/logging/Log4j2.java
index a53874c..d9a8a8a 100644
--- a/src/main/groovy/groovy/util/logging/Log4j2.java
+++ b/src/main/groovy/groovy/util/logging/Log4j2.java
@@ -19,6 +19,7 @@
 package groovy.util.logging;
 
 import groovy.lang.GroovyClassLoader;
+import groovy.transform.Undefined;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
 import org.codehaus.groovy.ast.expr.ArgumentListExpression;
@@ -30,7 +31,6 @@ import org.codehaus.groovy.ast.expr.MethodCallExpression;
 import org.codehaus.groovy.ast.expr.TernaryExpression;
 import org.codehaus.groovy.transform.GroovyASTTransformationClass;
 import org.codehaus.groovy.transform.LogASTTransformation;
-import org.objectweb.asm.Opcodes;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -65,9 +65,16 @@ import java.util.Locale;
 public @interface Log4j2 {
     String value() default "log";
     String category() default LogASTTransformation.DEFAULT_CATEGORY_NAME;
+
+    /**
+     * If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.
+     * @since 3.0.0
+     */
+    String visibilityId() default Undefined.STRING;
+
     Class<? extends LogASTTransformation.LoggingStrategy> loggingStrategy() default Log4j2LoggingStrategy.class;
 
-    public static class Log4j2LoggingStrategy extends LogASTTransformation.AbstractLoggingStrategy {
+    public static class Log4j2LoggingStrategy extends LogASTTransformation.AbstractLoggingStrategyV2 {
         private static final String LOGGER_NAME = "org.apache.logging.log4j.core.Logger";
         private static final String LOG_MANAGER_NAME = "org.apache.logging.log4j.LogManager";
 
@@ -75,9 +82,10 @@ public @interface Log4j2 {
             super(loader);
         }
 
-        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName) {
+        @Override
+        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName, int fieldModifiers) {
             return classNode.addField(logFieldName,
-                    Opcodes.ACC_FINAL | Opcodes.ACC_TRANSIENT | Opcodes.ACC_STATIC | Opcodes.ACC_PRIVATE,
+                    fieldModifiers,
                     classNode(LOGGER_NAME),
                     new MethodCallExpression(
                             new ClassExpression(classNode(LOG_MANAGER_NAME)),
diff --git a/src/main/groovy/groovy/util/logging/Slf4j.java b/src/main/groovy/groovy/util/logging/Slf4j.java
index 7561cf7..4f7da07 100644
--- a/src/main/groovy/groovy/util/logging/Slf4j.java
+++ b/src/main/groovy/groovy/util/logging/Slf4j.java
@@ -19,6 +19,7 @@
 package groovy.util.logging;
 
 import groovy.lang.GroovyClassLoader;
+import groovy.transform.Undefined;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.FieldNode;
 import org.codehaus.groovy.ast.expr.ArgumentListExpression;
@@ -30,7 +31,6 @@ import org.codehaus.groovy.ast.expr.MethodCallExpression;
 import org.codehaus.groovy.ast.expr.TernaryExpression;
 import org.codehaus.groovy.transform.GroovyASTTransformationClass;
 import org.codehaus.groovy.transform.LogASTTransformation;
-import org.objectweb.asm.Opcodes;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -65,9 +65,16 @@ import java.util.Locale;
 public @interface Slf4j {
     String value() default "log";
     String category() default LogASTTransformation.DEFAULT_CATEGORY_NAME;
+
+    /**
+     * If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.
+     * @since 3.0.0
+     */
+    String visibilityId() default Undefined.STRING;
+
     Class<? extends LogASTTransformation.LoggingStrategy> loggingStrategy() default Slf4jLoggingStrategy.class;
 
-    public static class Slf4jLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategy {
+    public static class Slf4jLoggingStrategy extends LogASTTransformation.AbstractLoggingStrategyV2 {
         private static final String LOGGER_NAME = "org.slf4j.Logger";
         private static final String FACTORY_NAME = "org.slf4j.LoggerFactory";
 
@@ -75,9 +82,10 @@ public @interface Slf4j {
             super(loader);
         }
 
-        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName) {
+        @Override
+        public FieldNode addLoggerFieldToClass(ClassNode classNode, String logFieldName, String categoryName, int fieldModifiers) {
             return classNode.addField(logFieldName,
-                    Opcodes.ACC_FINAL | Opcodes.ACC_TRANSIENT | Opcodes.ACC_STATIC | Opcodes.ACC_PRIVATE,
+                    fieldModifiers,
                     classNode(LOGGER_NAME),
                     new MethodCallExpression(
                             new ClassExpression(classNode(FACTORY_NAME)),
diff --git a/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java
index 1895062..c2505ff 100644
--- a/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/LogASTTransformation.java
@@ -46,6 +46,10 @@ import org.codehaus.groovy.runtime.DefaultGroovyMethods;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 
+import org.objectweb.asm.Opcodes;
+
+import static org.apache.groovy.ast.tools.VisibilityUtils.getVisibility;
+
 /**
  * This class provides an AST Transformation to add a log field to a class.
  */
@@ -58,6 +62,8 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
      */
     public static final String DEFAULT_CATEGORY_NAME = "##default-category-name##";
 
+    public static final String DEFAULT_ACCESS_MODIFIER = "private";
+
     private CompilationUnit compilationUnit;
 
     @Override
@@ -74,6 +80,8 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
 
         final String categoryName = lookupCategoryName(logAnnotation);
 
+        final int logFieldModifiers = lookupLogFieldModifiers(targetClass, logAnnotation);
+
         if (!(targetClass instanceof ClassNode))
             throw new GroovyBugError("Class annotation " + logAnnotation.getClassNode().getName() + " annotated no Class, this must not happen.");
 
@@ -107,7 +115,13 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
                 } else if (logField != null && !Modifier.isPrivate(logField.getModifiers())) {
                     addError("Class annotated with Log annotation cannot have log field declared because the field exists in the parent class: " + logField.getOwner().getName(), logField);
                 } else {
-                    logNode = loggingStrategy.addLoggerFieldToClass(node, logFieldName, categoryName);
+                    if (loggingStrategy instanceof LoggingStrategyV2) {
+                        LoggingStrategyV2 loggingStrategyV2 = (LoggingStrategyV2) loggingStrategy;
+                        logNode = loggingStrategyV2.addLoggerFieldToClass(node, logFieldName, categoryName, logFieldModifiers);
+                    } else {
+                        // support the old style but they won't be as configurable
+                        logNode = loggingStrategy.addLoggerFieldToClass(node, logFieldName, categoryName);
+                    }
                 }
                 super.visitClass(node);
             }
@@ -189,6 +203,11 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
         return DEFAULT_CATEGORY_NAME;
     }
 
+    private int lookupLogFieldModifiers(AnnotatedNode targetClass, AnnotationNode logAnnotation) {
+        int modifiers = getVisibility(logAnnotation, targetClass, ClassNode.class, Opcodes.ACC_PRIVATE);
+        return Opcodes.ACC_FINAL | Opcodes.ACC_TRANSIENT | Opcodes.ACC_STATIC | modifiers;
+    }
+
     private static LoggingStrategy createLoggingStrategy(AnnotationNode logAnnotation, GroovyClassLoader loader) {
 
         String annotationName = logAnnotation.getClassNode().getName();
@@ -214,10 +233,23 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
             throw new RuntimeException("Could not find default value of method named loggingStrategy on class named " + annotationName);
         }
 
-        if (!LoggingStrategy.class.isAssignableFrom((Class) defaultValue)) {
+        if (!LoggingStrategy.class.isAssignableFrom((Class) defaultValue)
+                && !LoggingStrategyV2.class.isAssignableFrom((Class) defaultValue)) {
             throw new RuntimeException("Default loggingStrategy value on class named " + annotationName + " is not a LoggingStrategy");
         }
 
+        // try V2 configurable logging strategy
+        try {
+            Class<? extends LoggingStrategyV2> strategyClass = (Class<? extends LoggingStrategyV2>) defaultValue;
+            if (AbstractLoggingStrategy.class.isAssignableFrom(strategyClass)) {
+                return DefaultGroovyMethods.newInstance(strategyClass, new Object[]{loader});
+            } else {
+                return strategyClass.newInstance();
+            }
+        } catch (Exception e) {
+        }
+
+        // try legacy logging strategy
         try {
             Class<? extends LoggingStrategy> strategyClass = (Class<? extends LoggingStrategy>) defaultValue;
             if (AbstractLoggingStrategy.class.isAssignableFrom(strategyClass)) {
@@ -228,6 +260,7 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
         } catch (Exception e) {
             return null;
         }
+
     }
 
 
@@ -255,6 +288,40 @@ public class LogASTTransformation extends AbstractASTTransformation implements C
         Expression wrapLoggingMethodCall(Expression logVariable, String methodName, Expression originalExpression);
     }
 
+    /**
+     * A LoggingStrategy defines how to wire a new logger instance into an existing class.
+     * It is meant to be used with the @Log family of annotations to allow you to
+     * write your own Log annotation provider.
+     */
+    public interface LoggingStrategyV2 extends LoggingStrategy {
+        /**
+         * In this method, you are given a ClassNode, a field name and a category name, and you must add a new Field
+         * onto the class. Return the result of the ClassNode.addField operations.
+         *
+         * @param classNode      the class that was originally annotated with the Log transformation.
+         * @param fieldName      the name of the logger field
+         * @param categoryName   the name of the logging category
+         * @param fieldModifiers the modifiers (private, final, et. al.) of the logger field
+         * @return the FieldNode instance that was created and added to the class
+         */
+        FieldNode addLoggerFieldToClass(ClassNode classNode, String fieldName, String categoryName, int fieldModifiers);
+    }
+
+    public abstract static class AbstractLoggingStrategyV2 extends AbstractLoggingStrategy implements LoggingStrategyV2 {
+        protected AbstractLoggingStrategyV2(final GroovyClassLoader loader) {
+            super(loader);
+        }
+
+        protected AbstractLoggingStrategyV2() {
+            this(null);
+        }
+
+        @Override
+        public FieldNode addLoggerFieldToClass(ClassNode classNode, String fieldName, String categoryName) {
+            throw new UnsupportedOperationException("This logger requires a later version of Groovy");
+        }
+    }
+
     public abstract static class AbstractLoggingStrategy implements LoggingStrategy {
         protected final GroovyClassLoader loader;
 
diff --git a/src/test/groovy/util/logging/CommonsTest.groovy b/src/test/groovy/util/logging/CommonsTest.groovy
index b8d5acc..643defd 100644
--- a/src/test/groovy/util/logging/CommonsTest.groovy
+++ b/src/test/groovy/util/logging/CommonsTest.groovy
@@ -56,6 +56,80 @@ class CommonsTest extends GroovyTestCase {
         }
     }
 
+    void testExplicitPrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PRIVATE)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPrivate(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPackagePrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PACKAGE_PRIVATE)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    !Modifier.isPrivate(field.getModifiers()) &&
+                    !Modifier.isProtected(field.getModifiers()) &&
+                    !Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testProtectedFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PROTECTED)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isProtected(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPublicFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PUBLIC)
+            @groovy.util.logging.Commons
+            class MyClass {
+            }
+        ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
     void testPrivateFinalStaticNamedLogFieldAppears() {
         Class clazz = new GroovyClassLoader().parseClass('''
               @groovy.util.logging.Commons('logger')
@@ -110,7 +184,7 @@ class CommonsTest extends GroovyTestCase {
             new MyClass().loggingMethod() ''')
 
         clazz.newInstance().run()
-        
+
         String log = redirectedSystemOut.toString()
         assert log.contains("error called")
         assert log.contains("warn called")
@@ -129,7 +203,7 @@ class CommonsTest extends GroovyTestCase {
             MyClass.loggingMethod()""")
 
         clazz.newInstance().run()
-        
+
         String log = redirectedSystemOut.toString()
         assert log.contains("(static) info called")
     }
@@ -149,7 +223,7 @@ class CommonsTest extends GroovyTestCase {
             new MyClass().loggingMethod() ''')
 
         clazz.newInstance().run()
-        
+
         String log = redirectedSystemOut.toString()
         assert log.contains("error called")
         assert log.contains("warn called")
diff --git a/src/test/groovy/util/logging/Log4j2Test.groovy b/src/test/groovy/util/logging/Log4j2Test.groovy
index 3d7b24c..0c09975 100644
--- a/src/test/groovy/util/logging/Log4j2Test.groovy
+++ b/src/test/groovy/util/logging/Log4j2Test.groovy
@@ -38,7 +38,7 @@ class Log4j2Test extends GroovyTestCase {
         List<Map> events
         boolean isLogGuarded = true
 
-        Log4j2InterceptingAppender(String name, Filter filter, Layout<String> layout){
+        Log4j2InterceptingAppender(String name, Filter filter, Layout<String> layout) {
             super(name, filter, layout)
             this.events = new ArrayList<Map>()
         }
@@ -94,6 +94,91 @@ class Log4j2Test extends GroovyTestCase {
         }
     }
 
+    void testExplicitPrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PRIVATE)
+            @groovy.util.logging.Log4j2
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPrivate(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPackagePrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PACKAGE_PRIVATE)
+            @groovy.util.logging.Log4j2
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    !Modifier.isPrivate(field.getModifiers()) &&
+                    !Modifier.isProtected(field.getModifiers()) &&
+                    !Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testProtectedFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PROTECTED)
+            @groovy.util.logging.Log4j2
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isProtected(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPublicFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PUBLIC)
+            @groovy.util.logging.Log4j2
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testUnknownAccessPrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            @groovy.util.logging.Log4j2
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPrivate(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
     void testClassAlreadyHasLogField() {
         shouldFail(RuntimeException) {
             Class clazz = new GroovyClassLoader().parseClass('''
@@ -259,7 +344,7 @@ class Log4j2Test extends GroovyTestCase {
                       log.error("error called")
                     }
                 }""")
-        
+
         clazz.newInstance().loggingMethod()
 
         assert appenderForCustomCategory.getEvents().size() == 1
diff --git a/src/test/groovy/util/logging/Log4jTest.groovy b/src/test/groovy/util/logging/Log4jTest.groovy
index febc05f..3ed8c25 100644
--- a/src/test/groovy/util/logging/Log4jTest.groovy
+++ b/src/test/groovy/util/logging/Log4jTest.groovy
@@ -62,6 +62,76 @@ class Log4jTest extends GroovyTestCase {
         }
     }
 
+    void testExplicitPrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PRIVATE)
+            @groovy.util.logging.Log4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPrivate(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPackagePrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PACKAGE_PRIVATE)
+            @groovy.util.logging.Log4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    !Modifier.isPrivate(field.getModifiers()) &&
+                    !Modifier.isProtected(field.getModifiers()) &&
+                    !Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testProtectedFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PROTECTED)
+            @groovy.util.logging.Log4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isProtected(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPublicFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PUBLIC)
+            @groovy.util.logging.Log4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
     void testClassAlreadyHasLogField() {
 
         shouldFail {
diff --git a/src/test/groovy/util/logging/LogTest.groovy b/src/test/groovy/util/logging/LogTest.groovy
index a52788a..57f7929 100644
--- a/src/test/groovy/util/logging/LogTest.groovy
+++ b/src/test/groovy/util/logging/LogTest.groovy
@@ -61,6 +61,76 @@ class LogTest extends GroovyTestCase {
         }
     }
 
+    void testExplicitPrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PRIVATE)
+            @groovy.util.logging.Log
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPrivate(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPackagePrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PACKAGE_PRIVATE)
+            @groovy.util.logging.Log
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    !Modifier.isPrivate(field.getModifiers()) &&
+                    !Modifier.isProtected(field.getModifiers()) &&
+                    !Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testProtectedFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PROTECTED)
+            @groovy.util.logging.Log
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isProtected(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPublicFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PUBLIC)
+            @groovy.util.logging.Log
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
     void testClassAlreadyHasLogField() {
 
         shouldFail {
@@ -312,7 +382,8 @@ class LogTest extends GroovyTestCase {
     }
 }
 
-@groovy.transform.PackageScope class LoggerSpy extends Logger {
+@groovy.transform.PackageScope
+class LoggerSpy extends Logger {
 
     String severeParameter = null
     String warningParameter = null
diff --git a/src/test/groovy/util/logging/Slf4jTest.groovy b/src/test/groovy/util/logging/Slf4jTest.groovy
index 6a6324b..52e113f 100644
--- a/src/test/groovy/util/logging/Slf4jTest.groovy
+++ b/src/test/groovy/util/logging/Slf4jTest.groovy
@@ -74,6 +74,76 @@ class Slf4jTest extends GroovyTestCase {
         }
     }
 
+    void testExplicitPrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PRIVATE)
+            @groovy.util.logging.Slf4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPrivate(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPackagePrivateFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PACKAGE_PRIVATE)
+            @groovy.util.logging.Slf4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    !Modifier.isPrivate(field.getModifiers()) &&
+                    !Modifier.isProtected(field.getModifiers()) &&
+                    !Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testProtectedFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PROTECTED)
+            @groovy.util.logging.Slf4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isProtected(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
+    void testPublicFinalStaticLogFieldAppears() {
+        Class clazz = new GroovyClassLoader().parseClass('''
+            import static groovy.transform.options.Visibility.*
+            @groovy.transform.VisibilityOptions(value = PUBLIC)
+            @groovy.util.logging.Slf4j
+            class MyClass {
+            } ''')
+
+        assert clazz.declaredFields.find { Field field ->
+            field.name == "log" &&
+                    Modifier.isPublic(field.getModifiers()) &&
+                    Modifier.isStatic(field.getModifiers()) &&
+                    Modifier.isTransient(field.getModifiers()) &&
+                    Modifier.isFinal(field.getModifiers())
+        }
+    }
+
     void testPrivateFinalStaticNamedLogFieldAppears() {
         Class clazz = new GroovyClassLoader().parseClass('''
                 @groovy.util.logging.Slf4j('logger')


[groovy] 17/28: revert to gradle 4.10.3 to check impact on CI server

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit e30531248fc0db2377d655b2b35da0604fe7ee30
Author: Paul King <pa...@asert.com.au>
AuthorDate: Thu Dec 27 12:10:21 2018 +1000

    revert to gradle 4.10.3 to check impact on CI server
---
 build.gradle                             |   2 +-
 gradle.properties                        |   2 +-
 gradle/wrapper/gradle-wrapper.jar        | Bin 56177 -> 55741 bytes
 gradle/wrapper/gradle-wrapper.properties |   2 +-
 gradlew                                  |   2 +-
 gradlew.bat                              |   2 +-
 6 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/build.gradle b/build.gradle
index 520420b..b36eb55 100644
--- a/build.gradle
+++ b/build.gradle
@@ -49,7 +49,7 @@ buildscript {
 }
 
 plugins {
-    id 'com.gradle.build-scan' version '2.1'
+    id 'com.gradle.build-scan' version '1.16'
     id 'me.champeau.buildscan-recipes' version '0.2.3'
     id 'com.github.spotbugs' version '1.6.6'
     id "com.github.ben-manes.versions" version '0.20.0'
diff --git a/gradle.properties b/gradle.properties
index 4510a1f..3e6f787 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,7 +17,7 @@ groovyVersion = 3.0.0-SNAPSHOT
 # bundle version format: major('.'minor('.'micro('.'qualifier)?)?)? (first 3 only digits)
 groovyBundleVersion = 3.0.0.SNAPSHOT
 
-gradle_version=5.0
+gradle_version=4.10.3
 
 groovyJUnit_ms=512m
 groovyJUnit_mx=1g
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 29953ea..457aad0 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 75b8c7c..290541c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index cccdd3d..af6708f 100755
--- a/gradlew
+++ b/gradlew
@@ -28,7 +28,7 @@ APP_NAME="Gradle"
 APP_BASE_NAME=`basename "$0"`
 
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+DEFAULT_JVM_OPTS='"-Xmx64m"'
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD="maximum"
diff --git a/gradlew.bat b/gradlew.bat
index e95643d..0f8d593 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
 @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
+set DEFAULT_JVM_OPTS="-Xmx64m"
 
 @rem Find java.exe
 if defined JAVA_HOME goto findJavaFromJavaHome


[groovy] 10/28: build tweak: move test to use a slightly earlier phase to avoid stray class files from being produced

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 008509fb0f8600c4a0c094424cd913cd973245cb
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue Dec 18 16:46:38 2018 +1000

    build tweak: move test to use a slightly earlier phase to avoid stray class files from being produced
---
 .../org/codehaus/groovy/macro/MacroTest.groovy     | 37 +++++++++-------------
 1 file changed, 15 insertions(+), 22 deletions(-)

diff --git a/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy b/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy
index a091335..e3bade5 100644
--- a/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy
+++ b/subprojects/groovy-macro/src/test/groovy/org/codehaus/groovy/macro/MacroTest.groovy
@@ -18,8 +18,8 @@
  */
 package org.codehaus.groovy.macro
 
-import groovy.transform.CompileStatic;
-import org.codehaus.groovy.runtime.metaclass.MethodSelectionException;
+import groovy.transform.CompileStatic
+import org.codehaus.groovy.runtime.metaclass.MethodSelectionException
 
 /**
  *
@@ -120,41 +120,34 @@ class MacroTest extends GroovyTestCase {
 
     void testCompilePhase() {
         assertScript '''
-        import org.codehaus.groovy.ast.expr.*;
-        import org.codehaus.groovy.ast.stmt.*;
-        import org.codehaus.groovy.ast.ClassHelper;
-        import org.codehaus.groovy.ast.builder.AstAssert;
-        import org.codehaus.groovy.control.CompilePhase;
+        import org.codehaus.groovy.ast.builder.AstAssert
+        import org.codehaus.groovy.control.CompilePhase
 
-        import static org.codehaus.groovy.ast.tools.GeneralUtils.*;
+        import static org.codehaus.groovy.ast.tools.GeneralUtils.*
 
-
-        def result = macro(CompilePhase.FINALIZATION) {
+        def result = macro(CompilePhase.CLASS_GENERATION) {
             println "foo"
             println "bar"
         }
 
         def expected = block(
             stmt(callThisX("println", args(constX("foo")))),
-            // In FINALIZATION phase last println will be ReturnStatement
+            // by end of CLASS_GENERATION phase last println will be ReturnStatement
             returnS(callThisX("println", args(constX("bar")))),
         )
 
-        AstAssert.assertSyntaxTree([expected], [result]);
-'''
+        AstAssert.assertSyntaxTree([expected], [result])
+        '''
     }
 
     void testAsIsWithCompilePhase() {
         assertScript '''
-        import org.codehaus.groovy.ast.expr.*;
-        import org.codehaus.groovy.ast.stmt.*;
-        import org.codehaus.groovy.ast.ClassHelper;
-        import org.codehaus.groovy.ast.builder.AstAssert;
-        import org.codehaus.groovy.control.CompilePhase;
+        import org.codehaus.groovy.ast.builder.AstAssert
+        import org.codehaus.groovy.control.CompilePhase
 
-        import static org.codehaus.groovy.ast.tools.GeneralUtils.*;
+        import static org.codehaus.groovy.ast.tools.GeneralUtils.*
 
-        def result = macro(CompilePhase.FINALIZATION, true) {
+        def result = macro(CompilePhase.CLASS_GENERATION, true) {
             println "foo"
         }
 
@@ -162,8 +155,8 @@ class MacroTest extends GroovyTestCase {
             returnS(callThisX("println", args(constX("foo"))))
         )
 
-        AstAssert.assertSyntaxTree([expected], [result]);
-'''
+        AstAssert.assertSyntaxTree([expected], [result])
+        '''
     }
 
     void testCompileStatic() {


[groovy] 05/28: Trivial refactoring: remove unnecessary condition

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch refine-groovydoc
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 20e7c41780a28d6d99c0ea7f4fa8b2c2cf48d656
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Dec 16 23:17:19 2018 +0800

    Trivial refactoring: remove unnecessary condition
---
 .../org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index be7425b..e33d38e 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -4173,7 +4173,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
         if (exp instanceof VariableExpression) {
             VariableExpression var = (VariableExpression) exp;
             final Variable accessedVariable = var.getAccessedVariable();
-            if (accessedVariable != null && accessedVariable != exp && accessedVariable instanceof VariableExpression) {
+            if (accessedVariable != exp && accessedVariable instanceof VariableExpression) {
                 storeType((Expression) accessedVariable, cn);
             }
             if (accessedVariable instanceof Parameter) {
@@ -4836,7 +4836,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                 checkOrMarkPrivateAccess(vexp, fieldNode, isLHSOfEnclosingAssignment(vexp));
                 return getType(fieldNode);
             }
-            if (variable != null && variable != vexp && variable instanceof VariableExpression) {
+            if (variable != vexp && variable instanceof VariableExpression) {
                 return getType((Expression) variable);
             }
             if (variable instanceof Parameter) {