A aplicação é divida da seguinte maneira:
Todos os serviços disponíveis são implementados utilizando o padrão de Restful Objects (http://restfulobjects.org/). Esta camada oferece uma forma de comunicação entre as diferentes partes do plugin.
Modelo de URI utilizado pela API REST:
http://{host}:{port}/{context}/rest/latest/domain/{object}/{actions}
Onde:
A camada de negócio é provida pela arquitetura, através das classes com sufixo Manager (dentro projeto 3layer-commons-buiness). Ela é estruturada da seguinte maneira:

Está camada fornece métodos CRUD com implementação básica e são expostos dentro da arquitetura para que, caso seja necessário, possam ser implementados de forma especifica. Os métodos declarados na interface IManager e Implementados na classe AbstractManager e são eles:

Caso sejam necessárias criar regras e validações especificas para um determinado fluxo, o mesmo pode ser feito seguindo os seguintes passos:
Criar uma interface que estenda IManager
public interface IExemploManager extends IManager<Entidade>{
} |
Cria uma classe concreta que estenda a interface criada
public class ExemploManager extends AbstractManager<Entidade> implements IExemploManager{
public PeriodManager(IBasicPersistence persistence) {
super(persistence);
}
} |