- Add Systems.remove() methods back (was causing backwards incompatiblity issues)
- Add Globber.stream() method back (was causing backwards incompatiblity issues)
- New Copy and Move commands in the Systems.* class
- Fix parsing of Java versions on some JDK distributions
- Verbosity support for exec, mkdir, and remove commands
- JavaScript (via Nashorn) re-enabled using non-JDK package for Java 11+
- More improvements for java source version of scripts, including a config propery "java.source.version" that can help permanently set it
- Kotlin upgraded to support v1.9.10 .kt scripts
- Groovy upgraded to support v4.0.15 .groovy scripts
- Java script engine no longer locks source to Java 8, it will now use the version of the JVM executing the script.
- Cached compiled classes will use the JVM version as part of the hash (to figure out if they should be re-compiled)
- Fixed unit tests failing on Windows & MacOS due to a maven surefire issue
- Support for parent classes of scripts to expose public methods (tasks). Allows scripts to extend parent classes.
- Prevent maven project installs and deploys in IDE support
- Add additional default ~/.ssh identities that will be loaded: id_ed25519, id_ecdsa, id_ecdsa_sk, id_ed25519_sk, id_xmss which are on top of existing id_rsa and id_dsa
- New general purpose blaze command "--generate-maven-project" to generate a pom.xml file that lives in same directory as as the blaze script for IDE support. Will calculate dependencies specified in your [blaze script].conf file.
- Support for maven dependency keywords LATEST and RELEASE for dependency versions. LATEST will pull in most recent SNAPSHOT or release version, while RELEASE will only pull in latest released version.
- Bump commons-io to v2.11.0
- Bump ivy to v2.5.2
- Bump jsch fork to v0.2.12
- Bump slf4j to v2.0.7
- Switch to fork of jsch (since jsch is no longer maintained). Improves support for modern ciphers, etc.
- Automated testing using github workflows
- Improved support for ssh-agents in blaze-ssh
- Support for ssh-agents in blaze-ssh
- New blaze-haproxy module
- New blaze-docker module to simplify executing on docker containers
- New blaze-mysql module
- Ability to configure additional Maven repositories (including private)
- Credentials are pulled from ~/.m2/settings.xml for additional repos
- Fix bug with SSH sessions sometimes closing stdin of executing blaze app
- Major changes to under-the-hood on ivy resolver.
- Improved argument handling. Allowing --arg to also be equivalent of -Darg
- New prompt() with lots of options to help with input
- Fix issue of ssh session close causing stdin to close
- Bump commons-io to v2.7
- Bump slf4j to v1.7.30
- zt-turnaround to v1.11
- Bump ivy to v2.5.0
- Improved SFTP put/get progress meter (uses single line of text e.g. wget)
- Support for Java 9, 10, 11, and up
- Blaze .java engine automatically adds Eclipse compiler to dependency resolution if running on JRE
- Custom zt-exec InputStreamPumper fixes unnecessary aggressive error logging
- Eclipse compiler now omits compile warnings from stdout (matches JDK compiler)
- Fix issue with Streamables.input not passing EOF thru in some cases.
- Added Streamables.input for text
- Bump jsch from v0.1.53 to v0.1.54
- blaze-ssh: Remove debug output indicating jar was a snapshot
- blaze-ssh: Fix random connect timeouts when via bastion/jump host
- Fix issue parsing system properties w/ an equals char
- Exec.workingDir no longer tries to resolve against project base dir.
- More defensive code while searching for homedrive on windows
- Improve user home dir locator for windows
- New
@Task
annotation can be added to blaze methods to declare descriptions and ordering of tasks being listed. Works in Java, Groovy, and Kotlin engines. Seeexamples/hello*
scripts for sample usage. - Moved ivy dependency resolver from
blaze-core
toblaze-ivy
module. Ivy is no longer a dependency ofblaze-core
so other projects usingblaze-core
don't need to specifically exclude it. blaze-ivy
no longer uses cache for depdendencies with a version ending with "-SNAPSHOT".- Blaze tasks() returns a
ScriptTask
rather thanString
- New
blaze-vagrant
module - Support for new
vagrant+ssh
scheme to connect via SSH to vagrant instances. Simply add theblaze-vagrant
module to your config.
- Support for SSH proxy/bastion/jump hosts. SSH connects will do a best
effort at using the
ProxyCommand
value from your ssh config file. Or you can set one programmatically with theSshConnect.proxy()
method. - Support for password auth via keyboard-interface method.
- Improved testing w/ real systems for SSH. Tests are now run against Ubuntu 16.04, Ubuntu 14.04, Debian 8, Centos 6, Centos 7, FreeBSD 10.2, and OpenBSD 5.8.
- Moved all remaining
Jsch
specific implementation code from packagecom.fizzed.blaze.ssh
. - slf4j from v1.7.20 to v1.7.21
- commons-io from v2.4 to v2.5
- groovy from v2.4.6 to v2.4.7
- kotlin from v1.0.1-2 to v1.0.2
- Support for enabling a pty on SshExec (which helps run certain commands execute as you'd expect, but not always needed, so its false by default)
- Bump to kotlin 1.0.2 for blaze-kotlin
- Support for kotlin v1!
- Bump to zt-exec v1.9 (for an issue we reported and fixed with a PR)
- Bump to groovy v2.4.6
- Bump to slf4j v1.7.20
- Fixed bug with Systems.which() where it would locate a directory that matched an executable name. Since Systems.requireExec() and Systems.exec() uses this under-the-hood, this also fixes the same issue with them.
- Systems.exec and SecureShells.exec support a convenient
runCaptureOutput
method to simplify the use-case of capturing the output of a process. - Convenience disablePipeInput, disablePipeOutput, and disablePipeError added for Systems.exec and SecureShells.exec to simplify syntax of disabling any of those particular inputs/outputs.
- Streamables now supports lines() and matchedLines() that produce a Stream of Strings. Useful for grep-like replacement.
- zt-exec now included with blaze-lite jar by default. Allows for faster execution by skipping resolver.
- Dependency resolver skipped if all dependencies already resolved. Huge speedup in execution for scripts that don't use additional dependencies.
- Blaze can execute objects as scripts w/o requiring an engine. Useful for embedding blaze in other java projects and/or unit tests.
- Refactored how System.in, System.out, and System.err is handled by both Systems.exec and SecureShells.sshExec.
- New utility classes for guarding streams against being closed and non-blocking InputStreams.
- Blaze command-line
Bootstrap
class can be easily subclassed so that most of its functionality can be reused in a Blaze-based script app. - A
DefaultContext
is now bound by default so users of Blaze as a dependency in other projects do not need to bind one.
- blaze-ssh underlying jsch exec would never terminate threads that pumped the InputStream to the remote host -- implemented workaround using wrapped streams
- blaze-ssh now supports readlink and realpath via sftp.
- blaze-ssh sshExec commands correct path delimiter when running on windows
- Bump to crux-vagrant v0.3.2 for unit testing w/ real ssh virt machines
- Support for placing default script in
.blaze
sub directory. From your working directory, Blaze will now automatically searchblaze.[ext]
thenblaze/blaze.[ext]
then.blaze/blaze.[ext]
- Contexts withBaseDir and withUserDir return normalized paths
- Fixed issue with file paths for scripts using
blaze-ssh
from windows to remote non-windows operating systems. - Fixed issue with null default charset on LineAction
- Added vagrant for true integration junit testing on various operating systems.
- Refactored project to have each module in a prefixed dir (e.g. blaze-ssh)
- Refactored actions to return a concrete Result. run() returns the primary result type and runResult() returns the full result.
- Context.userDir() now checks for environment HOME variable rather than Java property "user.home". Allows running under "sudo" properly.
- Scripts now can throw checked exceptions. Enables cleaner stacktraces to console without using wrapped runtime exceptions.
- Refactored capturing output from actions (e.g. Exec). A CaptureOutput needs to be injected into an action.
- Added Tail feature - tailing output for N number of lines
- Added Head feature - heading output for N number of lines
- Added Pipeline feature - running multiple actions in sequence with streaming I/O between
- Windows -i command-line switch installs both blaze.bat and blaze (so it's compatible with bash, mingw32, etc.)
- Netbeans plugin support
- Default blaze script now searches current dir and then "blaze" subdir
- Examples adjusted to include shebang on groovy and kotline scripts
- Exception message for missing tasks optimized
- Exec, which, and requireExec now support actual file and paths
- blaze.jar supports "-i" command-line switch to install helper blaze or blaze.bat scripts to a target directory
- Support for Kotlin and Kotlin scripts
- Default logging statements optimized (even less by default)
- Cached compiles now use MD5 hashes vs. timestamps
- System properties with -D are now processed and passed thru to a script
(e.g.
java -jar blaze.jar task0 task1 -Dmyarg=true
) - Config refactored with
value
andvalueList
instead offind
andfindList
. Returned value nowget()
,getOr(defaultValue)
, andgetOrNull()
. - System.exec now supports the NamedStream class for piping of input, output, and error.
- Feature rich SSH client for both executing commands (exec) and file transfers (sftp). Very much like programmatic access to "openssh" but all with pure Java. See examples/ssh.java and examples/sftp.java for demos.
- Excellent "glob" support with com.fizzed.blaze.util.Globber class See examples/globber.java for demo.
- Initial public release
- Never released