Add the GroovyScriptEngine and change the GroovyServlet to use it. This is designed to automatically recompile classes and their dependencies using a simple resource interface.
479 lines of code changed in:
Applied patches kindly submitted by Chris Poirier to refactor the code, add better warning level support to the compiler and to document the code.
Details from Chris....
Multiple error handling is in place, but not fully completed. It works
best in the parsing phase, but I'm only about half-way through an
overhaul of the parser code. I've fixed about a dozen bugs in the
parser, and refactored a lot of the code. I've added parser (only)
support for nested classes, static initializers, and interfaces. I'll
continue with the process tonight.
The FileSystemCompiler has a new flag, --exception, that can be used to
output full stack traces for exceptions. By default, only uncaught
exceptions will get the full report. The code that outputs the line on
which the error occurred will probably only work with invokations
through the FileSystemCompiler, and I don't know exactly how well
CompilerFacade will currently behave.
2730 lines of code changed in:
fixed xml encoding (whoops)
1 lines of code changed in:
added Hallvard as a contributor
4 lines of code changed in:
added test case for super method invocation bug
26 lines of code changed in:
added a test case of GROOVY-211
19 lines of code changed in:
Applied patch supplied by Hallvard Tr?tteberg to fix GString expressions
23 lines of code changed in:
GROOVY-222
40 lines of code changed in:
allow long, double and float methods to be called with integer values
12 lines of code changed in:
refactor of Guillaume's implementation of waitForOrKill() method which uses semaphores instead of polling to implement an efficient wait
67 lines of code changed in:
added test case for GROOVY-211
18 lines of code changed in:
Added List.reverseEach() method as specified in GROOVY-149.
22 lines of code changed in:
Added the Process.waitForOrKill() method specified in GROOVY-201.
35 lines of code changed in:
fix for GROOVY-131
33 lines of code changed in:
Fix for the various nested closure variable passing bugs. It appears to work but we need to test each of the 3 or so issues to check it fixes all of them
29 lines of code changed in:
applied Robert Fuller's patch - DOH! Thanks Robert
2 lines of code changed in:
added support for Int based constants
4 lines of code changed in:
allowed Binding to expose variables as properties
55 lines of code changed in:
start of refactoring to support properties better and more efficiently
104 lines of code changed in:
applied Robert Fuller's patch for GROOVY-213
22 lines of code changed in:
removed unnecessary casts
3 lines of code changed in:
New For loop which handles JDK 1.5 style for loops using : or in along with an optional type
Added support for subscript operator on objects as a dynamic alternative to property access
Fixed a few warnings
241 lines of code changed in:
added a section on common gotchas together with a FAQ entry
51 lines of code changed in:
Optimisation to avoid performing an explicit check of all the command line arguments for every method call. We only do this on closure method invocation. (we can probably tune this too)
25 lines of code changed in:
added some warnings
4 lines of code changed in:
* refactor so that Closure invocation uses the MetaClass mecahnism now to minimise the reliance on reflection
* refactoring to minimise the synchronization inside MetaClass method dispatching.
115 lines of code changed in:
fix for GROOVY-177
2 lines of code changed in:
ignore blank lines gracefully
3 lines of code changed in:
fix for GROOVY-185
0 lines of code changed in:
fix for GROOVY-185
90 lines of code changed in:
disable test
2 lines of code changed in:
various fixes and test cases for the use of primitive fields
184 lines of code changed in:
fixes to support primitive type parameters
66 lines of code changed in:
fix for primitive type coercion using the proper unboxing methods
45 lines of code changed in:
fix for GROOVY-209
43 lines of code changed in:
fixed bug when assigning to class
88 lines of code changed in:
a fix for calling super.foo() styles of methods.
also optimised away the creation of redundant arrays when calling methods with no arguments
109 lines of code changed in:
use a different package for reflectors
5 lines of code changed in:
avoided using inner classes for the reflector to see if it helps with class loader issues
2 lines of code changed in:
add a temporary workaround to class loading issues when using bytecode generated Reflectors
19 lines of code changed in:
fix for http://jira.codehaus.org/secure/ViewIssue.jspa?key=GROOVY-75
91 lines of code changed in:
Simplified the MetaClass code some more to clean things up as well as adding a cache for dynamic method dispatching
136 lines of code changed in:
added keys which will be used for efficient caching of methods indexed by types
83 lines of code changed in:
removed the last of the reflection cases, so now pretty much we should be using non-reflection for method dispatching
14 lines of code changed in:
Refactor of the implementation of new groovy methods which should ultimately be more effiicent.
It means that we can treat all methods as being MetaMethods and being equivalent. We can eventually refactor MetaClass more to have literally just an index of instance and static methods and not having to comprehend 'special' new groovy methods etc.
Plus these changes fix the issue of new groovy methods not being available as properties. So Process.getOut() worked before this refactor, but Process.in didn't.
Finally this refactor should help us finally remove all reflection from the code for good I hope
357 lines of code changed in:
disabled the execute command test, as it only works on unixes
2 lines of code changed in:
rolled back my failing tests
2 lines of code changed in:
allow getProperty and setProperty to be used by default to resolve properties on objects, so things like Ant's Project will work
2 lines of code changed in:
fixed typeo
1 lines of code changed in:
Fix GROOVY-206
1 lines of code changed in:
used zero based indexing and support for negative indices on JDBC calls
45 lines of code changed in:
only warn once that you're using a deprecated method
11 lines of code changed in:
renamed queryEach() to be eachRow() while preserving backwards compatiblity
50 lines of code changed in:
allow groovy sql to work with indexed columns
69 lines of code changed in:
Added some new stream methods according to GROOVY-201.
56 lines of code changed in:
added more helper methods to Sql
32 lines of code changed in:
fix for GROOVY-181
1 lines of code changed in:
Added an implementation class which should be used for new groovy methods on JDK classes
96 lines of code changed in:
fixed typeo - tut tut john :)
1 lines of code changed in:
added myself to the developers list
9 lines of code changed in:
added a bunch of helper methods to create new instances of SQL without dealing with the lower level JDBC plumbing
79 lines of code changed in:
changed to be text files
0 lines of code changed in:
added support for CLASSPATH variable in scripts
8 lines of code changed in:
Fix corrupted initial check-in of test case
74 lines of code changed in:
fixed the link for the eclipse plugin
3 lines of code changed in:
Fix corrupted initial check-in
349 lines of code changed in:
disabled the use of AgileDox by default
12 lines of code changed in:
added 3 aliases so working with Process appears to follow the System.in, out, err naming convention
85 lines of code changed in:
Added support for "someCommand".execute() method as well as adding the ability to sort any Collection (such as the keySet or values() of a Map)
118 lines of code changed in:
Added support for scripts to be able to use println() and print() methods which can be redirected to any 'out' variable
179 lines of code changed in:
Implementation of Object[].join()
(GROOVY-149)
31 lines of code changed in:
Added a link to Mark's excellent article
2 lines of code changed in:
fixed typeo suggested by Daniel Aborg
1 lines of code changed in:
added myself to developers list :-)
9 lines of code changed in:
added acces to nested exceptions
5 lines of code changed in:
error list was never cleared - corrected at the point where we throw a MultiException
27 lines of code changed in:
Implementation of Collection.toList() and File.withInputStream()
(GROOVY-149)
31 lines of code changed in:
Implementation and test case for List.grep(regexp) (GROOVY-149)
30 lines of code changed in:
Fix for bug GROOVY-196.
Now, "a" * 0 == "" (String of length 0) instead of throwing an IllegalArgumentException.
The exception is thrown when factor < 0.
I also modified MultiplyDivideEqualsTest to test that behaviour.
10 lines of code changed in:
Fix for the bug GROOVY-194.
Commented a verbose and noisy System.out.println().
1 lines of code changed in:
Fix for the bug GROOVY-191.
New method plus(Number, String) in DefaultGroovyMethods.
Added a test case for that method.
22 lines of code changed in:
Fixed bug GROOVY-180 : the groovy methods with only the self parameter were showing the self parameter instead of none
5 lines of code changed in: