Encontro JBUG Brasil – Quinta-feira 17/02 a partir das 19:30

09/02/2011 in Uncategorized

O JBoss User Group Brasil o convida para o encontro da comunidade. Nesta ocasião, contaremos com duas palestras, contando com profissionais da própria RedHat.

Horário: 17 de fevereiro 2011 de 19:30 a 22:00
Local: Auditório da Caelum – São Paulo
Organizado por: JBUG:Brasil

Inscrições abertas: http://www.caelum.com.br/evento/jbug/

Programação

Dicas e Truques do JBoss EAP, e o que esperar das versões Community 6.0 e 7.0
Das 19h30 às 20h30, com Bruno Rossetto Machado
A palestra tem como objetivos: mostrar as principais novidades do JBoss AS 6 o qual teve sua versão Final lançada em dezembro de 2010, resumir o que podemos esperar do JBoss AS 7.0 e dar algumas dicas e boas práticas que poderão ser utilizadas em diversas instalações deste Servidor de Aplicações.
Palestrante: Bruno Rossetto Machado – RedHat.
É bacharel em Sistemas de Informacão pela Universidade Presbiteriana Mackenzie e atua com desenvolvimento de software com a plataforma Java desde 2003. Possui experiência em projetos Java EE nas áreas automotivas, e-commerce, financeira, telecom, e outros projetos de missão crítica. Participou do projeto ganhador do Duke Choice’s Awards de 2005. Atualmente é Engenheiro de Suporte Senior na Red Hat Brasil auxiliando desenvolvedores na utilização dos produtos JBoss.

Qualidade de Desenvolvimento : Uma perspectiva JBoss com Cobertura, Arquillian e boas práticas
Das 21h às 22h, com Diógenes Rettori
Com a crescente preocupação a respeito da qualidade e confiabilidade dos testes realizados em aplicaç?es EE, algumas ferramentas e tecnologias serão brevemente introduzidas:
Integração Contínua com Hudson;
JBoss e Cobertura Framework.
Palestrante: Diógenes é Arquiteto de Soluç?es RedHat para Alianças Estratégicas. Possui várias certificaç?es Sun, IBM e Ericsson e trabalha profissionalmente com JBoss desde 2005.

TDC2010 – Confira a trilha JavaEE do evento

06/08/2010 in geral, jboss

Você já visitou a trilha coordenada pelo JBUG Brasil no TDC2010 ?

As palestras confirmadas até agora são:

Em breve publicaremos as palestras que serão ministradas com o pessoal da própria RedHat (Samuel, Lazarotti) e outros profissionais de peso!

Inscreva-se já no site do evento: http://www.thedevelopersconference.com.br/tdc/2010/sp/trilha-javaee

Um abraço!

Leandro

Implementando Serviços no JBoss 5 (MBean e POJO) – parte 1

05/08/2010 in jboss

Bom vamos lá para mais um texto da Taliban productions!

Resolvi publicar algo que mostrasse efetivamente como criar um serviço para o JBoss, e já que pensei em montar isso preparei o exemplo nas duas formas possíveis de fazê-lo (e em duas partes): MBean e POJO.

Vamos ao primeiro exemplo utlizando MBean, e no próximo post tratarei dos serviços implementados com POJO simples e suas vantagens.

Primeiramente criei um projeto java simples no eclipse de nome teste-mbean com a seguinte estrutura:

Após criar o package, criei duas classes java, sendo uma delas a interface TesteSeviceMBean que segue abaixo:

1
2
3
4
5
6
7
8
package org.jboss.teste.mbean;
 
import org.jboss.system.ServiceMBean;
 
public interface TesteServiceMBean extends ServiceMBean {
	public String getProperty(String property);
	public void setProperty(String key, String value);
}

Um ponto importante a ser levantado, a interface precisa estender a classe ServiceMBean obrigatoriamente, e precisa ter o sufixo MBean no nome.

Abaixo segue a implementação do serviço que apenas adiciona um valor indexado por uma chave e precisa estender a classe ServiceMBeanSupport e implementar a interface criada acima:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package org.jboss.teste.mbean;
 
import org.jboss.system.ServiceMBeanSupport;
 
public class TesteService extends ServiceMBeanSupport implements TesteServiceMBean {
 
	@Override
	protected void startService() throws Exception {
		log.info("TesteMBeanService Iniciado");
	}
 
	@Override
	protected void stopService() throws Exception {
		log.info("TesteMBeanService Parado");
	}
 
	@Override
	public String getProperty(String property) {
		String value = System.getProperty(property);
		log.info("TesteMBeanService retornando: "+value);
		return value;
	}
 
	@Override
	public void setProperty(String key, String value) {
		System.setProperty(key, value);		
	}
 
}

Os métodos getProperty e setProperty são apenas para exemplificar um método de negócio em um serviço qualquer. Os métodos startService e stopService são sobrecarregados e fazem parte do ciclo de vida de um MBean, apenas para que seja jogado um log apenas informando que o serviço iniciou ou parou corretamente.

Agora precisamos configurar o serviço implementado, para isso criaremos um xml que define qual a classe de implementação (atributo code na tag mbean), e qual o nome que daremos ao serviço (atributo name na tag mbean), lembrando sempre que o nome do serviço é formado com a seguinte estrutura:

E segue o arquivo de configuração do serviço que deve ter a seguinte estrutura de nome: *-service.xml

No nosso case dei o nome de testembean-service.xml e o adicionei na pasta META-INF do nosso projeto.

1
2
3
4
5
<server>
  <mbean code="org.jboss.teste.mbean.TesteService"
     name="org.jboss.teste.mbean:service=TesteService">
  </mbean>
</server>

Até aqui legal, agora basta exportarmos esse trem como um arquivo *.jar e jogá-lo na pasta deploy do seu perfil iniciado do JBoss. Essa não é a única forma de fazer deploy de um serviço no JBoss, quem sabe num texto futuro eu aborde apenas isso =P

Você verá no log algo como: INFO [TesteService] TesteMBeanService Iniciado

Com o serviço iniciado podemos verificar e invocar seus métodos via twiddle ou jmx-console, tirei o screenshot do serviço disponibilizado no jmx-console:

E acessando o link do serviço podemos ver a descrição completa de atributos e temos a possibilidade de invocar seus métodos, lembram do setProperty e do getProperty?

Bom agora basta interagir com seu serviço, beber algumas e ter idéias geniais de serviços que você pode implementar ;)

No próximo post trataremos de serviços também, mas implementandos a partir de classes POJO simples.

Num post futuro quero tratar apenas de formas de utilização do twiddle!

Chamada de trabalhos para o TDC2010 – JavaEE

04/08/2010 in geral, jboss, Uncategorized

Estamos abrindo uma trilha JavaEE no TDC2010, há espaço aberto para algumas palestras.

JBoss e EE tudo a ver! Portanto, se você possui uma apresentação com tema relacionado e deseja enviar sua proposta do trabalho para avaliação, ninguém melhor não é?!

Envie um email para leandrocl at gmail.com com as informações sobre a palestra:

- Título
- Resumo
- Mini Curriculo do(s) Palestrante(s)

Receberemos trabalhos enviados até o dia 07/08.

Levar a força e qualidade da nossa comunidade, contribuindo e compartilhando conhecimento!

Abraço e bom trabalho!

Leandro Lima

Stateless Session Bean Pool Size no JBoss AS 5

19/07/2010 in jboss

Bom prometi a mim mesmo que não me prolongaria nos posts, portanto vamos lá:

O container EJB no JBoss mantém um pool de SLSB para evitar de a todo momento criar e destruir instâncias. Você pode configurar o tamanho desse pool alterando o parâmetro maxSize que fica no trecho que código do xml abaixo retirado do arquivo deploy/ejb3-interceptors-aop.xml:

<annotation expr=”class(*) AND !class(@org.jboss.ejb3.annotation.Pool)”>
@org.jboss.ejb3.annotation.Pool (value=”ThreadlocalPool”, maxSize=30, timeout=10000)
</annotation>

O atributo timeout é o tempo de espera por uma instância válida no pool caso suas requisições tenham atingido o limite de 30 (que na verdade é o valor default)

O JBoss utiliza a implementação de ThreadLocalPool para evitar a sobrecarga de sincronização Java, mas nada impede que você mude a implementação para um mecanismo diferente de pooling. O JBoss implementa também o StrictMaxPool que fixa um número máximo de requisições simultâneas. Se não houver threads disponíveis, as requisições que ultrapassam o tamanho especificado em maxSize ficarão bloqueadas até que uma instância esteja disponível.

<annotation expr=”class(*) AND !class(@org.jboss.ejb3.annotation.Pool)”>
@org.jboss.ejb3.annotation.PoolClass (value=”org.jboss.ejb3.StrictMaxPool“, maxSize=30, timeout=10000)
</annotation>

Os parâmetros de configuração do pool de SLSB pode ser verificado a qualquer momento via JMX. Basta buscar no seguinte domínio: jboss.j2ee e selecionar o serviço EJB que você deseja monitorar. Lá você encontrará o atributo Available Count que mostrará a quantidade de instâncias disponíveis no pool de SLSB para processamento.

Mas e se você precisasse definir um tamanho de pool específico para um EJB e todo o resto utilizasse a configuração definida no xml?

Basta anotar seu bean com a seguinte anotação:

@PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=10, timeout=1000)

Abraços ai galera!

Em breve mais dicas de JBoss diretamente do Taliban!

Migração do Ning para JBUG:Brasil 2.0

14/07/2010 in geral

Parece que tudo funcionou a contento, grande parte dos usuários conseguiram ser migrados sem maiores problemas.

Videos, Slideshows and Podcasts by Cincopa Wordpress Plugin