About hussamaismail

Apr.04

Conceitos Básicos de Spring Batch!

Segue alguns conceitos importantes aprendidos durante os estudos sobre Spring Batch.

[ Conceitos Importantes ]

Processamento em Lotes: São rotinas muito utilizadas em mainframes que ocorrem em segundo plano e que geralmente podem ser executadas sem a intervenção do usuário.

Spring Batch: É um framework do projeto Spring que visa fornecer funções reutilizáveis para processamento e gerenciamento de dados em um determinado cenário. Quando a principal vantagem da sua utilização é que o programador pode se preocupar com a regra de negócio e deixar que o framework cuidará da parte de infraestrutura.

Batch: É um conjunto de JOBS que são executados em uma aplicação possuindo uma sequência / fluxo bem definido.

STEP: É um passo a ser realizado dentro de um determinado JOB, basicamente é o que realmente executa uma leitura, escrita ou envia informações ou seja, realiza a ação. Um Job pode ter um ou vários steps. Um step pode ser simples ou complexo dependendo do pedido do programador podendo ter poucos ou nenhum código dependendo da implementação utilizada.

JOB: É um conjunto de STEPS que juntos executam uma determinada tarefa do fluxo de processamento. Podemos dizer que o job possui um nome e que possui a ordem dos steps que o compõem.

Exemplo:

<job id=”TrocarLampada”>

<step id=”subirEscada” next=”retirarLampada”/>

<step id=”retirarLampada” next=”colocarLampadaNova”/>

<step id=”colocarLampadaNova” next=”descerEscada/>

<step id=”descerEscada” />

</job>

[ Principais Elementos do Spring Batch ]

ITEM READER : Abstração para qualquer fonte de dados que será utilizada como entrada em um STEP dentro do JOB, podendo ser criado de várias formas, implementando a interface ItemReader do Spring ou estendendo as classes  JdbcCursorItemReader, FlatFileItemReader,JmsItemReader.

ITEM WRITER: Abstração de saída de um Step que ao contrario do ItemReader que só lê o ItemWriter escreve ou envia informações para uma fonte de dados. Ele pode ser criado apartir da interface ItemWriter ou extendendo as classes FlatFileItemWriter, HibernateItemWriter, IBatisBatchItemWriter.

Estes dois elementos estão presentes em um step, cada step possui um ItemWriter e um ItemReader, ou seja cada step realiza duas ações.

Apartir do Batch 2.x temos também um elemento chamando ITEM PROCESSOR que está no mesmo nível do Writer e Reader e é utilizado quando precisamos transformar um item antes de grava-lo.

[ Propriedades do JOB  ]

Um job é composto por Job Instance e job Executions:

JOB INSTANCE: Cada job instance pode ter vários multiplas execuções no entanto um JOB só pode ter uma Job Instance.

Vamos supor que um job falhou em um determinado passo, caso utilizemos um novo Job Instance iremos recomeçar o job desde o inicio e se utilizarmos o mesmo, ele começará de onde parou, de onde ocorreu a falha.

JOB PARAMETERS: São o que difere um Job Instance de outro, os parametros que são passados para ele, ex: uma data de execução, e etc.

Então temos que: JOB INSTANCE = JOB + JOB PARAMETERS;

[ Propriedades do STEP ]

Cada step dentro de um JOB possui um StepExecution que pertence a um exclusivo JobExecution. Cada vez que um passo é executado o novo StepExecution é criado.

Spring Batch

Apr.04

Como começar os estudos com Spring Batch?

Pessoal tudo bem?

Estes dias estou estudando um pouco sobre Spring Batch, e decidi começar por um artigo muito bom postado no DevMedia, artigo este que usarei como base e postarei algumas notas de estudo:

Link do Artigo: http://www.devmedia.com.br/artigo-java-magazine-74-conhecendo-o-spring-batch/15041

Documentação Spring Batch:

http://static.springsource.org/spring-batch/

http://static.springsource.org/spring-batch/reference/html/index.html

http://static.springsource.org/spring-batch/cases/index.html

http://static.springsource.org/spring-batch/batch-principles-guidelines.html

 

Spring Batch

Feb.13

Como Recuperar os Papeis de um Usuario no LDAP com Spring Security 3?

Pessoal, esses dias estava batendo cabeça com uma atidade, que era essa: recuperar os papeis de um usuario existente no ldap utilizando spring security, nos 46 minutos do segundo tempo achei um tutorial de um cara, que é muito interessante e bem didático.

Segue o link: http://krams915.blogspot.com/2011/01/spring-security-mvc-using-ldap.html

Além disso, o cara ainda disponibiliza um tutorial ensinando um pouco sobre como criar uma arvore no ldap utilizando o apache DS:

Link: http://krams915.blogspot.com/2011/01/ldap-apache-directory-studio-basic.html

Muito obrigado!

Spring Security

Feb.01

Como ler um ItemFileReadStore com DOJO?

Boa tarde Pessoal, tudo bem?

Estes dias estava pesquisando como poderiamos fazer para ler um temFileReadStore do DOJO que é alimentado por meio de uma URL, encontrei código que me ajudou bastante nessa tarefa, aqui segue o mesmo:

Exemplo de formato JSON:

{items: [{nomeCompleto: 'USUARIO DE TESTES'}]}

Código para leitura do JSON:

var store = new dojo.data.ItemFileReadStore( { url: 'enderecoURL' });

store.fetch( { query: { nomeCompleto: '*' },
onItem: function(item) {
console.log( 'Nome Completo Resgatado: ', store.getValue( item,'nomeCompleto' ) );
}
});

Espero que ajude!

JavaScript,DOJO

Jan.26

Como utilizar o resultado de uma consulta SQL numa outra consulta SQL?

Utilizar o resultado de uma pesquisa em outra é bem simples, segue um exemplo para ficar documentado! 🙂

Exemplo: Vamos supor que temos duas tabelas, uma fabricante e outra produtos e queremos listar o fabricante que tem o nome ‘TESTE’ e todos os produtos desse fabricante:

SELECT * FROM PRODUTOS WHERE ID_FABRICANTE = ( SELECT ID FROM FABRICANTES WHERE RAZAO_SOCIAL = "TESTE" ); 

Caso a pesquisa mais especifica por fabricantes fossem retornados mais de um elemento, poderiamos utilizar o comando da seguinte maneira:

SELECT * FROM PRODUTOS WHERE ID_FABRICANTE IN ( SELECT ID FROM FABRICANTES WHERE RAZAO_SOCIAL = "TESTE" ); 

Abração! 🙂

Oracle

Jan.26

Jan.19

Dec.21

Como verificar informações do usuário com spring security?

Pessoal, tudo bem?

Estava procurando uma maneira de visualizar as informações de um usuário logado por meio do spring security, bom está aí (:


SecurityContext context=SecurityContextHolder.getContext();
Authentication auth=context.getAuthentication();
out.print(auth.getPrincipal()+"<br><br>");
out.print("Detalhes: " + auth.getDetails()+"<br><br>");


HttpSession sessao = request.getSession();
SecurityContext ctx = (SecurityContext) sessao.getAttribute("SPRING_SECURITY_CONTEXT");

Authentication autentication =ctx.getAuthentication();
out.println(autentication.toString());

Abração!

Java

Dec.11

Como gerar documentação estilo javadoc para códigos JavaScript? (JSDOC)

Bom dia pessoal, tudo bem?

Esses dias estou pesquisando algumas formas de gerar documentação de código javascript, mais especificamente código dojo.

Pesquisando encontramos uma api que faz isso muito bem que é a JSDOC, e uma implementação dessa api para utilização no maven que é a JSDOCTK:

Endereço do Projeto:

http://code.google.com/p/jsdoctk-plugin/

Lá tem tudo explicadinho relacionando instalação, funcionamento e anotações!

Abração!

Spring Security,JavaScript

Nov.21

Redirecionando página / iframe / pop-up com Javascript!

Pessoal, temos uma maneira bem simples de redirecionar uma página com javascript.

 

Basta colocar o comando abaixo na sua função:


window.location.href = "enderecoDaPagina";

 

Redirecionando paginas contendo iframe:

Quando estamos na página mais especificas e queremos redirecionar a página que está chamando os iframes basta utilizar o comando abaixo:


top.location = "enderecoDaPagina";

 

Quando estamos nas especificas e queremos redirecionar apenas elas basta utilizar:


self.location = "enderecoDaPagina";

 

Abração!

JavaScript