Instalando e
Utilizando o AppFuse


Sérgio Luiz Ruivace Cerqueira
     sergioruivace@gmail.com




    Renato Moraes de So...
AppFuse


   •   Programas Necessários:




28/2/2007              Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio   2
Configurando Variáveis de Ambiente

   • Entre nas propriedades do meu computador e vá para a aba
     avançado e clique n...
Configurando Variáveis de Ambiente

                                    • Deve-se criar 3 VAs:
                           ...
Configurando Variáveis de Ambiente

   • Agora adicione a variável PATH:
   • %JAVA_HOME%bin;%ANT_HOME%bin;%CATALINA_HOME%...
AppFuse

   •   1)Trocar os arquivos properties.xml, build.properties e colocar o JUnit na
       pasta lib do ant
   a) O...
AppFuse

   b) Colocar na lib do ant.




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


   •   c)Trocar o ip, senha e login do Banco de Dados!!!!!!
   •   Pasta-> appfuseproperties.xml




28/2/2007  ...
AppFuse

   •   Passos no Prompt do DOS
   •   2) Path de onde esta o appfuse e digite “ant new”




28/2/2007            ...
Appfuse


                                                            Escolha
                                            ...
Appfuse

 •   3) Voltar um nível para usar o ant setup (obs: agora a imagem está mostrando
     outro projeto que foi cria...
AppFuse

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




28/2/2007                Renato Sousa e Sérgio...
AppFuse

 •   3.2) Executar ant setup




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

   •   3) Existem duas maneiras de fazer, a primeira forma segue abaixo!
   •   >ant setup -Djsp.precompile=true;...
AppFuse

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




28/2/2007          ...
AppFuse

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




28/...
Appfuse

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




28/2/2007       ...
Appfuse

   • Selecione Ant Home Entires(Default) e aperte o botão add External
     Jars. Selecione os JARs que estão na ...
Appfuse

  • Estrutura de diretórios usando o spring:
  • Pacotes build são as classes compiladas.
  • Pacotes src são as ...
Adicionando um pojo
   • Crie uma classe no pacote org.appfuse.model dentro do
     src/dao, ela deve extender o BaseObjec...
Adicionando um pojo

   • Construa a classe e mapeie com o XDoclet




28/2/2007         Renato Sousa e Sérgio Cerqueira ©...
Adicionando um pojo

   • Para mais informações sobre configuração via xdoclet entre no site
     http://xdoclet.sourcefor...
Adicionando um pojo

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




2...
Adicionando um pojo

   • Execute o install-detailed
   • Em seguida ira aparecer uma tela perguntando se as classes
     ...
Adicionando um pojo

   • Agora selecione seu projeto e aperte F5, note que irão aparecer
     algumas classes compostas p...
Adicionando um pojo

   • Apague a linha <property name=quot;validatorquot;
     ref=quot;beanValidatorquot;/> no action-s...
Appfuse

   • Toda vez que for executado o setup do build do projeto
     serão apagados todos os valores contidos nas tab...
Appfuse

   • Quando for feita alguma alteração na parte web do projeto,
     pode-se executar o deploy-web. Ele é muito m...
Appfuse

                       • A pasta lib contem muitas
                         bibliotecas que foram incorporadas
  ...
Appfuse

   • O seu projeto é baseado em outras bibliotecas ai existentes
     (ou seja se elas saírem daí vão fazer um es...
Appfuse

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

       • Nela estão todas ...
Appfuse

   • Na pasta common da pasta web, estão jsps que estão
     inclusos em todas as paginas (comuns a todos) como o...
Appfuse

   • Na pasta decorators tem apenas o default.jsp. Ele é
     responsável por adicionar os scripts e os arquivos ...
Appfuse

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

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

                       Contem o endereço
                       nomeProjeto/editProduto.html




  No action-serv...
Appfuse

   • O arquivo dwr.xml é onde deve-se declarar as classes para
     usar Ajax.
   • Declarando um objeto Produto,...
Appfuse

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

    <Menu name=...
Appfuse

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

   • Hierarquia de chamadas
   • Dao -> DaoHibernate

            Utiliza

   • Service(manager) -> ServiceImpl(m...
AppFuse

 •   Agradecimentos em especial:


 •   Rodrigos Paes Phd.


 • Bibliografia
 • https://appfuse.dev.java.net/
 • ...
Upcoming SlideShare
Loading in...5
×

Instalando e Utilizando o AppFuse

487

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
487
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Instalando e Utilizando o AppFuse

  1. 1. Instalando e Utilizando o AppFuse Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Renato Moraes de Sousa renatoms18@hotmail.com
  2. 2. AppFuse • Programas Necessários: 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 2
  3. 3. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 3
  4. 4. Configurando Variáveis de Ambiente • Deve-se criar 3 VAs: • ANT_HOME – Diretório onde esta instalado o ant • CATALINA_HOME - Diretório onde esta instalado o TomCat • JAVA_HOME - Diretório onde esta instalado o Java 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 4
  5. 5. Configurando Variáveis de Ambiente • Agora adicione a variável PATH: • %JAVA_HOME%bin;%ANT_HOME%bin;%CATALINA_HOME%bin 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 5
  6. 6. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 6
  7. 7. AppFuse b) Colocar na lib do ant. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 7
  8. 8. AppFuse • c)Trocar o ip, senha e login do Banco de Dados!!!!!! • Pasta-> appfuseproperties.xml 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 8
  9. 9. AppFuse • Passos no Prompt do DOS • 2) Path de onde esta o appfuse e digite “ant new” 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 9
  10. 10. 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 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 10
  11. 11. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 11
  12. 12. AppFuse • 3.1) entrar na pasta do novo projeto (ex. cd portinari) 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 12
  13. 13. AppFuse • 3.2) Executar ant setup 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 13
  14. 14. 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) 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 14
  15. 15. AppFuse • 4) importar para o eclipse a aplicação criada. Buscando do seu path onde foi criado. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 15
  16. 16. AppFuse • Abra o browser e digite: http://localhost:8080/<nome_da_aplicação>.Este é o exemplo puzzlestyle 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 16
  17. 17. Appfuse • Para configurar o ant no eclipse vá em window/preferences clique em ant e Runtime. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 17
  18. 18. Appfuse • Selecione Ant Home Entires(Default) e aperte o botão add External Jars. Selecione os JARs que estão na pasta lib do ant que VOCÊ INSTALOU e escolha open. Confirme e reinicie o eclipse 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 18
  19. 19. Appfuse • Estrutura de diretórios usando o spring: • Pacotes build são as classes compiladas. • Pacotes src são as classes do codigo fonte. • 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 19
  20. 20. Adicionando um pojo • Crie uma classe no pacote org.appfuse.model dentro do src/dao, ela deve extender o BaseObject do appfuse. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 20
  21. 21. Adicionando um pojo • Construa a classe e mapeie com o XDoclet 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 21
  22. 22. 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=quot;codigoquot; not-null=quot;falsequot; length=quot;10quot; */ • Mapeando atributo/coluna /** * @hibernate.class table=quot;contaquot; */ • Mapeando classe/tabela /** * @hibernate.id column=quot;produto_idquot; generator-class=quot;incrementquot; unsaved-value=quot;nullquot; */ • Mapeando atributo/coluna que incrementa automaticamente /** * @hibernate.many-to-one column=quot;fk_agencia_idquot; not-null=quot;falsequot; */ • Mapeando muitos para um 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 22
  23. 23. Adicionando um pojo • Adicione o build.xml dentro do extras/appgen a tela de visualização do ant no eclipse 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 23
  24. 24. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 24
  25. 25. 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 pojo mais o nome seguido de .hbm.xml 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 25
  26. 26. Adicionando um pojo • Apague a linha <property name=quot;validatorquot; ref=quot;beanValidatorquot;/> 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 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 26
  27. 27. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 27
  28. 28. 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.xml sem executar o setup é so executar o db-load 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 28
  29. 29. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 29
  30. 30. 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 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 30
  31. 31. 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 appfuse adotou. • Decoradores, arquivos .css • Etc 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 31
  32. 32. 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 taglibs existentes no projeto. Esse jsp é inserido pelo appfuse quando ele gera automaticamente uma pagina. Caso não seja gerado adicione esta tag com o comando no inicio do jsp:<%@ include file=quot;/common/taglibs.jspquot;%> • Com ela pode-se usar a core do Java, a display tag, tags de SQL e de internacionalização e caso queira criar uma tag basta criar uma classe Java no pacote src/web taglib extendendo tagSupport que ela estará incluída nesse jsp. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 32
  33. 33. 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.jsp para cadastro de um novo, edição de um já existente, nessa edição que ele pode ser deletado. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 33
  34. 34. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 34
  35. 35. 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. 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 35
  36. 36. Appfuse Contem o endereço nomeProjeto/editProduto.html No action-servlet este endereço esta mapeado assim: <prop key=quot;/editProduto.htmlquot;>produtoFormController</prop> No action-servlet o bean produtoFormController está assim: <bean id=quot;produtoFormControllerquot; class=quot;org.appfuse.webapp.action.ProdutoFormControllerquot; autowire=quot;byNamequot;> <!--<property name=quot;validatorquot; ref=quot;beanValidatorquot;/>--> <property name=quot;formViewquot; value=quot;produtoFormquot;/> <property name=quot;successViewquot; value=quot;redirect:produtos.htmlquot;/> </bean> Classe que controla a pagina 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 36
  37. 37. 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=quot;beanquot; match=quot;org.appfuse.model.*quot; /> <create creator=quot;springquot; javascript=quot;DwrManagerquot;> <param name=quot;beanNamequot; value=quot;dwrManagerquot;/> </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); 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 37
  38. 38. Appfuse • No arquivo menu-config.xml será configurado a disposição do menu, como abas e sub-abas <Menu name=quot;FileUploadquot; title=quot;menu.selectFilequot; description=quot;File Uploadquot; width=quot;100quot; page=quot;/selectFile.htmlquot; roles=quot;admin,userquot;/> • É um menu sem sub intens <Menu name=quot;AdminMenuquot; title=quot;menu.adminquot; description=quot;Admin Menuquot; roles=quot;adminquot; width=quot;120quot; page=quot;/users.htmlquot;> <Item name=quot;ViewUsersquot; title=quot;menu.admin.usersquot; page=quot;/users.htmlquot;/> <Item name=quot;ActiveUsersquot; title=quot;mainMenu.activeUsersquot; page=quot;/activeUsers.htmlquot;/> <Item name=quot;ReloadContextquot; title=quot;menu.admin.reloadquot; page=quot;/reload.htmlquot;/> <Item name=quot;FlushCachequot; title=quot;menu.flushCachequot; page=quot;/flushCache.htmlquot;/> <Item name=quot;Clickstreamquot; title=quot;menu.clickstreamquot; page=quot;/clickstreams.jspquot;/> </Menu> • É um menu com sub-itens 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 38
  39. 39. 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 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 39
  40. 40. Appfuse • Hierarquia de chamadas • Dao -> DaoHibernate Utiliza • Service(manager) -> ServiceImpl(managerImpl) INTERFACES(FACEDE) IMPLEMENTAÇÃO Utiliza CONTROLLER 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 40
  41. 41. AppFuse • Agradecimentos em especial: • Rodrigos Paes Phd. • Bibliografia • https://appfuse.dev.java.net/ • http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html 28/2/2007 Renato Sousa e Sérgio Cerqueira © LES/PUC-Rio 41
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×