Gostaria de opiniões sobre um novo desafio que irei iniciar.
Tenho um software básico, que realiza tarefas triviais de conexão à banco de dados, relatórios, controle e permissões de usuários e tudo mais necessário para seu funcionamento. Trata-se de uma aplicação web, baseado em VRaptor.
O meu desafio neste momento é permitir que o software básico seja estendido sem que sua estrutura seja alterada.
Por exemplo, digamos que eu precise construir um módulo financeiro. A ideia é que este módulo utilize toda a estrutura básica do software para comunicação com o banco de dados, controle de usuários, etc, e apenas tratasse de suas particularidades. Após o desenvolvimento deste módulo, geraria um JAR e colocaria na pasta de bibliotecas da aplicação básica, e esta por sua vez, incorporaria o novo módulo.
Para quem conhece o OpenERP, é algo semelhante à maneira como ele trabalha em relação aos módulos (porém, é escrito em python).
Alguém tem alguma ideia a respeito de como isto poderia ser viabilizado?
Grato.
Henrique.