Releases: OpenAF/openaf
Releases · OpenAF/openaf
20200108
Generic:
- added isJavaException, isSchema (json schema), isBoolean, isNull, isUUID and isTNumber (truth number)
- $cache shortcut function, ttl, use a pre-existing channel and max size
- oDoc improvements on loading web based help
- getJavaStackTrace helper function
- update libs: googleauth
- $rest: shortcut downloadResume option, optionally send a string has request and retry/retryWait options
- added randomCryptSalt, secureRandom
- jsonParse option to use gson library
- $ch: getName (channel name)
Console:
- corrected error reporting issues
- pause by default
- utf output and corrections when using table and view modes
oJob:
- new option ojob.loadLibs/ojob.loads to preload any external lib
io:
- Added shouldAppend argument to writeFileStream
ow.format:
- added ow.format.printWithWaiting, logWithWaiting for print/log with a spining theme
- ow.format.string: unicode, getSurrogatePair, getAstralCodePoint for unicode 8-bit and 16-bit conversions
- howManyAgo: correction to get previous entry
ow.obj:
- added thread-safe syncArray object
- json schema: schema check, validation with internal caching
ow.server:
- locks: check null timeout and better handling
- cluster: error channel
- new simple queue, channel based, implementation
ow.ch:
- set and getSet function should always return data if successful
ow.java:
- corrected error on encryptStream
- improvement on maven.getDependencies
- added setIgnoreSSLDomains to ignore SSL checking for a list of domains
XLS:
- correcting index out of bounds errors when using getTable
20191002
Generic:
- $rest new functions to return a stream or save to a file
- $sh, $ssh new json output parser
- $ssh new listFiles
- odoc duplicate entries sorting fix
- better printMap
- updates to lodash, jansi, commons-codec and commons-compress
- small bug corrections
- SLF4JErrorOnly flag now defaults to false for embedded cases
AF:
- new getEncoding, printStackTrace and toEncoding functions
IO:
- new createTempFile
Console:
- "view" result is now default
- powershell script will no longer force code page
- better encoding support in windows
oJob:
- Internal termination checks
- ojob.opacks triggers when loading so it's ready for the "includes" section
- periodic jobs: new cronCheck option
ow.ch:
- remote: new throwExceptions option and errorFn (error callback function)
- remote: support for preAction
- etcd2: support for throwExceptions and default
- elasticsearch: support for preAction
- etcd: support for preAction
- syncs replaced with re-entrant locks
- buffer: small bug corrections
- mvs: small bug corrections
ow.obj:
- rest functions can return streams
- better encoding support for rest functions (enforces UTF-8 if no content-type is provided)
ow.server:
- cluster: improvements on cluster wide locks
- rest: new audit callback function
ow.format:
- getActualTime: changed main service
- new cron.howManyAgo function
- new testPortLatency and testURLLatency functions
ow.java:
- Added chiper (to encrypt/decrypt strings and streams using public key encryption)
- new getMemory and gc functions
DB:
- Support for JDBC dynamic driver loading
SNMP:
- getOIDs will use a ScopePDU in version 3
20190809
General
- $sh/$ssh get/exec functions can now reference results by index
- updated lib versions
- improvements on printMap calculations
- $rest new parameter uriQuery
- sleep new option to double-check time passed
oJob
- shutdown jobs can now be executed ad-hoc (when calling an isolated oJob)
- improved oJob processing end
- ojob.catch new entry for default exception catch code
IO
- new getCanonicalPath function
ZIP
- streamPutFileStream accepts arrays of input streams & filenames
- stream functions now optionally can use a temporary file instead of memory
ow.obj
- timeout option for db pools
ow.ch
- new unsetAll for channels
- etcd implementation
- new ow.ch.utils.syncCh
ow.server
- cluster: channel peers implementation
- cluster: inter nodes messaging and locking
20190716
Generic:
- Rhino default language is now ES6
- Custom classloader support for instrumentation
- Repack now uses the JDK tools.jar if available
- Updates to: fusejs and handlerbars
- New $cache shortcut, isNull, descType, stopOpenAFAndRun, printMap, includeOPack, hmacSHA256 and hmacSHA512, __engineScript, new $openaf shortcut, forkOpenAF, $fnDef4Help, $m2a, sortMapKeys, $a2m, $fnM2A and $fnM.
- The $rest shortcut has now pre-actions to change headers among others
- New $sh and $ssh shortcuts
AF
- New fromXML2Obj and fromObj2XML
Console
- Better error handling and ansi detection
DB
- Connection timeout specification
HTTP
- New getBytes and getStream
HTTPd
- New isAlive function
Ignite
- Moved to the plugin-ignite opack
oJob
- small improvements to non-sequential jobs
- to/from improved
- oJobRun now includes the init section
- support for opacks definition with ojob.opacks
ow.ch
- Small improvements on expose
- Important bug corrections for the cache channel
ow.format
- Change the alternate source of actual time
- New getHostName and getHostAddress
ow.server
- Small and simple shared storage based master nodes
20190424
Generic:
- added isNotNull, isBoolean to _$
- added support for plugin opacks
- added support for sh input and output streams
- small improvements (for example: loadExternalJars with cache)
- small bug corrections
- improved support for java > 8
- new H2 util functions: createDBServer, createDB, showH2Console
- new $from().pselect(func) for parallel function execution
- new $tb ("thread-box") function to control execution by timeout or stop functions
- new $rest function as shortcut to ow.obj.rest client with "thread-box", stats gathering, on error default reply and per url or host/port connection enable/disable flag
- new function to protect/unprotect against system exit
- correction on windows powershell openaf-console startup script generation
- new __pm to act as an interface between __pmIn and __pmOut
DB:
- jdbc driver is now infered from the JDBC URL for oracle, h2 and postgresql
CSV:
- bug corrections on fromArray2File and fromFile2Array
oJob:
- logToConsole output change to a smaller one
- new ojob.async option
- new init entry (args.init) to make initialization values easy to edit
- jobs can be declared out of order due to a new job dependencies calculation prior to execution
- ojob.unique.pidFile is now an evaluated string
- java exceptions stacktraces are converted now to log arrays
- jobs from/to no longer define the main job type as previously
- option '-jobhelp' now doesn't need job name space quoting
- global wait times adjusted for faster execution
- flags to control console width and ansi support detection
oPack:
- on update the previous package is now erased (only package declared files)
OWrap Format:
- new command-line progress report functions
- added helper functions for controlled streamed output (for example: adding a prefix to each output line)
- new printWithFooter and printWithProgressFooter functions
OWrap Obj:
- HTTP client: flag to control exceptions
- HTTP client: new head function (for HTTP verb HEAD)
- HTTP client: ability to set the default connection timeout
- REST client: http client factory to control http connection creation
- REST client: new function to obtain request length
- REST client: support for the PATCH verb
- support for setting HTTP, HTTPs, FTP and SOCKS proxies
- new fromDBRS helper function to use DB result sets directly (usefull for large result sets)
OWrap Server:
- HTTPd: internal css and fonts are now also mapped
- HTTPd: map of headers is now provided for reply functions
- HTTPd: appropriate internal content is now replied with compression
OWrap Ch:
- MVS: small improvements and close on shutdown
- improved waitForJobs
- new buffer functions: closeBuffer and flushBuffer
- new unpeer function
- bug corrections on the buffer implementation
OWrap AI:
- new neural network feedback function "put"
HTTP plugin:
- support for wss (secure web sockets)
HTTPd plugin:
- added map of headers for reply functions
GIT plugin:
- new branch function to retrieve current branch
XLS plugin:
- support for read-only mode
- support for password protected XLS/XLSx
SSH plugin:
- support for input and output execution streams
SMB plugin:
- removed from the main code to handle better improvements (e.g. SMB3 support) as a plugin. Can be added by installing the 'plugin-smb' opack.
20190119
Generic:
- removed unnecessary spaces and new lines from compress
- improved support for Java >8
- new function addOPackRemoteDB for private opack repositories
- update to jsch, jsdiff and js-yaml
OWrap Obj:
- object pools use function now interprets no return correctly
- added new function setKeepaliveInMS
- Channels: now defaults to "simple" instead of "big"
- Channels: new 'proxy' channel type
- Channels: added ow.ch.utils.getBufferSubscriber, ow.ch.utils.getStatsProxyFunction
- Channels: ignite persistence options
- Channels: small improvements
- HTTP: correction on timeout
OWrap Format:
- new functions: ow.format.string.printable (equivalent to strings in unix), ow.format.string.toHex and ow.format.string.toHexArray
oJob:
- added ojob.checkStall options with a new internal thread scheduling mechanism
- added ojob.argsFromEnvs for better container support
- internal log limit reduced from 100 to 10
GIT plugin:
- support for clone with credentials
SMB plugin:
- added the "rm"" function
SNMP plugin:
- v3 support with authentication and encryption
- trap & inform added
20181207
- core: changed the command option '-f' to behave like '--script' and added '-o'; adding function mapArray, $path and loadExternalJars; startup time optimizations; small bug corrections and enhancements
- af: adding function fromJavaArray
- console: new table command; postgresql error recover for sql command
- ow.obj: added ow.obj.fromArray2DB ; adding option to reuse http object on ow.obj.rest; small bug corrections and enhancements
- ow.server: added small local and distributed locks management functionality
- ow.format: added toBase36 and fromBase36
- ow.java: new openwrap lib integrating the Maven opack functionality
- CSV: added setStreamFormat, fromStream, toStream, fromArray2File and fromFile2Array
- oJob: startup time optimizations
- external lib updates
20180930
- New java-based repack for Java >= 9 compatibility
- New custom class loader for Java >= 9 compatibility (requires —install to recreate launch scripts)
- Corrected copy options for io.cp (removed atomic move)
- openaf-console: sh alias uses /bin/sh instead of /bin/bash
- ow.ch.peers: added a new default retry subscriber
- oJob: bug correction on job types shutdown and subscribe
- oJob: added ojob.channels.create, peers and id (alternative id) options
20180823
- Generic
- Java NIO use is now default; several improvements on NIO based streams
- Added getEnv* functions to retrieve environment variables
- log* functions now accept individual call options (including async false or true)
- sh/af.sh bug fixing when timeout is used
- __noSLF4JErrorOnly flag to be able to avoid setting SLF4J to error level on startup
- first implementation of __correctYAML to try to correct tabs (will get better in the future)
- added isBinaryFile, isBinaryArray, bcrypt, io.writeLineNDJSON and io.readLinesNDJSON
- support for AES256 using af.encrypt/af.decrypt
- Improvements on the OAFEngine scripting engine
- HTTP: enabling changing the user agent
- DB: improvements on lob updating
- OpenAF-console: added default sh alias
- oPack: corrections on hash generation to avoid windows \r validation errors
- oJob:
- decrease the timeInterval default for decrease waiting time between untasked new job execution
- ojob from/to can now access args, jobs and id
- oJobRunJob accepts referring to a job by name make it easy for ad-hoc ojob execution; new oJobRunJobAsync
- job task type ‘job’ ignores unique ojob settings (first parent settings prevail)
- typeArgs can now be the result of openaf code in a string as args
- all job types now support typeArgs ‘single’ to force them to only use one thread individually
- ow.format: new functions for OS and Java information, new ldap date conversions
- ow.server: support for more secure http based authentication (e.g. channels) with authAppGen and authAppCheck
- ow.ch: new channel type buffer; better setAll implementation for elasticsearch; new getElasticQuery util function; expose now accepts login functions (like ow.server.authAppGen)
- ow.obj: fromObj2Array was changed to try to set first the key on the array
- ow.template: new addOpenAFHelpers
- ow.ai:
- added ID3, C45 and kmeans
- features array helper
- Libs update and other small bug fixing