Artigo Java Magazine 70 - Aplicações Corporativas com jCompany Free – Parte 3
Desenvolva uma aplicação corporativa Java EE 5 para Web definindo uma arquitetura de base reutilizável que provê alta qualidade e produtividade.
Aplicações Corporativas com jCompany Free - Parte 1
Aplicações Corporativas com jCompany Free - Parte 2
Apresentação do jCompany Full-Stack Framework. O jCompany
Free, como é chamado, faz a integração em nível de “Caso de Uso”, reutilizando
integradores de mais baixo nível para prover e gerenciar um ambiente com alto
índice de reuso, típico do mundo Java EE Open-Source. Para que serve: Desenvolver aplicações
corporativas Java EE 5 para Web com apoio do jCompany Free GPLv3, framework
integrador que especializa 20 frameworks líderes de mercado, definindo uma
arquitetura de base reutilizável que provê alta qualidade e produtividade. Em que situação o tema é útil: É muito complicado
para as empresas controlarem a arquitetura de seus vários sistemas sem
possuírem uma definição arquitetural coorporativa. Muitas tentam desenvolver
sua própria plataforma de desenvolvimento e não obtém o sucesso desejado por
essa tarefa estar fora do seu core-business. Explicando Padrões de Projeto – Parte 2: Se você trabalha em desenvolvimento corporativo envolvendo
aplicações em grande quantidade e com largo volume de documentos (agregações de
classes a serem persistidas), montar uma arquitetura de base Open-Source do
zero é um grande risco. Construir padrões de alto nível, que exijam pouca
programação, e evoluir dezenas de produtos de base internamente são em grande
parte atividades fora do core-business da maior parte das organizações, mesmo
com integradores de mais baixo nível, tais como Spring e JBoss Seam. Este
trabalho de base com desvio de foco costuma culminar em soluções de arquitetura
“artesanais”, com variabilidade indesejável entre diversas equipes, isso quando
possuem uma gerência de configuração! Pergunte-se: qual a versão e release
atual da arquitetura (Open-Source) do sistema A ou B? Se você não tiver um
único número para oferecer, possivelmente enfrentará dificuldades no futuro.
O jCompany Full-Stack Framework – Community & International Version, chamado resumidamente de jCompany Free, é uma versão gratuita e de código aberto (licenciada sob GPLv3) da parte framework do jCompany Developer Suite 5.1, suíte de desenvolvimento mantida pela Powerlogic SA.
O jCompany Free foi introduzido em dois artigos anteriores, publicados nas Edições 63 e 67. No primeiro discutimos fundamentos, instalação e configuração (dois itens importantes por se tratar de um framework de integração de alto nível) e fizemos o desenvolvimento de uma aplicação básica introduzindo e reutilizando o conceito de Caso de Uso Padrão “Manter Agregação Mestre/Detalhe”, para manutenção de Funcionários e seus Dependentes.
No segundo artigo apresentamos outros Casos de Uso Padrões disponíveis para reuso imediato. Implementamos uma manutenção recursiva e com visão hierárquica (Treeview) para Departamentos; fizemos uma alteração no cadastro de Funcionários para vincular Departamentos através de diálogo de seleção; implementamos exclusão lógica e regras de negócio via “programação por exceção” e ainda discutimos conceitos como caching em escopo de aplicação e Inversão de Controle por convenção de nomenclatura (Pattern Based Auto-Wiring IoC).
Neste terceiro e último artigo da série, vamos apresentar padrões de programação úteis para cenários onde não se torna possível a “programação por exceção”, ou seja, a “interceptação simples de algoritmos padrões do framework”, como fizemos com Template Method, no último artigo.
Em seguida, iremos apresentar os padrões ricos de modularização do jCompany: Módulos de Negócio e Técnicos, Camada Bridge, Plugins, etc. E, finalmente, implementaremos um primeiro jCompany Plugin como exemplo de extensão com baixíssimo acoplamento, via Design Pattern Observer já utilizando o emergente padrão Java EE 6 Web-Beans.
Na verdade, o tipo de programação jCompany que veremos neste artigo é o mais próximo do comumente encontrado no mercado, onde o desenvolvedor se responsabiliza pela seqüência em todas as camadas MVC: codifica classe de controle, contrato e implementação de fachada, classes de negócio (Application Services, Business Objects ou Managers), DAOs e Design Patterns de Criação (Factory, Service Locator/Business Delegate, etc.) para instanciar e destruir a parcela de classes não gerenciada pelo contêiner.
Programando MVC sem IoC
Nosso tutorial visa produzir uma nova funcionalidade no Caso de Uso Padrão “Manter Agregação Simples” (CRUD). Desenvolvemos este caso de uso no artigo anterior, para manter a entidade Departamento. Quem não acompanhou ou não possui disponível esta aplicação pode fazer download a partir do site da Java Magazine ou do jCompany Free.
A funcionalidade que escolhemos é denominada “Excluir com Remanejamento”. Ela prevê um novo botão na barra de ações que aciona o remanejamento de todos os funcionários contidos no departamento correntemente editado para o departamento imediatamente superior, antes de sua exclusão. Como queremos que ela conviva com a exclusão existente (que continuará a ser uma opção alternativa para o usuário) não é o caso de somente alterarmos o cenário de exclusão com “programação por exceção” – e, portanto, iremos programar um novo cenário do zero*. Lembrando do último artigo que o botão padrão faz uma “exclusão lógica” que tornava um Departamento “Inativo” – mas não se importava com os funcionários nele lotados.
* Importante: A programação deste caso deve se restringir aos problemas adequados. Alguns desenvolvedores iniciando no jCompany tendem a se manter em uma “zona de conforto” programando fluxos de controle excessivos como fariam utilizando integradores de mais baixo nível como JBoss Seam ou Spring. Com a experiência percebem que o modelo IoC/DI de alto nível do jCompany, conforme vimos no último artigo, baseado na programação declarativa e “por exceção” – não somente é mais produtivo como garante maior padronização, diminui as chances de erro e de problemas diversos como performance e segurança.
Passo 1: Adicionar botão na barra de ações para o Caso de Uso “Departamento”
O Caso de Uso Padrão reutilizado para Departamento provê as ações básicas para manutenção de ciclo de vida CRUD (“Create, Retrieve, Update e Delete”), além da funções de “Clonar”, “Painel de Impressão”, “Ajuda” e formulário auxiliar para “pesquisa e seleção”, fornecidos de forma genérica pelo framework.
O jCompany Free leva a generalização ao extremo, fornecendo inclusive botões de ação padrões na camada visão. Fornece ainda “pontos de extensão” padrões também em JSPs, como o arquivo “/plc/jsps/geralAcoesComplemento.jsp”, página vazia pré-configurada na criação do projeto, representando um espaço padrão da arquitetura para conter novos botões de ação, como o que queremos. Estes botões aparecem ao lado dos botões genéricos do jCompany e de forma indistinta para o usuário, graças à arquitetura de gestão de peles e leiautes.
Vamos alterar o arquivo “/plc/jsps/geralAcoesComplemento.jsp” no projeto “javamagazine” para adicionar o botão desejado na barra de ações. A Listagem 1 apresenta o código fonte necessário.
Listagem 1. Trecho de código para inserção do botão na barra de ações
<%@ taglib uri="/WEB-INF/plcf.tld" prefix="plcf"%>
<plcf:buttonAction id="botaoExcluirRemanejamento" actionPlc="excluirComRemanejamento"
partialSubmit="#{requestScope.ajaxUsa}" label="jcompany.evt.excluirComRemanejamento"
buttonArrayID="EXCLUIR_REMANEJAMENTO"
blocking="true"
rendered="#{plcEntity.class eq 'class com.powerlogic.javamagazine.entity.Departamento'
and plcEntity.id != null and not empty plcEntity.departamentoPai}" />"
[...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo