Konrad recently shared on our company’s technical room an interesting article on how caching is done is a big polish social network, nk.pl. One of the central concepts in the algorithm is generational caching (see here or here). The basic idea is that for cache keys you use some entity-specific…
Category: JBoss
Implementing message replication in ElasticMQ with JGroups
ElasticMQ is a messaging server, with a Scala, Java, and an Amazon SQS-compatible interface. It supports guaranteed messaging by replicating the messages across a cluster of servers, and message persistence with journalling. Message replication is one of the core features of ElasticMQ. However if you look at the code, it’s…
Hibernate 4.1.4: Envers tests run&pass on multiple DBs
Envers is an entity auditing framework, making it possible to store and query for historical data. The Hibernate 4.1.4 release may seem to be a minor one, but it’s pretty important for Envers. Thanks to a huge amount of work mainly by Ćukasz Antoniak and Strong Liu, with substantial help…
ElasticMQ 0.4: message replication
ElasticMQ is a message queue system, with Java, Scala and an Amazon SQS-compatible REST interface. The 0.4 release brings a new major feature: data replication. You can now setup a cluster of ElasticMQ nodes, and have each queue and message replicated across this cluster. Each node can use either the…
ElasticMQ 0.1 released!
ElasticMQ is a simple messaging system, exposing an SQS-compatible REST interface. It can run using an in-memory H2 database (ideal for testing), or backed by a normal database (e.g. MySQL). Using ElasticMQ can’t get much simpler, just include the dependency and: (the code below is Scala, but it is just…
Envers bundled with JBoss AS 7.0.2!
Using Envers is now even easier! Since version 7.0.2, Envers comes bundled with JBoss Application Server. To showcase how easy the integration is, I created a small JSF/CDI application, which uses Envers and can be deployed straight to AS7. To build the application I decided to try out JBoss Forge,…
How to handle inheritance and @Audited?
Some Envers uses had problems because of the limited flexibility in specifying which fields from superclasses (especially those annotated with @MappedSuperclass) should be audited or not. We improved a bit in the latest release, by being able to explicitly enumerate the superclasses to audit. But still this is not fully…
Blending Ruby (on Rails) and CDI on OpenBlend 2011
I will have the pleasure to speak on OpenBlend 2011, in exactly a week: 15th September 2011, which will take place in Ljubljana, Slovenia. Apart from many other interesting presentations, I will be demoing Torquebox & CDI integration. Torquebox is an enhanced JBoss AS, which besides being the regular JEE…
Modules, modules, modules …
I think everybody will agree that writing modular applications and modularity in general is a good thing. But how does support for modularity look like, both from the Java and Scala languages and various Java/Scala frameworks? There’s a lot of different approaches! Let’s look at some of them. Below “protection”…
Using Envers with AS7
Recently I tried deploying a web application which uses Envers into AS7, but unfortunately I encountered some problems (see the forum discussion). Luckily thanks to the helpful JBoss guys I’ve got it working now. Moreover, thanks to the work done by Strong Liu, you should see full Envers integration (included…