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. 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. É 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.
Para que serve:
Em que situação o tema é útil:
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.
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.
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}" />
Note que a barra de ações é global, mas o botão somente irá aparecer no formulário quando a entidade principal for Departamento, o identificador da entidade não for nulo (há uma instância sendo editada) e o departamento contiver um nível superior para realocarmos os funcionários para ele.
Lembre-se de adicionar a chave de internacionalização jcompany.evt.excluirComRemanejamento ao arquivo ApplicationResources.properties com o valor “Excluir com Remanejamento”.
Passo 2: Criar classe DepartamentoAction
Como estamos criando um botão específico, será necessário um Backing Bean (Action) para receber a ação. Tipicamente um método de controle dá prosseguimento ao cenário chamando uma fachada de negócio e, posteriormente, controlando o despacho do retorno para o usuário. Esta classe deverá possuir um método excluirComRemanejamento(), em conformidade com o valor de “actionPlc” que colocamos no código do botão.
Crie a classe DepartamentoAction no pacote com.javamagazine.control.jsf, estendendo de AppAction. A classe AppAction é uma classe de arquitetura vazia para conter possíveis programações genéricas de controle, para toda a aplicação. A ...
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.