Quark Engine 3.0.0

We are happy to announce that today we released a new version of our open source  library: Quark Engine for Java v3.0.0.

Latest release brings several internal improvements in both, server-side engine and front JavaScript engine.  To see what is new in the latest release, please check below.

Quark JavaScript

The Quark script is improved by adding support for custom HTTP headers while initializing the lib.

const engine = new Engine({
	api: api,
	service: api,
       headers : {.......}
});

Quark Java

Server side brings various internal improvements for Java CDI, encryption, data storage etc...

Class changes - renamed classes QuarkRequest and QuarkAsyncRequest to QuarkContext, QuarkAsyncContext. Context classes are used to access thread level and web request level HttpSession, HttpRequest, HttpResponse instances with full support for Async / Long Polling requests.

QuarkProducer changes - This class is used by CDI producers, but also is used internally to store thread level servlet class instances. Some static methods are now exposed and allows direct retrieval of internal objects such as QuarkContext, QuarkAsyncContext, and internal HttpSession, HttpRequest, HttpResponse, WebSocketSession.

CDI version update - Updated Weld CDI engine to newer version to fix some CDI internal issues while using custom @Inject producers.

CDI - improved CDI providers and thread context handlers for easier access to @RequestScoped access. Use new QuarkProducer static methods to receive thread level object instances as  QuarkContext, QuarkAsyncContext, and internal HttpSession, HttpRequest, HttpResponse, WebSocketSession.

CDI Class isolation - we added @Vetoed to some internal classes to prevent them from registration into CDI engine.

QuarkStorage - a new static class for storing objects into a HttpSession or WebSocket session. Before, a programmer was required to validate the context in which code is running to determine where to store session data. New QuarkStorage class now selects storage location automatically.

QuarkStorage.set(...my object)
QuarkStorage.set(...my key, ...my object)

Request Encryption - we improved non HTTPS encryption, solving collision with session stored previous encryption keys.