Releases: Skullabs/kikaha
2.1.6.Final
2.1.5.Final
2.1.2.Final
Bug Fixes
- Fixed issue related to deployments outside us-east-1 region
- Small fixes on issues related to AWS Lambda Deployments
2.1.1.Final
2.1.0.Final
We are thrilled to announce the 2.1.0.Final version. It was a huge effort to improve the Kikaha's core, improve its API and provide a more friendly development environment with (almost) no breaks on its backward compatibility.
Cloud Friendly Architecture
Since our last stable version (2.0.x) we have drastically improved the internal design of Kikaha, allowing it to become even friendlier to the Cloud. Here are some highlights.
- ServiceRegistry: a mechanism to notify an external Service Registry the presence of a Kikaha application instance on your farm. Out-of-box were included two ServiceRegistry implementations: consul.io and AWS Application Load Balancer.
- Distributed Configuration: allows DevOps team to configure Kikaha using an external (or centralized) configuration service. Currently we support only consul.io and AWS EC2 Tags.
- AWS Lambda Support: Convert your REST endpoints to Lambda Functions with (almost) no changes on your source code.
- AWS CodeDeploy support: Deploy your applications any where with AWS CodeDeploy.
- Codahale's Metric support: Codahale's is a great metric API implementation (with have a very strong community) that would provide you insights of how your application behaves at production.
- AWS X-Ray: Gathers and send metrics to X-Ray in order to provide you insights of how your application behaves at production.
Introducing the uWorkers API
uWorkers was designed to behave quite similar to the Akka's actor API, but with a friendly and non-verbose syntax. It provides Kikaha's application a way to handle huge workloads in a predictive way. Its inbox mechanism is fully customizable and lets you to distribute tasks on your cluster. Although the default mechanism is in-memory, there is already an SQS implementation available. RabbitMQ and Kafka is coming soon.
Create even more testable codes
2.1.x version introduced a very convenient way to test your code base. With KikahaRunner
and KikahaServerRunner
you can, respectively, unit test your injectable code and create integration tests easily simulating your production environment for each test you need.
Redesigned Security API
We did a great effort on making the Security module more configurable, understandable and easier to customize:
- All its sensible configuration entry points have default values
- Created the JSON Authentication Mechanism
- Created the Database Identity Manager
- Created the SessionStore mechanism, to make easier to customize how to store (or not) the session on the server side. By default, the server will not store any session on the server side.
- Created the SessionIdManager, to make easier to identify which user are accessing the server. By default, it will rely on the former JSESSION mechanism to identify the current user.
- Added success and failure events on AuthenticationMechanism in order to make easier to interact with the authentication life cycle.
- Added Auth0 support.
- Easier to handle JWT authentication.
- Created the PasswordEncoder mechanism. By default it set to use Plain-Text, but BCrypt is also available.
Even more smart-routes
We have created a lot of smart-routes to let developers focus on what really matters to their business and avoiding waste time on repetitive tasks. The most important ones are: CORS support, Filter mechanisms and automatic Authentication endpoints.
Another enhancements
- #172 Allow developers to set custom Headers as response for every received request
- #201 Added 'byte[]' as parameter on Unserializer interface
- #203 Added Protobuf support
- #204 Allow developers to use the Content-Type defined on Response.headers() to serialize the output response
- #227 Allow "webjar" deployments
- Added Rocker Template support (thanks to Jay Milagroso for your excellent contribution).
Bug Fixes
2.0.2-Final
Bug Fixes
#169 Custom QualifiedExtractor cannot instantiate classes
2.0.1-Final
2.0.0-Final
Enhancements / New features
Better Dependency Injection engine
#68 tRip project, once proved to be mature and used under heavy-load environment, was merged and completely reviewed into a module on the Kikaha's core. This new engine became focused on JSR-299/330 annotations providing better integration with the most used design patterns that interoperates with DI pattern. Also, it made simple and fun to create standalone applications - in a Spring-boot fashion. Its main feature was kept intact - pre-generate its dependencies at compile time.
Smart Routes
At this release, the former Reverse and Proxy routing rules were grouped into a set of automatic routing rules called Smart Routes. We will call Smart Routes every route that can change the default behavior of standard requests. With Smart Routes you can redirect, intercept, filter and also proxy requests to another server.
#60: Add CORS support
#159 Developers should able to configure CORS to allow credentials
#150 Include an auto-redirect rule similar to reverse and rewrite ones
#148 Allow developers to Filter requests in a Servlet Filter fashion
WebSocket improvements
#158 WebSocket 'onText' should be able to handle Objects
#157 WebSocket messages should be handled at the Workers thread pool
#161 Allow receive JSON serialized objects on WebSocket routes
Other important enhancements
#139 Created a new (and faster) configuration module, based on the popular YML format
#141 New modular (and simple) system - it allows developers to easily customized Kikaha (or Undertow runtime)
#122 Better feedback handling missing Content-Types
#135 Better 404 experience when no mustache template is found
#164 Allow receive primitive type as parameters received from Http requests
#147 Included a more convenient API to handle requests through the Undertow API
#151 Better experience when dealing with user sessions (logged in users, attaching attributes, logout, etc..)
#154 Headers sent as response should use HttpString to store their names
#146 Allow start Undertow in HTTP 2.0 mode (it still requires Jetty ALPN to run)
Bug Fixes
#152 Cannot find unserializer for Content-Types that also have charset encoding define
#153 Cannot send parameters with primitive types on routing methods (see #164)
#155 Cannot handle NullPointerException when no custom ExceptionHandler is available
#156 Cannot start Kikaha on Windows
#163 CORs' Smart Route does not allow PUT request (even if configured for PUT requests)
2.0.0-beta3
Fixes on Smart Routes' unit test
2.0.0-beta1
Version 2.0.0-beta1