Change Log

Version 1.1.0 (2016-07-22)

New Features

Improvements

Bug Fixes

Version 1.0.0 (2014-11-04)

New Features

  • [Log/File] You can specify a path of a log file and an authtoken file by GROOVYSERV_WORK_DIR and GROOVYSERV_LOG_DIR environmant variable. See User Guide.
  • [Setup] You can automatically choose appropriate binary files of user commands for your environment and remove unused otherse. See How to Install.

Improvements

  • [Command] User commands are thoroughly rewritten by Go language. Now you can use full-featured groovyclient and groovyserver at all environments Go language supports. Instead, commands written in Bash and Ruby are removed.
  • [Command] A server process can shut down itself by a special request. So, finally you can control a server process even on Windows by user commands.
  • [Command] A status code of a script is 1 when an exception causes like a normal Groovy.
  • [Command] A client command shows an error message when it could not changes working directory because another script is running on a different working directory.
  • [Log] A log format is tweaked.
  • [Env] GROOVYSERVER_* environment variables are renamed to GROOVYSERV_*. See User Guide.
  • [Security] An implementation of an authtoken is changed to UUID.
  • [Internal] A package name is changed to groovyx.groovyserv.
  • [Internal] A protocol between a user command and a server process is tweaked:
    • Cwd header is to be optional.
    • AuthToken header is renamed to just Auth.
    • New ‘Cmd’ header for request of both shutdown and interrupt is introduced.
  • [Internal] Many many refactoring and restructuring.

Bug Fixes

Version 0.13 (2013-07-26)

New Features

  • [Client] groovyclient(.sh) supports server operations by -Cr/-Ck options
  • [Install] groovyserv-setup-nativeclient command is added to platform independent package to build a native groovyclient and replace groovyclient(.sh) shell script with it.

Improvements

  • groovyclient.rb supports -Chost and -Cauthtoken
  • GROOVYSERVER_HOST environment variable is supported to specify server address from client
  • (Improved some checks when starting server)
  • (Spock-nized all tests)
  • (Improved build system)
  • (Thoroughly refactored shell scripts)

Bug Fixes

Version 0.12 (2013-07-04)

New Features

  • [Client] groovyclient.sh is added. In the platform-independent binary package, its name is just ‘groovyclient.’

Improvements

  • groovyclient.rb supports -Chost and -Cauthtoken

Bug Fixes

Version 0.11 (2013-02-01)

New Features

  • [Client/Server] Supported fully remote access.
    • [Client] groovyclient can send a valid request to groovyserver on the other machine by using -Chost and -Cauthtoken.
    • [Server] you can provide an arbitrary authtoken when invoking groovyserver.

Improvements

  • Renamed “cookie” to “authtoken”.

Bug Fixes

Version 0.10 (2012-03-30)

New Features

  • [Client] -v option can also display the GroovyServ’s version not only Groovy’s version.
  • [Network] Supported –allow-from option at groovyserver(sh). If ‘localhost’ is resolved except to loopback address in your environment, you can use –allow-from option with groovyserver(sh). In future, I want to support that groovyclient could access a groovyserver at remote host in security. This is the first step.

Bug Fixes

Version 0.9 (2011-08-04)

Improvements

  • [Env] Now you can use PWD environment variable. PWD is individually changed to the current directory for each invocation of user script.
  • [Build] You can build GroovyServ by Gradle. Maven’s pom.xml is temporarily still there, but maybe it will be removed at next version.
  • [Performance] The overhead at sequential invocation of groovyclient was reduced. You needed at least one second as an interval of each sequential invocation at v0.8, but at v0.9 you might not be able to notice the overhead.
  • [Internal] To close connections and to terminate threads are improved. GroovyServ will probably behave more similarly to the regular Groovy than before.

Bug Fixes

Contributions

  • [Build] The spec file required to build a RPM package is there. See: Build RPM file (Thanks, Oliver and Kazuhisya)

Version 0.8 (2011-06-16)

Improvements

  • [Windows/Cygwin] groovyserver.bat and groovyserver(sh) were wholly improved:
    • When GROOVY_HOME or GROOVYSERV_HOME isn’t set, it’s automatically detected.
    • JAVA_HOME, GROOVY_HOME, GROOVYSERV_HOME and CLASSPATH are converted to the appropriate path format if necessary.
    • So, you can also use groovyclient.exe to start a groovyserver on Cygwin even if you’ve set GROOVY_HOME or GROOVYSERV_HOME as an UNIX path format. (It had failed at v0.7.)
    • Now there isn’t the dirty hack using ping to sleep 1 sec.
  • [Log File] The dump data in log file is more easy to read. Until v0.7, many printable characters except alphabet and number were printed as “?”, but now they become being printed as original character.
  • [Build] Makefile is added. You can more easily build a binary of groovyclient with “make” command if the downloaded binary doesn’t work.

Bug Fixes

Version 0.7 (2011-04-27)

Improvements

  • You can see CLASSPATH information of a groovyserver at start-up messages (Mac OS X and Linux only).
  • Experimentally, the “-server” of JVM option was added to a groovyserver. Hotspot may improve the performance of an execution of a script.

Bug Fixes

Version 0.6 (2011-03-18)

Improvements

  • Supported for a multiline command argument. You can use an argument including newlines, by quoting the string with tripple-quotations appropriately.
  • Changed a log file name to include a port number as suffix. So, all work files (e.g. log, cookie and pid) were fully separated for each ports. Multiple instances of GroovyServ can be run simultaneously on separate ports.
  • Classpath never conflict. The user-specified classpath tears down at the end of each script invocation. (At the previous versions, a classpath could be added but couldn’t be removed after the invocation).
  • Using a positive number as exit status code which is defined by GroovyServ as a constant. If your script depends on the return code from GroovyServ, you might need fix it.
  • Maven3.x support.

Bug Fixes

Version 0.5 (2010-12-22)

New Features

  • Now groovyclient can take -C prefix options which are interpreted on groovyclient itself (don’t pass to groovy command).
  • ‘-Cr/-Ck’ client options restart/stop groovyserver process(Mac OS X and Linux only). By using these options you can control groovyserver through groovyclient.
  • With ‘-Cenv’ option of groovyclient, we can pass the environment variables which name matches with the specified pattern to groovyserver. The values of matched variables on the client process are sent to the server process, and the values of same name environment variable on the server are set to or overwitten by the passed values. This feature is especially useful for IDEs’ which uses environment variables to pass configuration information with invoking external command which is written Groovy. Textmate is one of those IDEs reportedly.
  • Option ‘-Cenv-all’ makes to pass all environment variables of the client process to groovyserver. And option ‘-Cenv-exclude’ excludes variables which name matches with the specified pattern.
  • You can specify port number easily by using -Cp/-Cport options and handle multiple groovyserver instance distinguished by the port number.

Improvements

  • Groovyserver’s starting messages are now emit to stderr, so use of pipe or redirection is more useful with Groovy scripting. Moreover -Cq/-Cqiuet options suppresses starting message of groovyserver.
  • Groovyserver now emit informative messages about GroovyServ’s installed directory and which groovy command are used. This is useful for trouble shooting.
  • [Only Linux/Mac OS X]Now GROOVY_HOME environment variable become optional. Supported some ways to find a groovy command in the following order: (1)from PATH environment variable. (2)as GROOVY_HOME/bin/groovy. If not exists, an intent revealing message is emitted to the console.

Bug fixes

  • Groovyclient can’t invoke groovyserver when GroovyServ is installed on a directory which name includes white spaces(e.g. ’C:/Program Files/…).
  • On Linux, if the GroovyServ installed to the directory with symbolic link, it didn’t work. (because of Linux’s which command don’t support -s option so we changed the implementation to do it without -s.)
  • In Mac OS X, progress showing mark displayed ‘-n .’ instead of ‘…’.

Version 0.4 (2010-08-06)

New Features

  • groovyserver.bat shows a window which can be used to stop the server in Windows.

Improvements

  • Supported -p, -n options of groovyclient (See help of groovy command).
  • Filters written in Groovy works well.
  • Using an environment variable USERPROFILE instead of HOME in Windows.
  • Improved support of invoking groovyserver on Cygwin.
  • Improved a process of invoking groovyserver.
  • Packaged not-compiled Groovy scripts into jar file in order not to depend on a particular JDK version.
  • Printing help message when groovyclient is run without options.
  • Appended date and time in debug log.
  • And you can also execute the following command:

    $ ls | groovyclient -e “System.in.eachLine{ println it }”

Bug fixes

  • Cannot print nothing after an error about pipe occurred once.
  • Segmentation fault occurs with too long arguments.
  • Some bugs makes segmentation faults around communication handling is fixed.
  • Fix for ignored CLASSPATH environment variable in groovyclient.rb

Version 0.3 (2010-07-14)

Improvements

  • Refactored groovyclient.c a little.
  • README has URL of the site of GitHub (and README.ja was deleted).
  • Upgraded Groovy 1.7.2 -> 1.7.3.
  • Upgraded gmaven 1.2 -> 1.3-SNAPSHOT (because GMAVEN-13 was fixed).
  • All tests result green in Windows environment.
  • Tweaked handling of character encoding in a build sequence. you can use either of the following:
    • default encoding (without -Dfile.encoding in JAVA_OPTS, _JAVA_OPTIONS)
    • global encoding with -Dfile.encoding in _JAVA_OPTIONS (recommend: UTF-8)

Bug Fixes

  • Fixed that groovyserver.bat doesn’t start up through groovyclient in Windows.
  • Fixed that loop count is wrong while starting server in groovyclient.c.

Version 0.2 (2010-06-30)

New Features

  • Independence from cygwin.dll on Windows environment. Now it can be compiled with MinGW.
  • Added batch file version groovyserver startup script (for uses on Windows who don’t want to install Cygwin).

Improvements

  • Wholly refactored implementation.
  • Added unit tests and integration tests (some of integration tests are a little fragile still now).
  • Output more informative log with -v option.
  • All log output to ./groovy/groovyserv/groovyserver.log.

Version 0.1 (2010-03-09)

First release.