

Uma aplicação de Call4Paper com JEE 6 para uso nos eventos do JUG Vale
Um projeto para registro de propostas de trabalhos (Papers) para eventos. A ideia é possibilitar a inscrição de trabalhos para um evento.
A aplicação na WEB para o usuário não logado permitirá:
- Ver eventos abertos, fechados, papers e autores
A aplicação ainda contará com uma interface que permite modificar, criar e apagar Papers, Autores e Eventos.
Temos o JPA para acesso ao banco. Temos também uma interface REST usando JAX-RS. Nada demais...
A aplicação também tem segurança usando JAAS. A interface REST tem os métodos GET em modo público, ou seja, com acesso por qualquer um, mas métodos de modificação deverão exigir autenticação.
Para entender a aplicação, olhe o resumo dos métodos REST abaixo, com os devidos Status HTTP:
| Método | URI | Retorno |
|---|---|---|
| GET | /rest/paper | Status 200 e um JSON com uma lista Papers. |
| GET | /rest/autor | Status 200 e um JSON com uma lista Autores. |
| GET | /rest/evento | Status 200 e um JSON com uma lista Eventos. |
| GET | /rest/evento/{id}/papers | Status 200 e um JSON com uma lista Papers para um Evento. Ou retorna 404, caso não encontre o Evento. |
| GET | /rest/autor/{id}/papers | Status 200 e um JSON com uma lista Papers para um Determinado Autor. Ou retorna 404, caso não encontre o Autor. |
| POST | /rest/paper | Status 201 em caso de sucesso. |
- Usuários com role de ADMINISTRADOR podem acessar todos os métodos do sistema.
Para os desenvolvedores das páginas WEB, não é necessário codificar Javascript para as requisições. Uma API está disponível na URL http://localhost:8080/jug-call4papers/rest-js. Para mais informações sobre essa API, veja a documentação do RESTEasy.
Temos uma aplicação Maven aqui com JEE 6 e Java 7. Antes de qualquer coisa, procure como adicionar propriedades de sistema no seu servidor de aplicação. Você deverá configurar duas propriedades CAPTCHA_CHAVE_PUBLICA e CAPTCHA_CHAVE_PRIVADA. No Wildfly 8.1 isso pode ser feito adicionar a declaração seguinte usando as chaves que você configurou no recaptcha.
<system-properties>
<property name="CAPTCHA_CHAVE_PUBLICA" value="{SUA CHAVE PUBLICA}"/>
<property name="CAPTCHA_CHAVE_PRIVADA" value={SUA CHAVE PRIVADA}"/>
</system-properties>
Essas chaves devem ser geradas para o seu usuário no recaptcha.
WILDFLY 8
Para subir a aplicação no WildFly 8 basta fazer o download da versão 8.1.0.Final e subir o servidor executando o comando {WILDFLY_HOME}/bin/standalone.sh.
Com o Servidor rodando, execute o segunte comando, na raiz do nosso projeto clonado: mvn package wildfly:deploy e para fazer o undeploy, execute: mvn wildfly:undeploy
Feito isto, siga as instruções contidas na seção Ativando a Segurança.
Para executar os Testes de Integração para testar todos os serviços, execute o comando: mvn integration-test, este comando irá fazer o deploy do WAR, e logo em seguida realizará os testes de integração finalizando com o undeploy do mesmo.
OpenShift
Para fazer o deploy no Openshift, você pode copiar o projeto maven completo para o repositório GIT do Openshift no diretório src, onde o arquivo pom.xml do nosso projeto deverá estar em src do repositório clonado do Openshift.
Em seguida, você deve modificar o arquivo `` do seu repositório do openshift para configurar as propriedades de sistema conforme mencionado na seção Empacotando e rodando a aplicação.
Por fim, se estiver usando outro banco de dados, modifique o arquivo persistence.xml. Por exemplo, para MySql:
<jta-data-source>java:jboss/datasources/MySQLDS</jta-data-source>
Ativando a Segurança
A configuração de segurança foi simplicada já que não temos mais a role de autor. Para ter um usuário admnistrador simplesmente crie um usuário do JBoss no "realm" ApplicationRealm e dê o role ADMINISTRADOR para ele.
No Openshift você deverá fazer ssh ao servidor para adicionar esse usuário.
Fazendo o deploy, uns dados inicíais você já terá para ver a aplicação rodando. Você pode ver o evento de teste em: http://localhost:8080/jugvale-call4papers/rest/evento/ ou a página inicial em http://localhost:8080/jugvale-call4papers/.
