sexta-feira, 30 de dezembro de 2011

A Arquitetura por trás do módulo configuration

O lindbergframework como qualquer outro framework é configurável e customizável de acordo com as necessidades de cada projeto. A interface Configuration define o contrato de classes que configuram o framework. Existem ainda duas interfaces que estendem desta ultima. Uma para configurações do core, CoreConfiguration e outra para configurações específicas do componente de persistencia, LinpConfiguration.

São fornecidas junto com a distribuição padrão do framework implementações para configurar o framework usando XML e programaticamente via código java direto. Abaixo são descritas as implementações padrão destas interfaces que não precisam ser conhecidas para usar o framework o próprio framework instancia e usa a implementação padrão de cada uma delas se uma implementação específica não for definida.

- ClassPathXmlCoreConfiguration: Implementação de CoreConfiguration para definição da configuração do módulo CORE via XML definido no classpath da aplicação, baseado no schema:
http://www.lindbergframework.org/schema/lindberg-config.xsd

- SimpleCoreConfiguration: Implementação de CoreConfiguration para definição da configuração do módulo CORE programaticamente.

- SimpleLinpConfiguration: Implementação de LinpConfiguration para definição da configuração do módulo de persistência (LINP) programaticamente.

- XmlLinpConfiguration: Implementação de LinpConfiguration para definição da configuração do módulo de persistência (LINP) via XML baseado no schema:
http://www.lindbergframework.org/schema/linp-sqlMapping.xsd

* Processo de Configuração

O processo de configuração é iniciado e gerenciado a partir do módulo CORE. O módulo core é configurado e este configura os outros módulos dependentes, caso algum esteja sendo usado, como por exemplo o módulo LINP.

A interface CoreConfiguration define um método chamado getModules que devolve as
configurações dos módulos dependentes de modo que no momento da inicialização da configuração do CORE dentro de seu contexto os contextos dependentes que estão sendo usados são automaticamente configurados e inicializados. Este método devolve as implementações de Configuration que devem ser inicializadas. Cada implementação desta pode ser configuração via XML, programaticamente, usando arquivos .properties, arquivos .txt, enfim qualquer implementação que se desejar. Normalmente não haverá
necessidade de se escrever implementações de Configuration pois o framework já fornece implementações padrão que devem ser utilizadas. Mas se for necessário estender qualquer uma dessas de modo a mudar seu comportamento padrão ou mesmo fornecer uma implementação especifica, sinta-se a vontade mas saiba o que está fazendo.

Nenhum comentário:

Postar um comentário