Rationale
Groovy has become a pretty complete package with more than just the language itself, but also with several useful APIs and wrappers to simplify the life of developers, dealing with Ant, Swing, XML, JDBC, command-line, and more. The main groovy-all JAR has reached over 4MB, preventing, for example, usage in an applet, as the time to load the JAR is too long. Recognizing that nobody needs everything in Groovy, it is time we rework the Groovy source organization, deliverables, project build, and more. However, this is a "big bang" kind of change that needs a good level of discipline to get through properly, as several key steps will have to be made.
Key steps
Having a modular system means that:
...
- providing a new build which will support multiple modules in the future
- migrating to a DVCS system to ease the migration
- progressively migrate one module at a time, to avoid any breakage
Build System
The major options for modular build systems are:
...
- IDEs: IntelliJ IDEA supports Gradle out of the box, for instance
- CI: continuous integration servers should be able to build a Gradle-poweed build of Groovy
Source reorganization and repository
Move to a DVCS system: Git
To help with external contributions, and also to ease the work of source code reorganization, it'll be interesting to move to a different source code repository, moving from Subversion to a distributed source control system. Git is the choice made for DVCS at Codehaus, so we'll migrate to Git as part of the process.
...
- IDEs: IntelliJ IDEA offers a great support of Git, the command-line is also usable, of course. Eclipse has some support for Git.
- FishEye: FishEye is pretty handy for navigating in the source's history. We need to check that the issues of FishEye support for Git are fixed.
- CI: the continuous integration servers should be able to checkout the source code from Git. Codehaus' Bamboo already has suypport for Git.
Base structure
The current SVN structure does not really follow standards. For example, groovy-core, a separately release component (at the moment, hope to change), is located at: http://svn.codehaus.org/groovy/trunk/groovy/groovy-core/
This should really be something like:
The modules listed above would be listed under: http://svn.codehaus.org/groovy/core/trunk/<module>
And they would be release together. Completely optional projects, like the native support, ide support, etc. should be located at: http://svn.codehaus.org/groovy/<project>/trunk
...
There should be a central index of core modules, non-core centrally managed modules and of any other modules people care to register with the index.
Other considerations
OSGi
Since we've made Groovy's deliverables be proper OSGi bundles, we need to persue our efforts, and make sure the core modules are also valid OSGi bundles, also marking dependencies between core modules, and external dependencies.
DefaultGroovyMethods registration
Some modules (swing, sql) also provide their own DefaultGroovyMethods. We'll need to figure out a way for these modules to register their own DGM methods, such as a META-INF/services technique.
Capabilities support
An old JIRA issue we may consider: http://jira.codehaus.org/browse/GROOVY-2422
The idea is to provide a "capabilities" mechanism to Groovy, to know which features are supported in the current Groovy version.
Inspired by this issue, we could at least provide some utility class (for instance in GroovySystem) where we could discover the existing modules available on the classpath.
Modules
Proposed structure
Here's a module structure we could follow. We shouldn't multiplicate the number of modules to a useless high number, but focus on core functionality, and ensure a pure core will be small enough to be easily embeddable and downloadable (for applets, mobile devices such as Android, etc.)
- groovy-core
- modules
- test
- jmx
- swing
- xml
- sql
- web
- template
- integration
- bean-scripting-framework
- javax.script
- tools
- groovydoc
- shell
- console
- java2groovy
Issues to be aware of
Certain classes would naturally belong to certain modules, but are sometimes used in core, etc.
...
The groupings below are done per functionality, so even if some utility class like groovy.util.GroovyMBean is in groovy.util, I moved it to the jmx module. Ultimately, it'd certainly be nicer to move such classes into their proper packages, following a deprecation strategy.
More detailed regroupment of classes into each module
I've created a little Groovy script to list / group all the Java and Groovy classes per package. Afterwards, I've moved the packages and some individual classes to form modules according to their respective feature set.
...
Module: groovy-core
Package: groovy.beans
- Bindable.java
- BindableASTTransformation.java
- Vetoable.java
- VetoableASTTransformation.java
Package: groovy.grape
- GrabAnnotationTransformation.java
- Grape.java
- GrapeEngine.java
- GrapeIvy.groovy
Package: groovy.io
- EncodingAwareBufferedWriter.java
- GroovyPrintStream.java
- GroovyPrintWriter.java
- PlatformLineWriter.java
Package: groovy.lang
- AdaptingMetaClass.java
- BenchmarkInterceptor.java
- Binding.java
- Buildable.java
- Category.java
- Closure.java
- ClosureException.java
- ClosureInvokingMethod.java
- Delegate.java
- DelegatingMetaClass.java
- DeprecationException.java
- EmptyRange.java
- ExpandoMetaClass.java
- ExpandoMetaClassCreationHandle.java
- Grab.java
- GrabConfig.java
- GrabExclude.java
- GrabResolver.java
- Grapes.java
- GroovyClassLoader.java
- GroovyCodeSource.java
- GroovyInterceptable.java
- GroovyLogTestCase.groovy
- GroovyObject.java
- GroovyObjectSupport.java
- GroovyResourceLoader.java
- GroovyRuntimeException.java
- GroovyShell.java
- GroovySystem.java
- GString.java
- IllegalPropertyAccessException.java
- Immutable.java
- IncorrectClosureArgumentsException.java
- Interceptor.java
- IntRange.java
- Lazy.java
- MetaArrayLengthProperty.java
- MetaBeanProperty.java
- MetaClass.java
- MetaClassImpl.java
- MetaClassRegistry.java
- MetaClassRegistryChangeEvent.java
- MetaClassRegistryChangeEventListener.java
- MetaExpandoProperty.java
- MetaMethod.java
- MetaObjectProtocol.java
- MetaProperty.java
- MissingClassException.java
- MissingFieldException.java
- MissingMethodException.java
- MissingPropertyException.java
- Mixin.java
- MutableMetaClass.java
- Newify.java
- NonEmptySequence.java
- ObjectRange.java
- PackageScope.java
- ParameterArray.java
- PropertyAccessInterceptor.java
- PropertyValue.java
- ProxyMetaClass.java
- Range.java
- ReadOnlyPropertyException.java
- Reference.java
- Script.java
- Sequence.java
- Singleton.java
- SpreadListEvaluatingException.java
- SpreadMap.java
- SpreadMapEvaluatingException.java
- StringWriterIOException.java
- TracingInterceptor.java
- Tuple.java
- Writable.java
Package: groovy.security
- GroovyCodeSourcePermission.java
Package: groovy.time
- BaseDuration.java
- DatumDependentDuration.java
- Duration.java
- TimeCategory.java
- TimeDatumDependentDuration.java
- TimeDuration.java
Package: org.codehaus.groovy.ant
- AntProjectPropertiesDelegate.java
- CompileTaskSupport.java
- FileIterator.java
- FileScanner.java
- GenerateStubsTask.java
- Groovy.java
- Groovyc.java
- GroovycTask.java
- Groovydoc.java
- LoggingHelper.java
- RootLoaderRef.java
- UberCompileTask.java
- VerifyClass.java
Package: org.codehaus.groovy.antlr
- AntlrASTProcessor.java
- AntlrASTProcessSnippets.java
- AntlrParserPlugin.java
- AntlrParserPluginFactory.java
- ASTParserException.java
- ASTRuntimeException.java
- EnumHelper.java
- GroovySourceAST.java
- GroovySourceToken.java
Package: org.codehaus.groovy.antlr.parser
- GroovyLexer.java
- GroovyRecognizer.java
- GroovyTokenTypes.java
- SourceBuffer.java
- SourceInfo.java
Package: org.codehaus.groovy.antlr.treewalker
- CompositeVisitor.java
- FlatNodeListTraversal.java
- MindMapPrinter.java
- NodeAsHTMLPrinter.java
- NodeCollector.java
- NodePrinter.java
- PreOrderTraversal.java
- SourceCodeTraversal.java
- SourcePrinter.java
- TraversalHelper.java
- Visitor.java
- VisitorAdapter.java
- UnicodeEscapingReader.java
Package: org.codehaus.groovy.ast
- AnnotatedNode.java
- AnnotationNode.java
- ASTNode.java
Package: org.codehaus.groovy.ast.builder
- AstBuilder.groovy
- AstBuilderTransformation.groovy
- AstSpecificationCompiler.groovy
- AstStringCompiler.groovy
- ClassCodeExpressionTransformer.java
- ClassCodeVisitorSupport.java
- ClassHelper.java
- ClassNode.java
- CodeVisitorSupport.java
- CompileUnit.java
- ConstructorNode.java
- DynamicVariable.java
Package: org.codehaus.groovy.ast.expr
- AnnotationConstantExpression.java
- ArgumentListExpression.java
- ArrayExpression.java
- AttributeExpression.java
- BinaryExpression.java
- BitwiseNegationExpression.java
- BooleanExpression.java
- CastExpression.java
- ClassExpression.java
- ClosureExpression.java
- ClosureListExpression.java
- ConstantExpression.java
- ConstructorCallExpression.java
- DeclarationExpression.java
- ElvisOperatorExpression.java
- EmptyExpression.java
- Expression.java
- ExpressionTransformer.java
- FieldExpression.java
- GStringExpression.java
- ListExpression.java
- MapEntryExpression.java
- MapExpression.java
- MethodCallExpression.java
- MethodPointerExpression.java
- NamedArgumentListExpression.java
- NotExpression.java
- PostfixExpression.java
- PrefixExpression.java
- PropertyExpression.java
- RangeExpression.java
- RegexExpression.java
- SpreadExpression.java
- SpreadMapExpression.java
- StaticMethodCallExpression.java
- TernaryExpression.java
- TupleExpression.java
- UnaryMinusExpression.java
- UnaryPlusExpression.java
- VariableExpression.java
- FieldNode.java
- GenericsType.java
- GroovyClassVisitor.java
- GroovyCodeVisitor.java
- ImportNode.java
- InnerClassNode.java
- InterfaceHelperClassNode.java
- MethodNode.java
- MixinASTTransformation.java
- MixinNode.java
- ModuleNode.java
- PackageNode.java
- Parameter.java
- PropertyNode.java
Package: org.codehaus.groovy.ast.stmt
- AssertStatement.java
- BlockStatement.java
- BreakStatement.java
- CaseStatement.java
- CatchStatement.java
- ContinueStatement.java
- DoWhileStatement.java
- EmptyStatement.java
- ExpressionStatement.java
- ForStatement.java
- IfStatement.java
- ReturnStatement.java
- Statement.java
- SwitchStatement.java
- SynchronizedStatement.java
- ThrowStatement.java
- TryCatchStatement.java
- WhileStatement.java
- Variable.java
- VariableScope.java
Package: org.codehaus.groovy.binding
- AbstractFullBinding.java
- AggregateBinding.java
- BindingProxy.java
- BindingUpdatable.java
- BindPath.java
- ClosureSourceBinding.java
- ClosureTriggerBinding.java
- EventTriggerBinding.java
- FullBinding.java
- MutualPropertyBinding.java
- PropertyBinding.java
- PropertyChangeProxyTargetBinding.java
- PropertyPathFullBinding.java
- SourceBinding.java
- SwingTimerTriggerBinding.java
- TargetBinding.java
- TriggerBinding.java
Package: org.codehaus.groovy.classgen
- AnnotationVisitor.java
- AsmClassGenerator.java
- BytecodeExpression.java
- BytecodeHelper.java
- BytecodeInstruction.java
- BytecodeSequence.java
- ClassCompletionVerifier.java
- ClassGenerator.java
- ClassGeneratorException.java
- CompileStack.java
- DummyClassGenerator.java
- EnumVisitor.java
- ExtendedVerifier.java
- genArrayAccess.groovy
- genArrays.groovy
- genDgmMath.groovy
- GeneratorContext.java
- genMathModification.groovy
- GroovyCompilerVersion.java
- InnerClassVisitor.java
- MethodCaller.java
- MethodCallerMultiAdapter.java
- ReturnAdder.java
- RuntimeIncompleteClassException.java
- Variable.java
- VariableScopeVisitor.java
- Verifier.java
- VerifierCodeVisitor.java
Package: org.codehaus.groovy.control
- CompilationFailedException.java
- CompilationUnit.java
- CompilePhase.java
- CompilerConfiguration.java
- ConfigurationException.java
- ErrorCollector.java
- GenericsVisitor.java
- HasCleanup.java
Package: org.codehaus.groovy.control.io
- AbstractReaderSource.java
- FileReaderSource.java
- InputStreamReaderSource.java
- NullWriter.java
- ReaderSource.java
- StringReaderSource.java
- URLReaderSource.java
- Janitor.java
- LabelVerifier.java
Package: org.codehaus.groovy.control.messages
- ExceptionMessage.java
- LocatedMessage.java
- Message.java
- SimpleMessage.java
- SyntaxErrorMessage.java
- WarningMessage.java
- MultipleCompilationErrorsException.java
- OptimizerVisitor.java
- ParserPlugin.java
- ParserPluginFactory.java
- Phases.java
- ProcessingUnit.java
- ResolveVisitor.java
- SourceUnit.java
- StaticImportVisitor.java
- GroovyBugError.java
Package: org.codehaus.groovy.tools.ast
- TranformTestHelper.groovy
- Compiler.java
- DgmConverter.java
- ErrorReporter.java
- FileSystemCompiler.java
- GrapeMain.groovy
- GroovyClass.java
Package: org.codehaus.groovy.tools.gse
- DependencyTracker.java
- StringSetMap.java
Package: org.codehaus.groovy.tools.javac
- JavaAwareCompilationUnit.java
- JavaAwareResolveVisitor.java
- JavacCompilerFactory.java
- JavacJavaCompiler.java
- JavaCompiler.java
- JavaCompilerFactory.java
- JavaStubCompilationUnit.java
- JavaStubGenerator.java
- LoaderConfiguration.java
- RootLoader.java
Package: org.codehaus.groovy.transform
- ASTTransformation.java
- ASTTransformationCollectorCodeVisitor.java
- ASTTransformationVisitor.java
- CategoryASTTransformation.java
- DelegateASTTransformation.java
- GroovyASTTransformation.java
- GroovyASTTransformationClass.java
- ImmutableASTTransformation.java
- LazyASTTransformation.java
- NewifyASTTransformation.java
- PackageScopeASTTransformation.java
Package: org.codehaus.groovy.transform.powerassert
- AssertionRenderer.java
- AssertionRewriter.java
- AssertionTransformation.java
- AssertionVerifier.java
- PowerAssertionError.java
- SourceText.java
- SourceTextNotAvailableException.java
- StatementReplacingVisitorSupport.java
- TruthExpressionRewriter.java
- Value.java
- ValueRecorder.java
- SingletonASTTransformation.java
Package: org.codehaus.groovy.util
- AbstractConcurrentDoubleKeyMap.java
- AbstractConcurrentMap.java
- AbstractConcurrentMapBase.java
- ComplexKeyHashMap.java
- DoubleKeyHashMap.java
- FastArray.java
- Finalizable.java
- HashCodeHelper.java
- LazyReference.java
- LockableObject.java
- ManagedConcurrentMap.java
- ManagedDoubleKeyMap.java
- ManagedLinkedList.java
- ManagedReference.java
- Reference.java
- ReferenceBundle.java
- ReferenceManager.java
- ReferenceType.java
- ReleaseInfo.java
- SingleKeyHashMap.java
- TripleKeyHashMap.java
Package: org.codehaus.groovy.runtime.typehandling
- BigDecimalMath.java
- BigIntegerMath.java
- ClassDistance.java
- DefaultTypeTransformation.java
- FloatingPointMath.java
- GroovyCastException.java
- IntegerMath.java
- LongMath.java
- NumberMath.java
- NumberMathModificationInfo.java
Package: org.codehaus.groovy.runtime.wrappers
- BooleanWrapper.java
- ByteWrapper.java
- CharWrapper.java
- DoubleWrapper.java
- FloatWrapper.java
- GroovyObjectWrapper.java
- IntWrapper.java
- LongWrapper.java
- PojoWrapper.java
- ShortWrapper.java
- Wrapper.java
- WritableFile.java
- XmlGroovyMethods.java
Package: org.codehaus.groovy.syntax
- ASTHelper.java
- CSTNode.java
- Numbers.java
- ParserException.java
- ReadException.java
- Reduction.java
- RuntimeParserException.java
- SyntaxException.java
- Token.java
- TokenException.java
- TokenMismatchException.java
- Types.java
Package: org.codehaus.groovy.reflection
- CachedClass.java
- CachedConstructor.java
- CachedField.java
- CachedMethod.java
- ClassInfo.java
- ClassLoaderForClassArtifacts.java
- GeneratedMetaMethod.java
- handlegen.groovy
- MethodHandle.java
- MethodHandleFactory.java
- MixinInMetaClass.java
- ParameterTypes.java
- ReflectionCache.java
- ReflectionUtils.java
Package: org.codehaus.groovy.reflection.stdclasses
- ArrayCachedClass.java
- BigDecimalCachedClass.java
- BigIntegerCachedClass.java
- BooleanCachedClass.java
- ByteCachedClass.java
- CachedClosureClass.java
- CharacterCachedClass.java
- DoubleCachedClass.java
- FloatCachedClass.java
- IntegerCachedClass.java
- LongCachedClass.java
- NumberCachedClass.java
- ObjectCachedClass.java
- ShortCachedClass.java
- StringCachedClass.java
- SunClassLoader.java
Package: org.codehaus.groovy.runtime
- ArrayUtil.java
Package: org.codehaus.groovy.runtime.callsite
- AbstractCallSite.java
- CallSite.java
- CallSiteArray.java
- CallSiteAwareMetaMethod.java
- CallSiteClassLoader.java
- CallSiteGenerator.java
- ClassMetaClassGetPropertySite.java
- ConstructorMetaClassSite.java
- ConstructorMetaMethodSite.java
- ConstructorSite.java
- DummyCallSite.java
- GetEffectivePogoFieldSite.java
- GetEffectivePogoPropertySite.java
- GetEffectivePojoFieldSite.java
- GetEffectivePojoPropertySite.java
- GroovySunClassLoader.java
- MetaClassConstructorSite.java
- MetaClassSite.java
- MetaMethodSite.java
- NullCallSite.java
- PerInstancePojoMetaClassSite.java
- PogoGetPropertySite.java
- PogoInterceptableSite.java
- PogoMetaClassGetPropertySite.java
- PogoMetaClassSite.java
- PogoMetaMethodSite.java
- PojoMetaClassGetPropertySite.java
- PojoMetaClassSite.java
- PojoMetaMethodSite.java
- StaticMetaClassSite.java
- StaticMetaMethodSite.java
- ClassExtender.java
- ConversionHandler.java
- ConvertedClosure.java
- ConvertedMap.java
- CurriedClosure.java
- DefaultCachedMethodKey.java
- DefaultGroovyMethods.java
- DefaultGroovyMethodsSupport.java
- DefaultGroovyStaticMethods.java
- DefaultMethodKey.java
Package: org.codehaus.groovy.runtime.dgmimpl.arrays
- ArrayGetAtMetaMethod.java
- ArrayMetaMethod.java
- ArrayPutAtMetaMethod.java
- BooleanArrayGetAtMetaMethod.java
- BooleanArrayPutAtMetaMethod.java
- ByteArrayGetAtMetaMethod.java
- ByteArrayPutAtMetaMethod.java
- CharacterArrayGetAtMetaMethod.java
- CharacterArrayPutAtMetaMethod.java
- DoubleArrayGetAtMetaMethod.java
- DoubleArrayPutAtMetaMethod.java
- FloatArrayGetAtMetaMethod.java
- FloatArrayPutAtMetaMethod.java
- IntegerArrayGetAtMetaMethod.java
- IntegerArrayPutAtMetaMethod.java
- LongArrayGetAtMetaMethod.java
- LongArrayPutAtMetaMethod.java
- ObjectArrayGetAtMetaMethod.java
- ObjectArrayPutAtMetaMethod.java
- ShortArrayGetAtMetaMethod.java
- ShortArrayPutAtMetaMethod.java
- NumberNumberDiv.java
- NumberNumberMetaMethod.java
- NumberNumberMinus.java
- NumberNumberMultiply.java
- NumberNumberPlus.java
- FlushingStreamWriter.java
- GeneratedClosure.java
- GroovyCategorySupport.java
- GStringImpl.java
- HandleMetaClass.java
- InvokerHelper.java
- InvokerInvocationException.java
- IteratorClosureAdapter.java
Package: org.codehaus.groovy.runtime.metaclass
- ClosureMetaClass.java
- ClosureMetaMethod.java
- ClosureStaticMetaMethod.java
- ConcurrentReaderHashMap.java
- MemoryAwareConcurrentReadMap.java
- MetaClassRegistryImpl.java
- MetaMethodIndex.java
- MethodHelper.java
- MethodSelectionException.java
- MissingMethodExceptionNoStack.java
- MissingMethodExecutionFailed.java
- MissingPropertyExceptionNoStack.java
- MixedInMetaClass.java
- MixinInstanceMetaMethod.java
- MixinInstanceMetaProperty.java
- NewInstanceMetaMethod.java
- NewMetaMethod.java
- NewStaticMetaMethod.java
- OwnedMetaClass.java
- ReflectionMetaMethod.java
- ReflectorLoader.java
- TemporaryMethodKey.java
- ThreadManagedMetaBeanProperty.java
- TransformMetaMethod.java
- MetaClassHelper.java
- MethodClosure.java
- MethodKey.java
- MethodRankHelper.java
- NullObject.java
- ReflectionMethodInvoker.java
- Reflector.java
- RegexSupport.java
- ReverseListIterator.java
- ScriptBytecodeAdapter.java
- ScriptReference.java
- ScriptTestAdapter.java
- StackTraceUtils.java
- StringBufferWriter.java
- TimeCategory.java
Package: groovy.util
- AbstractFactory.java
- AllTestSuite.java
- AntBuilder.java
- BuilderSupport.java
- CharsetToolkit.java
- CliBuilder.groovy
- ClosureComparator.java
- ConfigObject.groovy
- ConfigSlurper.groovy
- Eval.java
- Expando.java
- Factory.java
- FactoryBuilderSupport.java
- FileNameByRegexFinder.groovy
- FileNameFinder.groovy
- GroovyCollections.java
- GroovyLog.java
- GroovyScriptEngine.java
- GroovyShellTestCase.groovy
- GroovyTestCase.java
- GroovyTestSuite.java
- IFileNameFinder.java
- IndentPrinter.java
- MapEntry.java
- Node.java
- NodeBuilder.java
- NodeList.java
- NodePrinter.java
- ObjectGraphBuilder.java
- ObservableList.java
- ObservableMap.java
- OrderBy.java
- PermutationGenerator.java
- Proxy.java
- ProxyGenerator.java
- ResourceConnector.java
- ResourceException.java
- ScriptException.java
Package: org.codehaus.groovy.vmplugin.v4
- Java4.java
Package: org.codehaus.groovy.vmplugin.v5
- Java5.java
- JUnit4Utils.java
- PluginDefaultGroovyMethods.java
- TestNgUtils.java
- VMPlugin.java
- VMPluginFactory.java
...
Module: test
Package: groovy.mock
Package: groovy.mock.interceptor
- Demand.groovy
- LooseExpectation.groovy
- MockFor.groovy
- MockInterceptor.groovy
- MockProxyMetaClass.java
- StrictExpectation.groovy
- StubFor.groovy
...
Module: jmx
Package: groovy.jmx
Package: groovy.jmx.builder
- JmxAttributeInfoManager.groovy
- JmxBeanExportFactory.groovy
- JmxBeanFactory.groovy
- JmxBeanInfoManager.groovy
- JmxBeansFactory.groovy
- JmxBuilder.groovy
- JmxBuilderException.java
- JmxBuilderModelMBean.java
- JmxBuilderTools.groovy
- JmxClientConnectorFactory.groovy
- JmxEmitterFactory.groovy
- JmxEventEmitter.java
- JmxEventEmitterMBean.java
- JmxEventListener.java
- JmxListenerFactory.groovy
- JmxMetaMapBuilder.groovy
- JmxOperationInfoManager.groovy
- JmxServerConnectorFactory.groovy
- JmxTimerFactory.groovy
Package: groovy.util
- GroovyMBean.java
...
Module: swing
Package: groovy.model
- ClosureModel.java
- DefaultTableColumn.java
- DefaultTableModel.java
- FormModel.java
- NestedValueModel.java
- PropertyModel.java
- ValueHolder.java
- ValueModel.java
Package: groovy.swing
Package: groovy.swing.binding
- AbstractButtonProperties.java
- AbstractSyntheticBinding.java
- AbstractSyntheticMetaMethods.groovy
- JComboBoxMetaMethods.groovy
- JComboBoxProperties.java
- JComponentProperties.java
- JScrollBarProperties.java
- JSliderProperties.java
- JSpinnerProperties.java
- JTableMetaMethods.groovy
- JTableProperties.java
- JTextComponentProperties.java
Package: groovy.swing.factory
- ActionFactory.groovy
- BeanFactory.groovy
- BevelBorderFactory.groovy
- BindFactory.groovy
- BindGroupFactory.groovy
- BindProxyFactory.groovy
- BoxFactory.groovy
- BoxLayoutFactory.groovy
- ButtonGroupFactory.groovy
- CollectionFactory.groovy
- ComboBoxFactory.groovy
- ComponentFactory.groovy
- CompoundBorderFactory.groovy
- DialogFactory.groovy
- EmptyBorderFactory.groovy
- EtchedBorderFactory.groovy
- FormattedTextFactory.groovy
- FrameFactory.groovy
- GridBagFactory.groovy
- ImageIconFactory.groovy
- InternalFrameFactory.groovy
- LayoutFactory.groovy
- LineBorderFactory.groovy
- ListFactory.groovy
- MapFactory.groovy
- MatteBorderFactory.groovy
- RendererFactory.groovy
- RichActionWidgetFactory.groovy
- RootPaneContainerFactory.groovy
- ScrollPaneFactory.groovy
- SeparatorFactory.groovy
- SplitPaneFactory.groovy
- SwingBorderFactory.groovy
- TabbedPaneFactory.groovy
- TableFactory.groovy
- TableLayoutFactory.groovy
- TableModelFactory.groovy
- TextArgWidgetFactory.groovy
- TitledBorderFactory.groovy
- WidgetFactory.groovy
- WindowFactory.groovy
Package: groovy.swing.impl
- ClosureRenderer.java
- ComponentFacade.java
- ContainerFacade.java
- DefaultAction.java
- Startable.java
- TableLayout.java
- TableLayoutCell.java
- TableLayoutRow.java
- LookAndFeelHelper.groovy
- SwingBuilder.groovy
Package: org.codehaus.groovy.runtime.metaclass
- SwingGroovyMethods.java
...
Module: xml
Package: groovy.util.slurpersupport
- Attribute.java
- Attributes.java
- FilteredAttributes.java
- FilteredNodeChildren.java
- GPathResult.java
- NoChildren.java
- Node.java
- NodeChild.java
- NodeChildren.java
- NodeIterator.java
- ReplacementNode.java
- XmlNodePrinter.java
- XmlParser.java
- XmlSlurper.java
Package: groovy.xml
Package: groovy.xml.dom
- DOMCategory.java
- DOMUtil.java
- DOMBuilder.java
- Entity.groovy
- FactorySupport.java
- MarkupBuilder.java
- MarkupBuilderHelper.java
- Namespace.java
- NamespaceBuilder.java
- NamespaceBuilderSupport.java
- QName.java
- SAXBuilder.java
- StaxBuilder.groovy
- StreamingDOMBuilder.groovy
- StreamingMarkupBuilder.groovy
Package: groovy.xml.streamingmarkupsupport
- AbstractStreamingBuilder.groovy
- BaseMarkupBuilder.java
- Builder.java
- StreamingMarkupWriter.java
- StreamingSAXBuilder.groovy
- XmlUtil.java
Package: org.codehaus.groovy.tools.xml
- DomToGroovy.java
...
Module: sql
Package: groovy.sql
- CallResultSet.java
- DataSet.java
- ExpandedVariable.java
- GroovyResultSet.java
- GroovyResultSetExtension.java
- GroovyResultSetProxy.java
- GroovyRowResult.java
- InOutParameter.java
- InParameter.java
- OutParameter.java
- ResultSetMetaDataWrapper.java
- ResultSetOutParameter.java
- Sql.java
- SqlOrderByVisitor.java
- SqlWhereVisitor.java
Package: org.codehaus.groovy.runtime.metaclass
- SqlGroovyMethods.java
...
Module: web
Package: groovy.servlet
- AbstractHttpServlet.java
- GroovyServlet.java
- ServletBinding.java
- ServletCategory.java
- TemplateServlet.java
...
Module: template-engine
Package: groovy.text
- GStringTemplateEngine.java
- SimpleTemplateEngine.java
- Template.java
- TemplateEngine.java
- XmlTemplateEngine.java
...
Module: bean-scripting-framework
Package: org.codehaus.groovy.bsf
- CachingGroovyEngine.java
- GroovyEngine.java
...
Module: javax.script (jsr-223)
Package: org.codehaus.groovy.jsr223
- GroovyCompiledScript.java
- GroovyScriptEngineFactory.java
- GroovyScriptEngineImpl.java
...
Module: groovydoc
Package: org.codehaus.groovy.tools.groovydoc
- ClasspathResourceManager.java
- ExternalGroovyClassDoc.java
- FileOutputTool.java
- FileSystemResourceManager.java
- GroovyDocTemplateEngine.java
- GroovyDocTool.java
- GroovyDocWriter.java
- GroovyRootDocBuilder.java
Package: org.codehaus.groovy.tools.groovydoc.gstringTemplates.topLevel
- LinkArgument.java
- MockOutputTool.java
- OutputTool.java
- ResourceManager.java
- SimpleGroovyAnnotationRef.java
- SimpleGroovyClassDoc.java
- SimpleGroovyClassDocAssembler.java
- SimpleGroovyConstructorDoc.java
- SimpleGroovyDoc.java
- SimpleGroovyExecutableMemberDoc.java
- SimpleGroovyFieldDoc.java
- SimpleGroovyMemberDoc.java
- SimpleGroovyMethodDoc.java
- SimpleGroovyPackageDoc.java
- SimpleGroovyParameter.java
- SimpleGroovyProgramElementDoc.java
- SimpleGroovyRootDoc.java
- SimpleGroovyTag.java
- SimpleGroovyType.java
- GroovyStarter.java
Package: org.codehaus.groovy.groovydoc
- GroovyAnnotationRef.java
- GroovyClassDoc.java
- GroovyConstructorDoc.java
- GroovyDoc.java
- GroovyDocErrorReporter.java
- GroovyExecutableMemberDoc.java
- GroovyFieldDoc.java
- GroovyMemberDoc.java
- GroovyMethodDoc.java
- GroovyPackageDoc.java
- GroovyParameter.java
- GroovyProgramElementDoc.java
- GroovyRootDoc.java
- GroovyTag.java
- GroovyType.java
- GroovyException.java
- GroovyExceptionInterface.java
...
Module: shell
Package: org.codehaus.groovy.tools.shell
- BufferManager.groovy
- Command.groovy
- CommandAlias.groovy
- CommandRegistry.groovy
- CommandSupport.groovy
- ComplexCommandSupport.groovy
- ExitNotification.groovy
- Groovysh.groovy
- InteractiveShellRunner.groovy
- Interpreter.groovy
- IO.java
- Main.groovy
- Parser.groovy
- Shell.groovy
- ShellRunner.groovy
Package: org.codehaus.groovy.tools.shell.commands
- AliasCommand.groovy
- ClearCommand.groovy
- DisplayCommand.groovy
- EditCommand.groovy
- ExitCommand.groovy
- HelpCommand.groovy
- HistoryCommand.groovy
- ImportCommand.groovy
- InspectCommand.groovy
- LoadCommand.groovy
- PurgeCommand.groovy
- RecordCommand.groovy
- RegisterCommand.groovy
- SaveCommand.groovy
- SetCommand.groovy
- ShadowCommand.groovy
- ShowCommand.groovy
Package: org.codehaus.groovy.tools.shell.util
- ClassNameCompletor.groovy
- HelpFormatter.groovy
- Logger.java
- MessageSource.java
- NoExitSecurityManager.java
- Preferences.java
- SimpleCompletor.java
- XmlCommandRegistrar.groovy
...
Module: console
Package: groovy.inspect
- Inspector.java
Package: groovy.inspect.swingui
- AstBrowser.groovy
- AstBrowserProperties.groovy
- ObjectBrowser.groovy
- ScriptToTreeNodeAdapter.groovy
- TableMap.java
- TableSorter.java
Package: groovy.ui
- Console.groovy
- ConsoleActions.groovy
- ConsoleApplet.groovy
- ConsoleSupport.java
- ConsoleTextEditor.java
- ConsoleView.groovy
- GroovyMain.java
- GroovySocketServer.java
- HistoryRecord.groovy
Package: groovy.ui.icons
- InteractiveShell.java
- OutputTransforms.groovy
- SystemOutputInterceptor.java
Package: groovy.ui.text
- AutoIndentAction.groovy
- FindReplaceUtility.java
- GroovyFilter.java
- StructuredSyntaxDocumentFilter.java
- StructuredSyntaxHandler.java
- StructuredSyntaxResources.java
- TextEditor.java
- TextUndoManager.java
Package: groovy.ui.view
- BasicContentPane.groovy
- BasicMenuBar.groovy
- BasicStatusBar.groovy
- BasicToolBar.groovy
- Defaults.groovy
- GTKDefaults.groovy
- MacOSXDefaults.groovy
- MacOSXMenuBar.groovy
- WindowsDefaults.groovy
...
Module: java2groovy
Package: org.codehaus.groovy.antlr.java
- Groovifier.java
- Java2GroovyConverter.java
- Java2GroovyMain.java
- JavaLexer.java
- JavaRecognizer.java
- JavaTokenTypes.java
- PreJava2GroovyConverter.java
- LexerFrame.java
- LineColumn.java
- Main.java