Releases: aichaos/rivescript-java
Releases · aichaos/rivescript-java
0.11.0 - August 6, 2019
0.10.0 - August 30, 2017
This update focuses on new features and improvements.
0.9.2 - March 19, 2017
This update focuses on bug fixes.
- Changes:
- Fix for not able to get JavaScript
ScriptEngine
in Google App Engine
local devserver usingnew ScriptEngineManager().getEngineByName(engineName)
.
Fallback mechanism added to use
new ScriptEngineManager(null).getEngineByName(engineName)
(#44).
- Fix for not able to get JavaScript
0.9.1 - March 7, 2017
This update focuses on bug fixes.
-
API Breaking Changes:
- Remove
java.nio.file.Path
reference and subsequently also the
RiveScript#loadDirectory(Path path, String... extensions)
and
RiveScript#loadFile(Path path)
methods as they caused issues
on Adroid. (#43).
- Remove
-
Changes:
- Fix for object caller regexp processing internal
{__call__}
tags. The closing curly brackets were not escaped (#43).
- Fix for object caller regexp processing internal
0.9.0 - March 3, 2017
This update focuses on new features and bug fixes.
-
API Breaking Changes:
- The
load
andcall
methods of theObjectHandler
interface now
require theRiveScript
instance as an additional (first) argument.
- The
-
Changes:
- Add RiveScript Spring Boot Starter module (#34).
A dedicated RiveScript Spring Boot Starter sample is available under
/samples/spring-bootstarter-rsbot
for reference. - Add JSR-223 Scripting
ObjectHandler
to support object macros written in
any JSR-223 compliant scripting language. Therivescript-core
distro
comes bundled with out-of-the-box support for JavaScript, Groovy and Ruby
object macros using the generalJsr223ScriptingHandler
.
ThisJsr223ScriptingHandler
can also be used to easily implement other
programming languages which are supported by the JSR-223 Scripting API.
Developers should manually add the appropriate Groovy or Ruby dependencies
to their projects if they want to use theGroovyHandler
orRubyHandler
.
For theJavaScriptHandler
no external dependency is needed. (#32, #36) - Fix for
removeHandler()
causing aConcurrentModificationException
. - Fix for making wildcards in optionals not matchable (#42).
- Add static constants for custom error message keys.
- Add static constant for
"undefined"
string (#41). - Reorganize tests in proper separation of unit and integration tests (#38).
- Add RiveScript Spring Boot Starter module (#34).
0.8.1 - February 20, 2017
This update focuses on bug fixes.
- Changes:
- Fix for
String#split()
returning trailing empty string on Google AppEngine
(https://code.google.com/p/googleappengine/issues/detail?id=13565). - Fix for
NullPointerException
being thrown in caseSubroutine
or
ObjectHandler
returnednull
(#40). - Fix for object macros to support quoted strings come in as one arg
regardless of spaces (#40). Typical use case:<call>object_name "a b"</call>
will call the macro with a single arg
["a b"]
.<call>object_name "a b" c d</call>
will call the macro with 3 args
["a b", "c", "d"]
.<call>object_name "<get name>"</call>
will call the macro with a single
arg containing the value from the user var.
Note<call>object_name <get name></call>
would call the macro with
multiple args in case the user var value would contain spaces.
- Fix for
0.8.0 - February 14, 2017
This update focuses on new features and huge code refactoring / reorganization.
The rivescript-java
implementations has been aligned with the rivescript-go
implementation.
- API Breaking Changes:
- Removed
RiveScript(boolean debug)
constructor in favour of
RiveScript(Config config)
constructor . - The
RiveScript
instance has no notion ofdebug
mode anymore.
Debug logging is now based on the SLF4J configuration. - Refactored
com.rivescript.ObjectMacro
tocom.rivescript.macro.Subroutine
. - Renamed
ObjectHandler
methods fromonLoad
,onCall
to respectively
load
andcall
. Also thesetClass
method has been removed. - The
org.json
dependency is now a optional dependency.
Developers using Perl object macros must include thisorg.json
dependency
manually to their projects.
- Removed
- Changes:
- Replace
System.out
logging by using the SLF4J API. - Add Unicode support (#30, #31).
- Add new forceCase config option, which will force-lowercase your triggers
during parse time, enabling authors to use uppercase letters in triggers
without it being a syntax error. Do note however that Unicode case folding
can become an issue with certain symbols. - Add customizable error messages config option.
- Add throw exceptions config option, which will make the bot throw (runtime)
exceptions (e.g.DeepRecursionException
,ReplyNotFoundException
)
in case of an error instead of just replying with an error message.
When enabled, developers should catch these exceptions and take the
appropriate actions. - The
RiveScript
constructor now accepts aConfig
object to configure
the RiveScript instance. Also a developerConfig.Builder
is available. - Add support for pluggable session stores for user variables. The default
one still keeps user variables in memory, but you can specify your own
implementation instead (#33). - Add RiveScript shell to quickly demo and test a RiveScript bot.
Seecom.rivescript.cmd.Shell
. - Separated the
Parser
which can now be used independently.
The parser returns a Abstract Syntax Tree (AST) identical to the
rivescript-go
parser. It enables third party developers to write
applications that simply parse RiveScript code and getting an AST from it. - Add option to load RiveScript source code from a
java.io.File
or
java.nio.file.Path
. - Fix for sorting %Previous triggers (#9).
- Replace
0.7.2 - January 17, 2017
Changes
- 0.7.2 January 17 2017
- Fix to make the
RiveScript
thread safe using a aThreadLocal
to store
the current user. (#18). - Add support for escaping
_
(underscores) in triggers.
- Fix to make the
0.7.1 - January 9, 2017
Changes
- 0.7.1 January 9 2017
- Fix for arrays in replies (e.g.
(@greek)
) not being converted to
randomized sets (bug #26). - Fix trigger regexp processing so that if a
{weight}
tag contains a
space before or after it (or: a space between{weight}
and the rest
of the trigger text), the spaces are also stripped so that matching
isn't broken for that trigger (bug #29). - Fix to support embedded tags in replies (bug #28).
- Fix for list of stars which were growing incorrectly by multiple
calls toprocessTags()
(#19). - Fix to avoid adding
null
stars while harvesting the stars (#20). - Fix for moving the no-{inherits} triggers to the bottom of the stack
when sorting the triggers (#8).
- Fix for arrays in replies (e.g.
0.7.0 - December 22, 2016
Changes
- 0.7.0 December 22 2016
- Refactored project setup to allow separate module.
- Switched to Gradle as build tool.