41
Instalando e Utilizando o AppFuse Renato Moraes de Sousa [email protected] Sérgio Luiz Ruivace Cerqueira [email protected]

Instalando e Utilizando o AppFuse

Embed Size (px)

Citation preview

Page 1: Instalando e Utilizando o AppFuse

Instalando e Utilizando o AppFuse

Renato Moraes de [email protected]

Sérgio Luiz Ruivace [email protected]

Page 2: Instalando e Utilizando o AppFuse

28/2/2007 2Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• Programas Necessários:

Page 3: Instalando e Utilizando o AppFuse

28/2/2007 3Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Configurando Variáveis de Ambiente

• Entre nas propriedades do meu computador e vá para a aba avançado e clique no botão Variáveis de Ambiente.

Page 4: Instalando e Utilizando o AppFuse

28/2/2007 4Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Configurando Variáveis de Ambiente

• Deve-se criar 3 VAs:

• ANT_HOME – Diretório ondeesta instalado o ant

• CATALINA_HOME - Diretórioonde esta instalado o TomCat

• JAVA_HOME - Diretório ondeesta instalado o Java

Page 5: Instalando e Utilizando o AppFuse

28/2/2007 5Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Configurando Variáveis de Ambiente

• Agora adicione a variável PATH:

• %JAVA_HOME%\bin;%ANT_HOME%\bin;%CATALINA_HOME%\bin

Page 6: Instalando e Utilizando o AppFuse

28/2/2007 6Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• 1)Trocar os arquivos properties.xml, build.properties e colocar o JUnit na

pasta lib do ant

a) O JUnit.jar geralmente é encontrado no eclipse, pois este é um framework de

teste que geralmente vem no plugin do eclipse.

Page 7: Instalando e Utilizando o AppFuse

28/2/2007 7Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

b) Colocar na lib do ant.

Page 8: Instalando e Utilizando o AppFuse

28/2/2007 8Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• c)Trocar o ip, senha e login do Banco de Dados!!!!!!

• Pasta-> appfuse\properties.xml

Page 9: Instalando e Utilizando o AppFuse

28/2/2007 9Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• Passos no Prompt do DOS

• 2) Path de onde esta o appfuse e digite “ant new”

Page 10: Instalando e Utilizando o AppFuse

28/2/2007 10Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

Escolha um nome para sua Base de Dados

Escolha um nome para seu package

Escolha o framework a ser utilizado no nosso caso o Spring

Page 11: Instalando e Utilizando o AppFuse

28/2/2007 11Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• 3) Voltar um nível para usar o ant setup (obs: agora a imagem está mostrando

outro projeto que foi criado) Passos no DOS.

Page 12: Instalando e Utilizando o AppFuse

28/2/2007 12Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• 3.1) entrar na pasta do novo projeto (ex. cd portinari)

Page 13: Instalando e Utilizando o AppFuse

28/2/2007 13Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• 3.2) Executar ant setup

Page 14: Instalando e Utilizando o AppFuse

28/2/2007 14Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• 3) Existem duas maneiras de fazer, a primeira forma segue abaixo!

• >ant setup -Djsp.precompile=true;tstart;tlog ->(este cmd constrói a aplicação, testa o tomcat e gera um log!)

• 3.1) A segunda forma de fazer segue abaixo!

• > ant setup ->(constrói a aplicação)

Page 15: Instalando e Utilizando o AppFuse

28/2/2007 15Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• 4) importar para o eclipse a aplicação criada. Buscando do seu path onde foi criado.

Page 16: Instalando e Utilizando o AppFuse

28/2/2007 16Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• Abra o browser e digite: http://localhost:8080/<nome_da_aplicação>.Este é o exemplo puzzlestyle

Page 17: Instalando e Utilizando o AppFuse

28/2/2007 17Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Para configurar o ant no eclipse vá em window/preferencesclique em ant e Runtime.

Page 18: Instalando e Utilizando o AppFuse

28/2/2007 18Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Selecione Ant Home Entires(Default) e aperte o botão add ExternalJars. Selecione os JARs que estão na pasta lib do ant que VOCÊ INSTALOU e escolha open. Confirme e reinicie o eclipse

Page 19: Instalando e Utilizando o AppFuse

28/2/2007 19Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Estrutura de diretórios usando o spring:

• Pacotes build são as classes compiladas.

• Pacotes src são as classes do codigofonte.

• Pacotes test são as classes de teste unitário.

• A pasta extras contem componentes que o appfuse adicionou para facilitar a utilização do mesmo.

• Na pasta lib ficam todas as bibliotecas que serão utilizadas no projeto.

• Na pasta web estão as paginas jsp, alguns arquivos de configuração, scripts entre outros.

Page 20: Instalando e Utilizando o AppFuse

28/2/2007 20Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Adicionando um pojo

• Crie uma classe no pacote org.appfuse.model dentro do src/dao, ela deve extender o BaseObject do appfuse.

Page 21: Instalando e Utilizando o AppFuse

28/2/2007 21Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Adicionando um pojo

• Construa a classe e mapeie com o XDoclet

Page 22: Instalando e Utilizando o AppFuse

28/2/2007 22Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Adicionando um pojo

• Para mais informações sobre configuração via xdoclet entre no site http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html

• Alguns exemplos:/**

* @hibernate.property column="codigo" not-null="false" length="10"

*/

• Mapeando atributo/coluna

/**

* @hibernate.class table="conta"

*/

• Mapeando classe/tabela

/**

* @hibernate.id column="produto_id" generator-class="increment" unsaved-value="null"

*/

• Mapeando atributo/coluna que incrementa automaticamente

/**

* @hibernate.many-to-one column="fk_agencia_id" not-null="false"

*/

• Mapeando muitos para um

Page 23: Instalando e Utilizando o AppFuse

28/2/2007 23Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Adicionando um pojo

• Adicione o build.xml dentro do extras/appgen a tela de visualização do ant no eclipse

Page 24: Instalando e Utilizando o AppFuse

28/2/2007 24Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Adicionando um pojo

• Execute o install-detailed

• Em seguida ira aparecer uma tela perguntando se as classes serão criadas a partir de um pojo ou uma tabela, escreva pojo e aperte ok

• Depois aparecerá outra tela perguntando o nome do pojo. Digite o nome e aperte ok

• Aparecerá mais uma tela mas não a trataremos. Logo aperte ok sem digitar nada.

Page 25: Instalando e Utilizando o AppFuse

28/2/2007 25Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Adicionando um pojo

• Agora selecione seu projeto e aperte F5, note que irão aparecer algumas classes compostas pelo nome do seu pojo em alguns pacotes como o Dao, o service ...

• Adicione ao applicationContext-hibernate.xml o caminho do pojomais o nome seguido de .hbm.xml

Page 26: Instalando e Utilizando o AppFuse

28/2/2007 26Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Adicionando um pojo

• Apague a linha <property name="validator" ref="beanValidator"/> no action-servlet.xml do bean com o nome = “nomeDoPojoFormController”.

• Execute o setup do projeto este irá criar o banco de acordo com o mapeamento.

• Agora é só entrar no site do projeto e conferir as paginas que foram criadas para apresentação dos objetos e cadastro

Page 27: Instalando e Utilizando o AppFuse

28/2/2007 27Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Toda vez que for executado o setup do build do projeto serão apagados todos os valores contidos nas tabelas do banco, porem as colunas e as tabelas não serão apagadas e sim modificadas. Ex: caso seja criada uma tabela com nome pessoa e posteriormente mude para cliente e execute o setup, no banco terá uma tabela pessoa e outra cliente. A tabela pessoa deve ser apagada manualmente.

• O install-detailed do build do appgen sempre cria classes pro Dao, pro service, pra web e as paginas. Caso já existam outras com o mesmo nome, elas serão apagadas e geradas outras de acordo com o padrão do appfuse.

• É recomendável antes de utilizar setup do build do projeto, executar o clean e o undeploy no mesmo build. Caso de um erro imprevisível execute os dois também.

Page 28: Instalando e Utilizando o AppFuse

28/2/2007 28Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Quando for feita alguma alteração na parte web do projeto, pode-se executar o deploy-web. Ele é muito mais rápido que o deploy comum e geralmente não precisa reiniciar o tomcat para visualizar na pagina.

• Caso queira inserir dados que sempre serão carregados no banco(pois todas as vezes que se executa o setup os dados são apagados) pode-se alterar o sample-data.xml na pasta metadata/sql ele é um xml que contem dados básicos ou para teste, inserir os dados é só seguir os que já existirem lá.

• Caso queria inserir os dados existentes no saple-data.xmlsem executar o setup é so executar o db-load

Page 29: Instalando e Utilizando o AppFuse

28/2/2007 29Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• A pasta lib contem muitas bibliotecas que foram incorporadas pelo appfuse e podem ser utilizadas no projeto.

• Como a dwr utilizada para implementar ajax nas paginas.

• Junit utilizada para realizar testes no projeto.

• Displaytag uma das tags mais usadas pelo appfuse, esta quando recebe uma lista apresenta tabelas muito versáteis e de fácil utilização nos jsps.

Page 30: Instalando e Utilizando o AppFuse

28/2/2007 30Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• O seu projeto é baseado em outras bibliotecas ai existentes (ou seja se elas saírem daí vão fazer um estrago danado!) como hibernate, spring, a propria displaytag...

• Para inserir uma nova biblioteca basta colocá-la nessa pasta e em seguida alterar o arquivo lib.properties

Page 31: Instalando e Utilizando o AppFuse

28/2/2007 31Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• A pasta web contem muitas informações que serão muito úteis para o projeto.

• Nela estão todas as paginas inclusive as de erro.

• Esta o mapeamento de paginas e controladores.

• Imagens utilizadas no projeto

• Scripts que o appfuseadotou.

• Decoradores, arquivos .css

• Etc

Page 32: Instalando e Utilizando o AppFuse

28/2/2007 32Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Na pasta common da pasta web, estão jsps que estão inclusos em todas as paginas (comuns a todos) como o cabeçalho, o rodapé e o menu.

• Nesta pasta tambem esta o jsp que inclui todas as taglibsexistentes no projeto. Esse jsp é inserido pelo appfusequando ele gera automaticamente uma pagina. Caso não seja gerado adicione esta tag com o comando no inicio do jsp:<%@ include file="/common/taglibs.jsp"%>

• Com ela pode-se usar a core do Java, a display tag, tags de SQL e de internacionalização e caso queira criar uma tagbasta criar uma classe Java no pacote src/web taglibextendendo tagSupport que ela estará incluída nesse jsp.

Page 33: Instalando e Utilizando o AppFuse

28/2/2007 33Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Na pasta decorators tem apenas o default.jsp. Ele éresponsável por adicionar os scripts e os arquivos .css. Caso queira adicionar mais algum basta colocar nesse jsp.

• Na pasta pages, estão as paginas que serão utilizadas no projeto.

• Com o crescimento do projeto tende a crescer muito essa pasta.

• O padrão utilizado pelo appfuse é xxxList.jsp para apresentar todos os objetos de um certo tipo. E xxxForm.jsppara cadastro de um novo, edição de um já existente, nessa edição que ele pode ser deletado.

Page 34: Instalando e Utilizando o AppFuse

28/2/2007 34Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Na pasta scripts estão os arquivos de javascript. Têm muitos arquivos úteis para a apresentação do projeto.

• Um deles é o calendar.js ele facilita a entrada de dados tipo data, de uma forma bem intuitiva para o usuário. Reduzindo possibilidades de falha na coleta desses dados.

• Outros são o prototype.js e o scriptaculous.js eles tem scripts que facilitam a programação em javascript e alem disso têm ferramentas para a utilização de ajax, como o objeto Ajax.Updater do prototype e o Ajax.Autocompleter do scriptaculous. Essas ferramentas são altamente recomendadas pois agilizam no processo de inserção de dados e dão uma aparência desktop para o projeto.

Page 35: Instalando e Utilizando o AppFuse

28/2/2007 35Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Na pasta styles estão os arquivos .css basicos e uns estilos que podem ser escolhidos.

• Com a alteração de um arquivo desses pode-se mudar completamente a visualização da pagina sem precisar alterar o jsp.

• Na pasta WEB-INF estão basicamente arquivos de configuração.

• No arquivo action-servlet.xml está o mapeamento das paginas e controladores, que é melhor explicado na próxima figura.

Page 36: Instalando e Utilizando o AppFuse

28/2/2007 36Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

Contem o endereço

nomeProjeto/editProduto.html

No action-servlet o bean produtoFormController está assim:<bean id="produtoFormController" class="org.appfuse.webapp.action.ProdutoFormController" autowire="byName">

<!--<property name="validator" ref="beanValidator"/>-->

<property name="formView" value="produtoForm"/>

<property name="successView" value="redirect:produtos.html"/>

</bean>

No action-servlet este endereço esta mapeado assim:

<prop key="/editProduto.html">produtoFormController</prop>

Classe que controla a pagina

Page 37: Instalando e Utilizando o AppFuse

28/2/2007 37Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• O arquivo dwr.xml é onde deve-se declarar as classes para usar Ajax.

• Declarando um objeto Produto, ele poderá ser utilizado em javascrip e seus metodos.

<allow>

<convert converter="bean" match="org.appfuse.model.*" />

<create creator="spring" javascript="DwrManager">

<param name="beanName" value="dwrManager"/>

</create>

</allow>

• Este é um exemplo de objeto adicionado, em javascript poderá ser utilizado o objeto DwrManger e todos os seus metodos como:

DwrManager.incluirFase(idTabela, orc, _resposta);

Page 38: Instalando e Utilizando o AppFuse

28/2/2007 38Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• No arquivo menu-config.xml será configurado a disposição do menu, como abas e sub-abas

<Menu name="FileUpload" title="menu.selectFile" description="File Upload" width="100" page="/selectFile.html"

roles="admin,user"/>

• É um menu sem sub intens<Menu name="AdminMenu" title="menu.admin" description="Admin Menu" roles="admin" width="120"

page="/users.html">

<Item name="ViewUsers" title="menu.admin.users" page="/users.html"/>

<Item name="ActiveUsers" title="mainMenu.activeUsers" page="/activeUsers.html"/>

<Item name="ReloadContext" title="menu.admin.reload" page="/reload.html"/>

<Item name="FlushCache" title="menu.flushCache" page="/flushCache.html"/>

<Item name="Clickstream" title="menu.clickstream" page="/clickstreams.jsp"/>

</Menu>

• É um menu com sub-itens

Page 39: Instalando e Utilizando o AppFuse

28/2/2007 39Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Na pasta classes dentro da pasta WEB-INF estão alguns arquivos de configuração e os arquivos ApplicationResources

• Esses são os arquivos utilizados para a internacionalização

• De acordo com a língua escolhida no browser o programa irá escolher um desses arquivos para mostrar.

• Caso não tenha a configuração em uma língua o programa buscará na padrão se não encontrar na padrão o programa buscará em qualquer outra.Ex:

produto.id=Id

Poderia ser

produto.id=Identificador

Page 40: Instalando e Utilizando o AppFuse

28/2/2007 40Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

Appfuse

• Hierarquia de chamadas• Dao -> DaoHibernate

• Service(manager) -> ServiceImpl(managerImpl)

INTERFACES(FACEDE) IMPLEMENTAÇÃO

CONTROLLER

Utiliza

Utiliza

Page 41: Instalando e Utilizando o AppFuse

28/2/2007 41Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio

AppFuse

• Agradecimentos em especial:

• Rodrigos Paes Phd.

• Bibliografia

• https://appfuse.dev.java.net/

• http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html