Releases: byronka/minum
v8.2.0 Make it faster
-
New database feature: indexed data
"Indexed data" means 1000x faster data access in some cases. By indexing the data,
it is associated with keys - in other words, it is a map of strings to lists of data.
In cases where the keys are unique identifiers for each element of data, the list will
contain just one single item, thus enabling O(1) requests for data. -
Templating performance improvements
-
New templating feature: nested templates
-
HTTP processing performance improvements
-
Better documentation
v8.1.2 - Handling throwables, documentation, testing
- Fix a bug in the ActionQueue - handle throwables
It was found that when an Error (versus an Exception) was encountered, it would kill
the thread of the ActionQueue. Errors are things like out-of-memory errors. This might
happen if the function to run in a loop iteration required too much memory. It's fine to
crash out of that particular run, but not fine to crash the thread entirely. - The system will complain if duplicate endpoints are registered
If there is a developer error of registering the same endpoint more than once, (that is,
a verb plus endpoint, such as GET /foo), the system will thrown an exception right away, so
there is less chance of incorporating subtle bugs. - General documentation improvements all around: In the JavaDocs and on the root README page.
- Documentation improvements to IRequest
- Clearer documentation about change to InputStreamUtils.read(), with test
- noticed a component of StatusLine that isn't used except for testing -
moved it to a testing section
- Prevent registering paths with a prefixed slash. This is a typical pattern from other
frameworks. Minum differs from that common pattern, on the basis that it provides
no clear benefit. A typical (pseudocode) path registration will look like the
following, note the path has no special symbol prefix:register(GET, "foo", doFoo). Naturally,
deeper paths may be defined, likeregister(GET, "foo/bar", doFoo)
v8.1.1 Better documentation for HtmlParseNode
Noticed that the HtmlParseNode had some confusing methods without documentation, this should help
v8.1.0 - Add toString for HtmlParseNode, account for compressibility better
- Add toString to HtmlParseNode
This enables a capability to process HTML code, adjust it, and render it out as HTML - Account for more compressible types in responses
Responses of a textual type are easily compressed. Before, we would only look for a mime
type in the Content-Type head which started with "text". Now we use a regular expression
to look for more types. - Improved documentation
v8.0.7 minor adjustments
Minor adjustments:
- No need to include sitemap.xml as a suspicious path in the minum.config, it is a path
most search engines will try on a site, it is not an attack. - If the developer makes a mistake and returns a null instead of a valid IResponse interface
from a web handler endpoint, we fail faster, and with a clearer message, whereas before
the null response would rattle around through some methods before causing an exception with
an unclear error message and in an unexpected part of the code.
v8.0.6 handle bad URL-encodings better - simply skip
handle bad URL-encodings better - simply skip
It was discovered that if a user sent a request with improperly-formed URL-encoded data, it would sometimes cause a 500 error. This was not a significant issue, but ergonomically the system should not react so strongly for a relatively minor issue.
This adjustment takes a milder approach, simply moving on to the next key-value pair and logging about the action.