Distributed subject observer pattern with ano-plass and DistributeMe

Asynchronous notification aka publisher/subscriber model is a powerful pattern. Both ano-plass and DistributeMe offered a way to do it, one with subject/observer pattern, the other with the classical EventChannels. The ano-plass subject/observer pattern was limited to the current vm. Now it can become global.

Continue reading

The Road to IntelliJ IDEA

When it comes to choosing an IDE for Java development, people usually face a challenge of having to pick one from the three main players: IntelliJ IDEA, Eclipse or NetBeans.

The point of this topic is not to start another “the best IDE holy war”, but to share our own personal experience. Of course, the best tool is the one that gives you maximal productivity and that choice is always subjective. Period.

Originally, almost all of us here at Anotheria started the journey with Eclipse. It was free and did the job pretty well. Everyone got used to it and switching to another tool did not make sense at the time.

Things changed at the end of 2009, when JetBrains open sourced IntelliJ IDEA  and offered a new Community Edition version completely free of charge. Not to try it would have been a crime.

Result exceeded the expectations even of the biggest skeptics. Autocomplete was magical: sometimes it felt like like IDEA knew what statement you wanted to write next. Core editor features, debugger, external tool support  – they were all amazing as well. IntelliJ IDEA was definitely the most intelligent tool we had ever used.

During that time we were transitioning our open source project to Maven. Of course, build tool support was of critical importance. We used M2Eclipse for Maven integration but were hardly satisfied with it. After trying IDEA which had great built-in Maven support, there was no going back.

Today IntelliJ IDEA is the number one tool for us. Not only for Java development. Front-end guys use it for their HTML/CSS/JS work as well. And they are happy with it!

Recently, 14-th version was released. It came out with a number of big new features (improved debugger, built-in decompiler, etc). However, one of the most anticipated additions personally for me was the improved Scala support, which was worth waiting. So now if you need an IDE with SBT integration or want to build your next web application with Play Framework – I would definitely recommend you to check out IntelliJ IDEA.

Id Based Locking

We ‘invented’ (at least we say we invented it, until someone else claims the authorship), that kind of locking, where you lock not an object itself, but what the object means in the real world (or at least in your domain). It was long part of the ano-utils project. However ano-utils is a bit bloated, so we refactored it into a small separate project, without any further dependencies to external libs.

I will not repost the explanations why it is needed and what it does, instead just a link to  the github page, that explains everythinghttps://github.com/anotheria/idbasedlock

Lock on!

I like to move it move it

After we decided to move everything we publish as open source into maven central and made a successful show case it’s time to start moving!

The new parent has now the sonatype parent as it’s parent (what a sentence!) and publishes everything to sonatype repositories – https://oss.sonatype.org/content/groups/public/.

To prevent version mismatch, every artifact will get a major upgrade, which means that effectively everything will start with a 2.

So it’s parent 2.0 and ano-util 2.0.0 which are already there:

and the rest will follow.

We keep you informed!



ConfigureMe innovations

New version 1.1.3 of the ConfigureMe has been released with some “Yammy” features.

However firstly I want to start with feature, that was appeared some time before, but was not highlighted. Thus we will start from variables


You can use environment variables to set attributes in configuration.

Syntactics: variable:”${testVariable}”. Click for full example.

Now we will proceed with current release features. Please welcome: includes, links and the new annotation @ConfigureAlso.

Continue reading

New access control in ano-site

We often want to restrict access to specific part of an application from some parties. Moreover we usually want to do it with high flexibility at runtime, don’t we?

With the recent release of ano-site (version 2.4.1) we’ve added a brand new access control mechanism based on the ano-access framework. The idea was to make all parts of the application, that user interacts with, configurable from access point of view.

In this article we’ll make a brief overview of capabilities that are available in current version. It won’t replace comprehensive developer documentation, though.

Currently access can be controlled for such entities as:

  • Page
  • Box
  • Navigation item
  • Action
  • Wizard

All configuration is done traditionally through ASG (ano-site content management system) which was enriched with two new modules for access control configuration: Ano-Access Configuration and Ano-Access Data. While latter is pretty straightforward, the former requires some explanation.

Continue reading


Yet another blog. Does the world really need one? In fact we believe it does.

First of all we believe in open source. We are committed to open source software with our hearts and nearly all software we code is open source (except for customer projects). However, coding open source software is just first part. Its surely a very important one, but apart from coding one needs to make the software visible, to document it, to explain it. Explaining, that is what we are going to do here.

So this blog will be about our software, namely MoSKito, DistributeMe, ConfigureMe, and AOS in general. We will write about the software itself, what you can do with it, what we do with it, what funny things happen, when we develop it, and what you can expect next.

And you? Thanks for reading. Apart from that we ask you to try it, talk with us (and anyone else) about it. And you definitely should collaborate. We are making this software not for the glass cabinet, but for you. And we need your feedback to make it better. And ideally we would love you to collaborate and make the software better. And the world too 😉