JBoss Forge

Introdução ao JBoss Forge

Postado em Atualizado em

Olá amigos,

Hoje vamos aprender um pouco sobre JBoss Forge 🙂

JBoss Forge é um framework para criação de projetos baseado em padrões utilizando linha de comando.  Por exemplo,  você foi designado para criar um pequeno projeto para o cadastro de novos funcionários utilizando JSF para a camada de apresentação e como provider de persistência  o Hibernate. Com JBoss Forge podemos escrever um CRUD em questão de minutos. Pedemos criar aplicações baseadas em Java EE 6 em poucos instantes. A idéia é realmente facilitar a vida do desenvolvedor.  Mais informações podem ser encontradas na página do projeto.

O primeiro passo é realizar o download do forge no seguinte link . Baixe o pacote forge-distribution-1.1.2.Final.zip. Para utilizar o JBoss Forge é necessário que você já tenha o JDK 6 ou superior  instalado e devidamente configurado com a variável de ambiente JAVA_HOME. Também é necessário ter instalado o JBoss Application Server 7 pois vamos utilizá-lo para rodar as nossas aplicações.

Descompacte o pacote forge-distribution-1.1.2.Final.zip em um diretório de sua preferência.

  D:\Desenvolvimento\jboss-org\forge-distribution-1.1.2.Final

O proxímo passo é configurar a variável FORGE_HOME apontando para o diretório em que o Forge foi descompactado.

Adicione a variável FORGE_HOME ao Path.

Abra o cmd e verifique se o forge foi corretamente configurado executando: forge . Você verá algo como a imagem abaixo:

Pronto!! A instalação está finalizada.

Uma das grandes facilidades do JBoss Forge é a instalação de plugins. Se for necessário criar uma aplicação utilizando JSF, JPA, entre  outras tecnologias basta utilizar um plugin que facilite essa tarefa. Se não existir é possível criar novos plugins com novas funcionalidades tornando essa ferramenta muito extensível. Para procucar um plugin é bem simples, basta executar na linha de comando: forge find-plugin exemplo . Veja abaixo:

Se você observar perceberá que encontramos alguns plugin como RichFaces, PrimeFaces, etc. Basta escolhermos qual atende a nossa necessidade e instalar. Vamos instalar o plugin  PrimeFaces. Para execute: forge install-plugin primefaces .


Como vimos acima o plugin foi instalado com sucesso. Instale também o plugin do JBoss AS 7, isso nos dará a possibilidade de realizar os deploys e undeploys diretamente no servidor. Execute:  forge install-plugin jboss-as-7 .

Esse plugin também foi instalado com sucesso.

Agora vamos criar uma aplicação web para realizarmos os primeiros testes no Forge. Para criar a aplicação web mystore execute o seguinte comando: new-project –named mystore –topLevelPackage com.jbossdivers.store –projectFolder D:\Desenvolvimento\jboss-org\workspace .

Veja que toda a estrutura do projeto foi criada  “mavenizada”. O Forge nos ofereçe uma funcionalidade que já é conhecida por todos o Scaffold.
Assim como o Scaffold do Ruby on Rails podemos utilizar o  Forge para gerar um pequeno esqueleto para a criação de um CRUD básico. Para isso execute: scaffold setup  e respondas as perguntas que forem aparecendo no terminal.

Perceba que ele nos guia pela criação da estrutura e nos mostra as opções.

A estrutura básica do projeto está criada.  Vamos agora configurar a parte de persistência do nosso projeto.  Execute: persistence setup –provider HIBERNATE .

Perceba que novamente ele nos guiou por toda configuração na parte de persistência. Observe o arquivo persistence.xml.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
 <persistence-unit name="forge-default" transaction-type="JTA">
    <description>Forge Persistence Unit</description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="true"/>
      <property name="hibernate.transaction.flush_before_completion" value="true"/>
    </properties>
  </persistence-unit>
</persistence>

Vamos criar uma entidade para o nosso projeto. Execute: entity –named Book.

Agora vamos adicionar campos na entidade Book. Execute: field string –named name e field string –named author.

Veja o código gerado na entidade Book.

@Entity
public class Book implements Serializable
 {

 @Id
 private @GeneratedValue(strategy = GenerationType.AUTO)
 @Column(name = "id", updatable = false, nullable = false)
 Long id = null;
 @Version
 private @Column(name = "version")
 int version = 0;

 @Column
 private String name;

 @Column
 private String author;

 //getters e setters

Agora vamos gerar o “UI scaffolding” que se refere ao Managed Bean e outras classe que fazem a “ligação” com a enteidade. Execute: scaffold from-entity .

Chegou o grande momento. Vamos fazer o build da aplicação e realizar o deploy diretamente no JBoss AS 7. Execute: mvn clean package . Existe uma versão embarcada do Maven no JBoss Forge que nos permite fazer esse build.

Execute as7 setup para configurar o plugin do JBoss 7 em nosso projeto e execute as7 deploy para realizar o deploy da nossa aplicação.  Acesse a url http://localhost:8080/mystore/ e veja a aplicação funcionando.

Eu achei bem legal toda a facilidade que o JBoss Forge oferece.

Para mais informações veja a página do projeto: JBoss Forge.

Espero que tenham gostado 🙂

Abraços