The revamp clean old style code and old patterns which are now totally obsoletes for new style code and new pattern that will be obsolete in 2 years.

Coding rules


Don't use iterators anymore

iter = collection.iterator;
  element =;

Use the foreach form instead

for(Element element: collection)


Don't use singletons anymore


Instead, use picoContainer to create an object that will have only one instance.

For this, you simply need to declare the component in the container

pico = new PicoBuilder().withConstructorInjection().withCaching().build();
pico.addComponent(CompilerContainer.class, this);

When you need to get the instance, simply put the component as a constructor parameter

public MyClass(ResourceManager resourceManager, (other dependencies) ) {
  this.resourceManager = resourceManager;

Package and module design

Cyclic dependencies means that your class/package/module have bidirectionnal dependencies. Thus, you can't separate one element from the other, they are a real pain to maintenance, modularization and readability.

If you have a doubt on wether your classes respects this rule, you may use:


There were some duplications due to architecture limitations in the past.

Now, you can create a component that may execute the commons work and inject in several classes.

(example coming...)