Gastaldi's Blog

Mais um blog sobre Java …

Arquivos de tags: jboss

JBoss Forge 1.0.6.Final Liberado !

É com grande prazer que informo a liberação do JBoss Forge 1.0.6.Final ! Essa é a primeira liberação depois que me tornei core developer na Red Hat !

O JBoss Forge é uma IDE baseada em linha de comando, que auxilia na criação de aplicações Java EE 6.0, pronta para produção. Possui plugins que geram interfaces do usuário, configuram a aplicação baseado no servidor de aplicação desejado e muito mais !

Foram corrigidos + de 15 bugs desde a versão 1.0.5, e adicionado várias melhorias, entre elas:

  • Licença EPL: A partir desta versão, o JBoss Forge passa a utilizar a licença EPL (Eclipse Public License). Isto para resolver o problema de que, com  a licença anterior (LGPL), seria legalmente restrita a facilildade de criação de plugins por terceiros, portanto com isso removemos esta restrição.
  • Layout Redesenhado: O Layout das aplicações geradas pelo JBoss Forge foram melhorados. Agora as páginas geradas seguem o padrão HTML 5 e utilizam o framework Twitter Bootstrap. Tudo para facilitar a manutenção e diminuir a quantidade de código necessário
  • “Você quis dizer ?”: Agora ao tentar executar um comando inválido, o JBoss Forge irá apresentar sugestões similares para você.
  • Plugins, Plugins, Plugins ! : O JBoss Forge vem recheado de plugins, que facilitam a sua vida ainda mais ! Nesta versão existem plugins para cópia de arquivos (“cp”), criação de arquivos (“touch”) além de plugins criados por nossos colaboradores que você pode instalar a vontade, tais como um plugin para desfazer alterações (undo), um plugin para fornecer dicas e orientação durante o desenvolvimento do projeto (forge-hint-plugin – em desenvolvimento),um plugin para criação de artefatos para o JBoss SwitchYard,, entre outros !

Gostaria de agradecer a todos os envolvidos nesta liberação, em especial ao José Donizetti e ao Jevgeni Zelenkov, que auxiliaram na criação de novos plugins e, além de corrigir bugs, auxiliaram na transição para a licença EPL. Agradeço também ao Lincoln Baxter (Líder do projeto) pelas reuniões e análise de códigos.

Confira o Release notes e a página oficial do projeto.

May the Forge be with you ! 😀

Anúncios

Registrando um MBean no JNDI

No JBoss, para registrar um serviço MBean no JNDI da sua aplicação (a fim de ser acessível remotamente), utilize o seguinte serviço:

	<mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
		name="george.proxy:type=adaptor,name=MeuProxy,protocol=jrmp,service=proxyFactory">
		<!-- Use the standard JRMPInvoker from conf/jboss-service.xxml -->
		<depends optional-attribute-name="InvokerName">jboss:service=invoker,type=jrmp</depends>
		<!-- The target MBean -->
		<depends optional-attribute-name="TargetName">dominio:name=MeuMBean</depends>
		<!-- Where to bind the proxy factory -->
		<attribute name="JndiName">NomeJNDI</attribute>
		<!-- Invoke target method instead of invoke(Invocation mi) -->
		<attribute name="InvokeTargetMethod">true</attribute>
		<!-- Comma-separated list of exported interfaces -->
		<attribute name="ExportedInterfaces">InterfaceDoMBean</attribute>
		<!-- client-side interceptors -->
		<attribute name="ClientInterceptors">
			<interceptors>
				<interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
				<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
				<interceptor>org.jboss.jmx.connector.invoker.client.InvokerAdaptorClientInterceptor</interceptor>
				<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
			</interceptors>
		</attribute>
	</mbean>

Tuning and Slimming JBossAS

Este link contém informações de como “tunar” o seu JBoss para obter o máximo de performance:

Tuning and Slimming JBossAS

Definindo um arquivo de log por aplicação no JBoss

Em muitas instalações de JBoss(es) que encontro por aí, sempre surge uma dúvida (bastante comum): Como fazer com que o JBoss gere um arquivo de log por aplicação ? Na verdade não existe uma receita simples.

A solução que mostro a seguir, utiliza um conceito bastante interessante da API Log4J, que é o uso da interface RepositorySelector (mais informações aqui e neste excelente artigo).

Existe até um chamado no JIRA aberto para que permita a integração de RepositorySelector(s) no JBoss (algo que deve ser incorporado na versão 5.0 do JBoss AS).

Você pode baixar o código fonte alterado aqui.

O chamado descreve a criação de um SAR para permitir que aplicações que possuam o arquivo log4j.properties ou log4j.xml, utilizem-no ao invés de utilizar a estrutura definida no jboss-log4j.xml. No entanto, não queremos modificar nossas aplicações para adaptar configurações de logging. Até porque isto seria um trabalho extremamente tedioso, e propenso a erros (O que garante, por exemplo, que o caminho dos logs a serem gravados não mude em outra máquina ?).

Logo, uma saída seria a de colocar a configuração de log no jboss-log4j.xml.

Tomando como base uma aplicação empacotada como “teste.war”:

1) Configure o log4j para conter o seu appender e a category


<appender name="FILE_teste" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/teste/teste.log"/>
<param name="Append" value="false"/>
<param name="Threshold" value="INFO"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority &#91;Category&#93; Message\n -->
<param name="ConversionPattern" value="%d %-5p &#91;%c&#93; %m%n"/>
</layout>
</appender>

<category name="teste" additivity="false">
<priority value="INFO"/>
<appender-ref ref="FILE_teste"/>
</category>

OBS:O Category DEVE ter o mesmo nome do WAR. Isso porque o código do SAR utiliza o mesmo nome do WAR para buscar a categoria selecionada. A flag additivity significa que não iremos utilizar a configuração do RootLogger.

2) Faça um deploy do SAR (codigo fonte aqui – compile com maven)

Faça o deploy rodando o comando:

mvn clean package jboss:harddeploy

Desta forma o arquivo será automaticamente compilado e jogado para um jboss local.

3) Inicie o JBoss

Você verá a saída da sua aplicação no seu novo appender.