quinta-feira, 24 de março de 2011

Tutorias jcompany


Jcompany Tutorial sobre a ferramenta muito utilizada pelos órgãos públicos e governo federal!

Mapeamento no Jcompany 5.5!
Jsecurity é perfeito para aplicações com alta segurança da informação. Turorial !

JCompany Developer Suite na Prática Tutorial Online Grátis muiito Bom!


Mais um tutorial Completinho sobre Jcompany!


Era isso galera!! Compartilhe, comente, tire suas dúvidas, divulge!! Crie seu projeto usando o jcompany e conheça mais essa poderosa Suite Jcompany!

Tutorias em vídeo jcompany

Tutorial sobre Jcompany da Powerlogic- Mapeamento Entidades.

Trabalhando com a Suite Jcompany Tutorial Básico para profissionais jcompany powerlogic!


Como funciona a Ferramenta Jcompany e suas funcionalidades.

Fonte: www.youtube.com e www.powerlogic.com.br

sexta-feira, 18 de março de 2011

Saindo do Forno: jCompany Developer Suite - jCompany Suite 6.0

jCompany Developer Suite - jCompany Suite 6.0 - previsto para 15/03/2011

[Java EE 6] Suporte à especificação Java EE 6, de modo compatível com App Server Java EE 5
Suporte às novas APIs Java EE 6 como CDI 1.0, JAX-RS 1.1, JAX-WS 2.1, Bean Validation 1.0, JSF 2.0 (Facelets incluido) e JPA 2.0 - exceto o Servlet 3.0 para permitir que aplicações ainda rodem em Tomcat 6.x, jBoss AS 5.x ou outros App Servers Java EE 5.

[WEB 2.0] Prover arquitetura MVP com uso de SOFEA/SOUI e HTML5 (alternativa ao MVC)
Criação de alternativa arquitetural ao padrão Java EE de 'camada visão no servidor' (JSF,Facelets, JSTL, JSP, Servlet, etc.), baseado em padrões conhecidos como SOFEA, SOUI ou Client-Server 2.0.

[SOA] Segurança B2B
Definir e implementar padrão de segurança entre serviços (server-to-server ou B2B),. Ex: propagação de credenciais, etc..

[RIA - Extremme] Implementação da segurança e conforto visual integrados B2C
Implementar seguranca em nivel de menu, componentes de leiaute (tab-folder, widget em geral) e campos (salario)

[RIA - Extremme] Evoluções na utilização da paleta homologada
Expansão dos Widgets padronizados e utilizados como padrão no jCompany

[jCompany Profiles] Grupos tecnológicos homologados
Tal como no Java EE 6, ao determinarmos clara e formalmente as combinações de tecnologia que utilizamos para testar e homologar o jCompany, concentramos nossos esforços para atender melhor em combinações mais comuns, tanto no suporte quanto no desenvolvimento

jCompany Developer Suite - jCompany Suite 6.1 - previsto para 31/08/2011

Compatibilização com aplicações desenvolvidas na 5.5.
Compatibilidade de aplicações JSF/JSP e JSF/Facelets desenvolvidas na 5.5.x ou anteriores, com novidades introduzidas na versão 6.x

[SOA] Evolução nas soluções de SOA envolvendo padrões SCA, SDO, etc..
Aprimorar a extensão do ferramental SOA, introduzindo possivelmente mais componentes úteis à paleta de Web-Services, REST, RIA e BPM

[Rules] Integração com jBoss Rules
[Rules] Integração com jBoss Rules

terça-feira, 15 de março de 2011

Tutorial criando relatórios com Jasper Reports para aplicações Jcompany

Tutorial criando relatórios com Jasper Reports para aplicações Jcompany.
Muito interessante para geração de relatórios simples e complexos nas aplicações Jcompany.

Tutorial Integrando Google Analitics com Jcompany

Tutorial muito legal, sobre a integração do Google Analitics em aplicações Jcompany.
Vale a pena ler e entender como essa poderosa ferramenta do google pode ser integrada as aplicações Jcompany.

eBook - Tirando o Máximo do Java EE 5 com jCompany Developer Suite

Pessoal, estou divulgando o ebook de Jcompany para o pessoal baixar 5 capitulos gratuitos do eBook "Tirando o Máximo do Java EE 5 com jCompany Developer

quinta-feira, 10 de março de 2011

Framework Tiles no Jcompany

O jCompany traz uma classe ancestral comum, chamada PlcBaseTilesController que implementa a interface Controller do framework Tiles, e diversos descendentes que atuam como controladores mais específicos de determinados leiautes ou componentes visuais.

Estas lógicas de controle atuam após a lógica principal, do Action, e imediatamente antes da renderização do componente ao qual está associada.

São os seguintes os descendentes de PlcBaseTilesController:

PlcPortletController, com lógicas genéricas para permitir a expansão e retração de componentes visuais que herdam do leiaute “def.portlet.ancestral”, e também para componentes de navegação paginada, que herdam de “def.componente.navegador.ancestral”.


PlcTreeController e PlcTreeViewController:
com lógicas genéricas para manipulação de treeview, em componentes que herdam leiaute de “def.componente.treeview.ancestral”.

PlcTabController e PlcTabAutomaticoController: com lógicas genéricas para componentes de tab-folder.

PlcMenuItemController: com lógicas genéricas para manipulação itens de menu (atualmente, basicamente contabilizando total de itens por sub-menu, para rotina DHTML).

PlcLeiauteUniversal: diversas classes de controle com mesmo prefixo, que colaboram entre si para permitirem leiautes genéricos automatizados, que dispensam a declaração Tiles.

Uso Avançado do serviço de fonetização - Questão de prova!

Além dos casos onde o jCompany faz o tratamento automático é possível utilizar o serviço de fonetização registrado em qualquer lógica de negocio da camada de modelo através do localizador PlcModeloLocator.

PlcModeloLocator.getInstance().get(IPlcPhoneticService.class);

Para os casos onde se deseja utilizar o serviço de fonetização na camada controle, pode-se utilizar o método fonetiza da Facade.

IPlcFacade facade = PlcControleLocator.getInstance().getFacadePadrao();

valorAtributo = facade.fonetiza(valorAtributo.toString());

Named Query - Questão da prova de certificação!

As NamedQuery são serviços oferecidos pela camada de persistência para que a camada modelo possa recuperar objetos específicos, que satisfação um conjunto pré-determinado de critérios.

NamedQuery são annotations que devem ser declaradas na classe concreta (Entity/VO) e possuem como atributos necessário o nome e o código HQL com os critério da consulta.

No caso do relatório JASPER o nome da NameQuery deve ser “QuerySelRelEscalar” e o HQL deve ser Escalar.

Criando Itens de Menu no JCompany

Para criar uma entrada de menu, devemos editar o arquivo “app-tiles-menu1.xml” da aplicação.

Deve-se manter o nome da chave de internacionalização com padrão “def.menu.[aliasCasoUso].titulo”. O rótulo também deve ser criado no arquivo “ApplicationResources.properties”.

Repositório Maven - Questão de Prova!

O Apache Maven é a principal ferramenta de gerenciamento de configuração e também de automação dos processos de compilação, construção e liberação, utilizada pelo jCompany Configuration Management.

O Maven deve ser utilizado pela empresa para um controle refinado de versões, gerenciando bibliotecas de componentes específicos e reutilizáveis por cada aplicação. É também utilizado em maior extensão pelo jCompany QA Suite, que possui especializações em plugins Maven para a área de controle de qualidade. Veremos um pouco mais sobre Maven quando formos compreender a estrutura padrão dos pacotes (packages) que compõem as aplicações e rotinas de liberação – vamos, por enquanto, apenas entender a estrutura básica de seu repositório.

O repositório Maven contém todos os componentes homologados para utilização em projetos jCompany, em diferentes momentos: Componentes para uso em “tempo de compilação” apenas. Neste caso, os componentes não precisam ser montados no executável da aplicação (não compõem o executável da aplicação), mas apenas referenciados pelo Class Path dos projetos do Eclipse. Normalmente, é o caso das APIs Java EE (javaee-5.jar, mail.jar, servlet.jar, etc.) ou clientes JMS (jboss*.jar), que já existem ou devem ser montados diretamente no Application Server.

Hibernate Console - Questão de Prova!

Hibernate Console permite a configuração de uma fábrica Hibernate local, para testes e codificação assistida de HQL. Verifica também a sintaxe dos HQLs embutidos em códigos Java, dentre outros recursos.

Ajuda On-Line JCompany integrada no Eclipse

Pessoal, aprender a utilizar bem a Ajuda On-Line é como “aprender a pescar” conhecimentos. Uma das formas de configurar a Ajuda On-line para nos permitir uma busca textual restrita à metodologia e base de conhecimento do jCompany, e fazendo uma pesquisa-modelo:

É muito simples, e vai ajudar a tirar as dúvidas dentro do Eclipse!

1. Acionar o menu “Help -> Help Contents”

2. Na página principal do Help On-Line, clicar em “Search Scope”. No diálogo “New Search List”, digitar “Powerlogic” em “List name” e selecionar o tópico “Powerlogic jCompany” na lista.

Validações invariáveis Nativas do Hibernate

Algumas das validações que cairam na prova!
Lembrei de algumas questões da prova, e nesta tabela são 2 anotações que entraram
na prova de developer.

Anotação

Objetivo

Exemplo

@NotNull

O campo deve ser informado. Obs: considera “” (String vazio) como informado!

@NotNull

private String nome;

@Length(min=, max=)

O valor do campo String deve ter comprimento no intervalo

@Length(min=3,max=30)

private String nome;

@Max(value=)

O valor do campo Numérico (ou String representando números) deve ser menor ou igual ao informado.

@Max(value=100)

private Integer percent;

@Min(value=)

O valor do campo Numérico (ou String representando números) deve ser maior ou igual ao informado.

@Min(value=0)

private Integer percent;

@Past

O valor do campo Data deve ser uma data no passado

@Past

private Date dataNasc;

@Future

O valor do campo Data deve ser uma data no futuro

@Future

private Date dataPrevista;

@Pattern(regex="regexp", flag=)

O valor do campo String deve seguir a expressão regular.

@Pattern(regex="^\\d{5}(-\\d{3})?$")

private String cep;

@Range(min=, max=)

O valor do campo Numérico (ou String representando números) deve estar no intervalo informado.

@Range(min=0,Max=100)

private Integer percent;

@Size(min=, max=)

O número de itens do campo Coleção deve estar no intervalo informado.

@Size(min=1,Max=5)

private Set dependente;

@AssertFalse

Verifica se o método anotado retorna false. Para regras de entrada procedimentais que devem dar falso

@AssertFalse

public boolean validaLimiteProibido() {

(...)

}

@AssertTrue

Verifica se o método anotado retorna true. Para regras de entrada procedimentais que devem dar verdadeiro.

@AssertTrue

public boolean validaLimitePermitido() {

(...)

}

@Valid

Propaga a validação para Detalhes ou Componentes

@Valid

private Set dependente;

@Email

Se o email segue formato válido

@Email

private String email;


Questão da prova de certificação

Algumas anotações que entraram na prova de certificação de Jcompany Developer

Anotação

Objetivo

Exemplo

@PlcObrigatorio

O campo deve ser informado. Obs: Melhora o NotNull do Hibernate porque considera “” (String vazio) ou espaços como não informado, no caso de campo String!

@PlcObrigatorio

private String nome;

@PlcCnpj

Valida o campo String com um CNPJ válido (*)

@PlcCnpj

private String cnpj;

@PlcCpf

Valida o campo String com um CPF válido (*)

@PlcCpf

private String cpf;

@PlcMascara(

regex="regexp")

Igual ao Pattern, porém revisa a mensagem padrão, que no primeiro caso exibe a expressão regular para usuários finais, e permite um exemplo mais simples para este fim.

@PlcMascara(regex=

"^\\d{5}(-\\d{3})?$",

messageExemploFormatado=

"99999-999")

private String cep;

@PlcTamanhoExato(tam=)

Mais apropriada que o Range ou Min/Max, quando o tamanho do campo deve ser exatamente de um valor determinado, por dar mensagem mais apropriada.

@PlcTamanhoExato(tam=2)

private String uf;

@PlcDominioCondicional

Permite validação entre campos, com diversas opções de operadores Declarada em nível da classe. (**)

@PlcDominioCondicional(

valorPropA="numeroMinimo",

operador=Operador.MENOR_OU_IGUAL,

valorPropB="numeroMaximo",

message="{rh.msg.min.maior}")

public class FaixaValor {

(…)

}

@PlcObrigatorioCondicional

Permite validação de obrigatoriedade com dependência entre campos. Declarada em nível da classe. (**)

@PlcObrigatorioCondicional(

se=Se.INFORMOU_QUALQUER,

propA="rua",

entao=Entao.INFORMAR_QUALQUER_EM,

propB="numero")

public class Funcionario {

(…)

}

@PlcMultiplicidade

Permite a validação de número mínimo e máximo de detalhes e sub-detalhes. O uso do Size da Hibernate é inviável, porque considera linhas em branco e não contabiliza linhas marcadas para exclusão (***)

@PlcMultiplicidade(min=1,max=3,

message="{jcompany.aplicacao.mestredetalhe.

multiplicidade.HistoricoProfissionalVO}")

private Set historicoProfissional;

sexta-feira, 4 de março de 2011

Inversão de Controle no jCompany - Após Autenticação (Lógicas de Profiling)

O jCompany traz a classe abstrata PlcBaseUsuarioPerfilService, que deve ser especializada para tratamentos de perfil de usuário, ‘após a autenticação’.

A classe PlcRequestProcessor (Struts) ou PlcPhaseListener (JSF), testam se a sessão está recém autenticada (usuário fez login mas seu perfil ainda não está na sessão) e, em caso positivo, chama uma implementação concreta da classe PlcBaseUsuarioPerfilService, que deve encapsular lógicas de “user profiling”, ou seja, de registro de perfil de usuários na sessão HTTP.

Nota: Uma sessão HTTP é iniciada antes que o usuário seja autenticado, e pode inclusive existir e se encerrar sem que haja autenticação (sessão para usuários anônimos). O evento “aoInicializarSessao”, portanto, não é adequado para a implementação de lógicas de perfil de usuários. Estas lógicas devem ser feitas uma única vez após o login, tipicamente para recuperação e registro, em registrar dados em caching de sessão, contendo informações do usuário recém autenticado.

Após a autenticação, o jCompany:

- Faz um registro de auditoria do tipo “autenticação do usuário X” usando JMS

- Faz um registro de estatística “num. de logins do usuário X” usando JMS

- Logging

- Altera o timeout para usuários autenticados, se declarado no web.xml

- Cria um VO que contém informações do login (por default, contendo somente o login em si), que será enviado em todas as requisições para a camada modelo via DP Context Object)

- Chama método/evento abstrato “registraPerfilEspecifico”


Arquitetura JCompany

Caracteristicas da Suite JCompany

Automação completa (Robôs): Robôs eliminam por completo a necessidade de trabalho humano, sendo em geral o ápice da otimização. Em software, generalizações de Orientação a Objetos funcionam como robôs industriais, eliminando a necessidade de codificação manual de partes de programas. Esta é a área de atuação do jCompany FS Framework.

Automação indireta (Ferramentas): Quando não é possível “robotizar”, a provisão de ferramentas apropriadas pode maximizar o trabalho humano. Em software, como em qualquer processo industrial, ferramentas de apoio para geração de artefatos, construção e liberação de executáveis, edições, etc.., automatizam tarefas intermediárias, acelerando a codificação manual de programas. É a área de atuação do jCompany IDE.

Orientação: Quando o trabalho é meramente intelectual, e mesmo o uso de ferramentas arrojadas não proveja ganhos significativos, a orientação na forma de repasse de experiências e padrões históricos de solução (best-practices) é a forma de se maximizar resultados. Em software, como em qualquer processo industrial, a definição de “padrões de solução” para problemas freqüentes, documentação extensiva e roteiros “passo a passo” ativos e inteligentes, podem orientar os profissionais decisivamente, na codificação manual de programas. É a área de atuação do jCompany Patterns e Methods.

Conferência (Controle de Qualidade): A “dupla checagem” da qualidade dos produtos intermediários de um processo evita desperdício e inclusive a liberação de resultados indesejáveis ao mercado. Em software, a codificação de Testes de Unidade funciona como uma área de controle de qualidade que permeia o processo, garantindo continuamente que a codificação manual de segmentos de programas esteja em conformidade. É a área de atuação do jCompany Test for Developer.

Infra-Estrutura (Manutenção e Preservação): Um ambiente de produção que envolva tecnologia nos vários âmbitos citados, necessitará de uma contínua monitoria para garantir a “lubrificação”, “fluidez” e “estabilidade” da bancada tecnológica utilizada. Em software, como em qualquer ambiente de produção industrial, para evitar quedas de
rendimento, a infra-estrutura de suporte tecnológico ao processo precisa se manter estável e integra, ao longo do tempo. É a área de atuação do jCompany Configuration Management.