Commit 22d6c284c39cb8e63bdf111efd721b9ec9abf324

Authored by Luciano Borges
2 parents 10116976 e6a997a9
Exists in master

Merge branch '2.5' of https://github.com/demoiselle/framework.git into 2.5

archetype/html-rest/src/main/resources/archetype-resources/pom.xml
... ... @@ -42,5 +42,13 @@
42 42 <version>1.9.9</version>
43 43 <scope>provided</scope>
44 44 </dependency>
  45 +
  46 + <!-- Tests dependencies -->
  47 + <dependency>
  48 + <groupId>org.apache.httpcomponents</groupId>
  49 + <artifactId>httpclient</artifactId>
  50 + <version>4.3.4</version><!--$NO-MVN-MAN-VER$-->
  51 + <scope>test</scope>
  52 + </dependency>
45 53 </dependencies>
46 54 </project>
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/business/BookmarkBC.java
1 1 package ${package}.business;
2 2  
  3 +import java.util.List;
  4 +
3 5 import ${package}.entity.Bookmark;
4 6 import ${package}.persistence.BookmarkDAO;
5 7 import br.gov.frameworkdemoiselle.lifecycle.Startup;
... ... @@ -31,4 +33,8 @@ public class BookmarkBC extends DelegateCrud&lt;Bookmark, Long, BookmarkDAO&gt; {
31 33 insert(new Bookmark("Binários", "http://sourceforge.net/projects/demoiselle/files/framework"));
32 34 }
33 35 }
  36 +
  37 + public List<Bookmark> find(String filter) {
  38 + return getDelegate().find(filter);
  39 + }
34 40 }
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/entity/Bookmark.java
... ... @@ -63,4 +63,29 @@ public class Bookmark implements Serializable {
63 63 public void setLink(String link) {
64 64 this.link = link;
65 65 }
  66 +
  67 + @Override
  68 + public int hashCode() {
  69 + final int prime = 31;
  70 + int result = 1;
  71 + result = prime * result + ((id == null) ? 0 : id.hashCode());
  72 + return result;
  73 + }
  74 +
  75 + @Override
  76 + public boolean equals(Object obj) {
  77 + if (this == obj)
  78 + return true;
  79 + if (obj == null)
  80 + return false;
  81 + if (getClass() != obj.getClass())
  82 + return false;
  83 + Bookmark other = (Bookmark) obj;
  84 + if (id == null) {
  85 + if (other.id != null)
  86 + return false;
  87 + } else if (!id.equals(other.id))
  88 + return false;
  89 + return true;
  90 + }
66 91 }
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/persistence/BookmarkDAO.java
1 1 package ${package}.persistence;
2 2  
3   -import br.gov.frameworkdemoiselle.stereotype.PersistenceController;
4   -import br.gov.frameworkdemoiselle.template.JPACrud;
  3 +import java.util.List;
  4 +
  5 +import javax.persistence.TypedQuery;
5 6  
6 7 import ${package}.entity.Bookmark;
  8 +import br.gov.frameworkdemoiselle.stereotype.PersistenceController;
  9 +import br.gov.frameworkdemoiselle.template.JPACrud;
7 10  
8 11 @PersistenceController
9 12 public class BookmarkDAO extends JPACrud<Bookmark, Long> {
10   -
  13 +
11 14 private static final long serialVersionUID = 1L;
12   -
  15 +
  16 + public List<Bookmark> find(String filter) {
  17 + StringBuffer ql = new StringBuffer();
  18 + ql.append(" from Bookmark b ");
  19 + ql.append(" where lower(b.description) like :description ");
  20 + ql.append(" or lower(b.link) like :link ");
  21 +
  22 + TypedQuery<Bookmark> query = getEntityManager().createQuery(ql.toString(), Bookmark.class);
  23 + query.setParameter("description", "%" + filter.toLowerCase() + "%");
  24 + query.setParameter("link", "%" + filter.toLowerCase() + "%");
  25 +
  26 + return query.getResultList();
  27 + }
13 28 }
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/rest/AuthREST.java
... ... @@ -4,7 +4,6 @@ import javax.inject.Inject;
4 4 import javax.validation.constraints.NotNull;
5 5 import javax.validation.constraints.Size;
6 6 import javax.ws.rs.Consumes;
7   -import javax.ws.rs.DELETE;
8 7 import javax.ws.rs.GET;
9 8 import javax.ws.rs.POST;
10 9 import javax.ws.rs.Path;
... ... @@ -42,12 +41,6 @@ public class AuthREST {
42 41 return securityContext.getUser();
43 42 }
44 43  
45   - @DELETE
46   - @LoggedIn
47   - public void logout() {
48   - securityContext.logout();
49   - }
50   -
51 44 public static class CredentialsForm {
52 45  
53 46 @NotNull(message = "{required.field}")
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/rest/BookmarkREST.java
... ... @@ -12,6 +12,7 @@ import javax.ws.rs.PUT;
12 12 import javax.ws.rs.Path;
13 13 import javax.ws.rs.PathParam;
14 14 import javax.ws.rs.Produces;
  15 +import javax.ws.rs.QueryParam;
15 16 import javax.ws.rs.core.Context;
16 17 import javax.ws.rs.core.Response;
17 18 import javax.ws.rs.core.UriInfo;
... ... @@ -22,6 +23,7 @@ import br.gov.frameworkdemoiselle.BadRequestException;
22 23 import br.gov.frameworkdemoiselle.NotFoundException;
23 24 import br.gov.frameworkdemoiselle.security.LoggedIn;
24 25 import br.gov.frameworkdemoiselle.transaction.Transactional;
  26 +import br.gov.frameworkdemoiselle.util.Strings;
25 27 import br.gov.frameworkdemoiselle.util.ValidatePayload;
26 28  
27 29 @Path("bookmark")
... ... @@ -32,8 +34,16 @@ public class BookmarkREST {
32 34  
33 35 @GET
34 36 @Produces("application/json")
35   - public List<Bookmark> find() throws Exception {
36   - return bc.findAll();
  37 + public List<Bookmark> find(@QueryParam("q") String query) throws Exception {
  38 + List<Bookmark> result;
  39 +
  40 + if (Strings.isEmpty(query)) {
  41 + result = bc.findAll();
  42 + } else {
  43 + result = bc.find(query);
  44 + }
  45 +
  46 + return result;
37 47 }
38 48  
39 49 @GET
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/test/java/rest/BookmarkRESTTest.java 0 → 100644
... ... @@ -0,0 +1,355 @@
  1 +package ${package}.rest;
  2 +
  3 +import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
  4 +import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
  5 +import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
  6 +import static javax.servlet.http.HttpServletResponse.SC_OK;
  7 +import static javax.servlet.http.HttpServletResponse.SC_PRECONDITION_FAILED;
  8 +import static javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED;
  9 +import static org.junit.Assert.assertEquals;
  10 +import static org.junit.Assert.assertNotNull;
  11 +import static org.junit.Assert.assertTrue;
  12 +
  13 +import java.io.IOException;
  14 +import java.util.List;
  15 +import java.util.Set;
  16 +
  17 +import org.apache.commons.codec.binary.Base64;
  18 +import org.apache.http.HttpEntity;
  19 +import org.apache.http.HttpHost;
  20 +import org.apache.http.client.ClientProtocolException;
  21 +import org.apache.http.client.entity.EntityBuilder;
  22 +import org.apache.http.client.methods.CloseableHttpResponse;
  23 +import org.apache.http.client.methods.HttpDelete;
  24 +import org.apache.http.client.methods.HttpGet;
  25 +import org.apache.http.client.methods.HttpPost;
  26 +import org.apache.http.client.methods.HttpPut;
  27 +import org.apache.http.client.methods.HttpRequestBase;
  28 +import org.apache.http.impl.client.CloseableHttpClient;
  29 +import org.apache.http.impl.client.HttpClientBuilder;
  30 +import org.codehaus.jackson.map.ObjectMapper;
  31 +import org.codehaus.jackson.type.TypeReference;
  32 +import org.junit.After;
  33 +import org.junit.Before;
  34 +import org.junit.Test;
  35 +
  36 +import ${package}.entity.Bookmark;
  37 +import br.gov.frameworkdemoiselle.PreconditionFailedException;
  38 +
  39 +public class BookmarkRESTTest {
  40 +
  41 + private HttpHost host;
  42 +
  43 + private static final String BASIC_CREDENTIALS = "Basic " + Base64.encodeBase64String("admin:admin".getBytes());
  44 +
  45 + private CloseableHttpClient client;
  46 +
  47 + private ObjectMapper mapper;
  48 +
  49 + @Before
  50 + public void before() {
  51 + host = new HttpHost("localhost", 8080, "http");
  52 + client = HttpClientBuilder.create().build();
  53 + mapper = new ObjectMapper();
  54 + }
  55 +
  56 + @After
  57 + public void after() throws Exception {
  58 + client.close();
  59 + }
  60 +
  61 + @Test
  62 + public void findSuccessful() throws ClientProtocolException, IOException {
  63 + HttpGet request;
  64 + CloseableHttpResponse response;
  65 +
  66 + request = new HttpGet("/a15/api/bookmark");
  67 + response = client.execute(host, request);
  68 + response.close();
  69 + List<Bookmark> listAll = mapper.readValue(response.getEntity().getContent(),
  70 + new TypeReference<List<Bookmark>>() {
  71 + });
  72 + assertEquals(SC_OK, response.getStatusLine().getStatusCode());
  73 +
  74 + String filter = "po";
  75 + request = new HttpGet("/a15/api/bookmark?q=" + filter);
  76 + response = client.execute(host, request);
  77 + response.close();
  78 + List<Bookmark> filteredList = mapper.readValue(response.getEntity().getContent(),
  79 + new TypeReference<List<Bookmark>>() {
  80 + });
  81 + assertEquals(SC_OK, response.getStatusLine().getStatusCode());
  82 +
  83 + for (Bookmark bookmark : filteredList) {
  84 + assertTrue(bookmark.getDescription().toLowerCase().contains(filter)
  85 + || bookmark.getLink().toLowerCase().contains(filter));
  86 + assertTrue(listAll.contains(bookmark));
  87 + }
  88 + }
  89 +
  90 + @Test
  91 + public void loadSuccessful() throws Exception {
  92 + Long id = parseEntity(createSample().getEntity(), Long.class);
  93 +
  94 + HttpGet request = new HttpGet("/a15/api/bookmark/" + id);
  95 + CloseableHttpResponse response = client.execute(host, request);
  96 + response.close();
  97 + assertEquals(SC_OK, response.getStatusLine().getStatusCode());
  98 +
  99 + Bookmark bookmark = parseEntity(response.getEntity(), Bookmark.class);
  100 + assertEquals(Long.valueOf(id), bookmark.getId());
  101 + assertEquals("Google", bookmark.getDescription());
  102 + assertEquals("http://google.com", bookmark.getLink());
  103 +
  104 + destroySample(id);
  105 + }
  106 +
  107 + @Test
  108 + public void loadFailed() throws ClientProtocolException, IOException {
  109 + HttpGet get = new HttpGet("/a15/api/bookmark/99999999");
  110 + CloseableHttpResponse response = client.execute(host, get);
  111 + response.close();
  112 + assertEquals(SC_NOT_FOUND, response.getStatusLine().getStatusCode());
  113 + }
  114 +
  115 + @Test
  116 + public void deleteSuccessful() throws Exception {
  117 + Long id = parseEntity(createSample().getEntity(), Long.class);
  118 +
  119 + HttpDelete request = new HttpDelete("/a15/api/bookmark/" + id);
  120 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  121 + CloseableHttpResponse response = client.execute(host, request);
  122 + response.close();
  123 + assertEquals(SC_NO_CONTENT, response.getStatusLine().getStatusCode());
  124 + }
  125 +
  126 + @Test
  127 + public void deleteFailed() throws Exception {
  128 + HttpDelete request;
  129 + CloseableHttpResponse response;
  130 +
  131 + Long id = parseEntity(createSample().getEntity(), Long.class);
  132 + request = new HttpDelete("/a15/api/bookmark/" + id);
  133 + response = client.execute(host, request);
  134 + response.close();
  135 + assertEquals(SC_UNAUTHORIZED, response.getStatusLine().getStatusCode());
  136 + destroySample(id);
  137 +
  138 + request = new HttpDelete("/a15/api/bookmark/99999999");
  139 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  140 + response = client.execute(host, request);
  141 + response.close();
  142 + assertEquals(SC_NOT_FOUND, response.getStatusLine().getStatusCode());
  143 + }
  144 +
  145 + @Test
  146 + public void insertSuccessful() throws Exception {
  147 + CloseableHttpResponse response = createSample();
  148 + response.close();
  149 +
  150 + Long id = parseEntity(response.getEntity(), Long.class);
  151 + assertNotNull(id);
  152 +
  153 + String expectedLocation = host.toString() + "/a15/api/bookmark/" + id;
  154 + String returnedLocation = response.getHeaders("Location")[0].getValue();
  155 + assertEquals(expectedLocation, returnedLocation);
  156 +
  157 + HttpGet request = new HttpGet(returnedLocation);
  158 + response = client.execute(host, request);
  159 + response.close();
  160 +
  161 + destroySample(id);
  162 + }
  163 +
  164 + @Test
  165 + public void insertFailed() throws Exception {
  166 + HttpPost request;
  167 + CloseableHttpResponse response;
  168 + Bookmark bookmark;
  169 + Set<PreconditionFailedException.Violation> violations;
  170 + PreconditionFailedException expected;
  171 +
  172 + bookmark = new Bookmark();
  173 + bookmark.setDescription("Google");
  174 + bookmark.setLink("http://google.com");
  175 + request = new HttpPost("/a15/api/bookmark");
  176 + request.setEntity(createEntity(bookmark));
  177 + request.addHeader("Content-Type", "application/json");
  178 + response = client.execute(host, request);
  179 + response.close();
  180 + assertEquals(SC_UNAUTHORIZED, response.getStatusLine().getStatusCode());
  181 +
  182 + bookmark = new Bookmark();
  183 + request = new HttpPost("/a15/api/bookmark");
  184 + request.setEntity(createEntity(bookmark));
  185 + request.addHeader("Content-Type", "application/json");
  186 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  187 + response = client.execute(host, request);
  188 + response.close();
  189 + assertEquals(SC_PRECONDITION_FAILED, response.getStatusLine().getStatusCode());
  190 + violations = mapper.readValue(response.getEntity().getContent(),
  191 + new TypeReference<Set<PreconditionFailedException.Violation>>() {
  192 + });
  193 + expected = new PreconditionFailedException();
  194 + expected.addViolation("description", "não pode ser nulo");
  195 + expected.addViolation("link", "não pode ser nulo");
  196 + assertEquals(expected.getViolations(), violations);
  197 +
  198 + bookmark = new Bookmark();
  199 + bookmark.setDescription("Google");
  200 + bookmark.setLink("http: // google . com");
  201 + request = new HttpPost("/a15/api/bookmark");
  202 + request.setEntity(createEntity(bookmark));
  203 + request.addHeader("Content-Type", "application/json");
  204 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  205 + response = client.execute(host, request);
  206 + response.close();
  207 + assertEquals(SC_PRECONDITION_FAILED, response.getStatusLine().getStatusCode());
  208 + violations = mapper.readValue(response.getEntity().getContent(),
  209 + new TypeReference<Set<PreconditionFailedException.Violation>>() {
  210 + });
  211 + expected = new PreconditionFailedException().addViolation("link", "formato inválido");
  212 + assertEquals(expected.getViolations(), violations);
  213 +
  214 + bookmark = new Bookmark();
  215 + bookmark.setId(Long.valueOf(123456789));
  216 + bookmark.setDescription("Test");
  217 + bookmark.setLink("http://test.com");
  218 + request = new HttpPost("/a15/api/bookmark");
  219 + request.setEntity(createEntity(bookmark));
  220 + request.addHeader("Content-Type", "application/json");
  221 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  222 + response = client.execute(host, request);
  223 + response.close();
  224 + assertEquals(SC_BAD_REQUEST, response.getStatusLine().getStatusCode());
  225 + }
  226 +
  227 + @Test
  228 + public void updateSuccessful() throws Exception {
  229 + HttpRequestBase request;
  230 + CloseableHttpResponse response = createSample();
  231 + response.close();
  232 +
  233 + Bookmark bookmark = new Bookmark();
  234 + bookmark.setDescription("Google Maps");
  235 + bookmark.setLink("http://maps.google.com");
  236 +
  237 + Long id = parseEntity(response.getEntity(), Long.class);
  238 + String url = "/a15/api/bookmark/" + id;
  239 +
  240 + request = new HttpPut(url);
  241 + ((HttpPut) request).setEntity(createEntity(bookmark));
  242 + request.addHeader("Content-Type", "application/json");
  243 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  244 + response = client.execute(host, request);
  245 + response.close();
  246 + assertEquals(SC_NO_CONTENT, response.getStatusLine().getStatusCode());
  247 +
  248 + request = new HttpGet(url);
  249 + response = client.execute(host, request);
  250 + response.close();
  251 + Bookmark result = parseEntity(response.getEntity(), Bookmark.class);
  252 + assertEquals(id, result.getId());
  253 + assertEquals(bookmark.getDescription(), result.getDescription());
  254 + assertEquals(bookmark.getLink(), result.getLink());
  255 +
  256 + destroySample(id);
  257 + }
  258 +
  259 + @Test
  260 + public void updateFailed() throws Exception {
  261 + HttpPut request;
  262 + CloseableHttpResponse response = createSample();
  263 + response.close();
  264 + Long id = parseEntity(response.getEntity(), Long.class);
  265 + Bookmark bookmark;
  266 + Set<PreconditionFailedException.Violation> violations;
  267 + PreconditionFailedException expected;
  268 +
  269 + bookmark = new Bookmark();
  270 + bookmark.setDescription("Google");
  271 + bookmark.setLink("http://google.com");
  272 + request = new HttpPut("/a15/api/bookmark/" + id);
  273 + request.setEntity(createEntity(bookmark));
  274 + request.addHeader("Content-Type", "application/json");
  275 + response = client.execute(host, request);
  276 + response.close();
  277 + assertEquals(SC_UNAUTHORIZED, response.getStatusLine().getStatusCode());
  278 +
  279 + bookmark = new Bookmark();
  280 + request = new HttpPut("/a15/api/bookmark/" + id);
  281 + request.setEntity(createEntity(bookmark));
  282 + request.addHeader("Content-Type", "application/json");
  283 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  284 + response = client.execute(host, request);
  285 + response.close();
  286 + assertEquals(SC_PRECONDITION_FAILED, response.getStatusLine().getStatusCode());
  287 + violations = mapper.readValue(response.getEntity().getContent(),
  288 + new TypeReference<Set<PreconditionFailedException.Violation>>() {
  289 + });
  290 + expected = new PreconditionFailedException();
  291 + expected.addViolation("description", "não pode ser nulo");
  292 + expected.addViolation("link", "não pode ser nulo");
  293 + assertEquals(expected.getViolations(), violations);
  294 +
  295 + bookmark = new Bookmark();
  296 + bookmark.setDescription("Google");
  297 + bookmark.setLink("http: // google . com");
  298 + request = new HttpPut("/a15/api/bookmark/" + id);
  299 + request.setEntity(createEntity(bookmark));
  300 + request.addHeader("Content-Type", "application/json");
  301 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  302 + response = client.execute(host, request);
  303 + response.close();
  304 + assertEquals(SC_PRECONDITION_FAILED, response.getStatusLine().getStatusCode());
  305 + violations = mapper.readValue(response.getEntity().getContent(),
  306 + new TypeReference<Set<PreconditionFailedException.Violation>>() {
  307 + });
  308 + expected = new PreconditionFailedException().addViolation("link", "formato inválido");
  309 + assertEquals(expected.getViolations(), violations);
  310 +
  311 + bookmark = new Bookmark();
  312 + bookmark.setId(Long.valueOf(123456789));
  313 + bookmark.setDescription("Test");
  314 + bookmark.setLink("http://test.com");
  315 + request = new HttpPut("/a15/api/bookmark/" + id);
  316 + request.setEntity(createEntity(bookmark));
  317 + request.addHeader("Content-Type", "application/json");
  318 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  319 + response = client.execute(host, request);
  320 + response.close();
  321 + assertEquals(SC_BAD_REQUEST, response.getStatusLine().getStatusCode());
  322 +
  323 + destroySample(id);
  324 + }
  325 +
  326 + private CloseableHttpResponse createSample() throws Exception {
  327 + Bookmark bookmark = new Bookmark();
  328 + bookmark.setDescription("Google");
  329 + bookmark.setLink("http://google.com");
  330 +
  331 + HttpPost request = new HttpPost("/a15/api/bookmark");
  332 + request.setEntity(EntityBuilder.create().setText(mapper.writeValueAsString(bookmark)).build());
  333 + request.addHeader("Content-Type", "application/json");
  334 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  335 +
  336 + CloseableHttpResponse response = client.execute(host, request);
  337 + response.close();
  338 +
  339 + return response;
  340 + }
  341 +
  342 + private void destroySample(Long id) throws Exception {
  343 + HttpDelete request = new HttpDelete("/a15/api/bookmark/" + id);
  344 + request.addHeader("Authorization", BASIC_CREDENTIALS);
  345 + client.execute(host, request).close();
  346 + }
  347 +
  348 + private <T> T parseEntity(HttpEntity entity, Class<T> type) throws Exception {
  349 + return mapper.readValue(entity.getContent(), type);
  350 + }
  351 +
  352 + private HttpEntity createEntity(Object object) throws Exception {
  353 + return EntityBuilder.create().setText(mapper.writeValueAsString(object)).build();
  354 + }
  355 +}
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/test/resources/ValidationMessages.properties 0 → 100644
... ... @@ -0,0 +1,2 @@
  1 +required.field=campo obrigat\u00F3rio
  2 +invalid.url=formato inv\u00E1lido
... ...
impl/extension/servlet/src/test/java/security/authentication/basic/BasicAuthenticationFilterTest.java
... ... @@ -9,9 +9,11 @@ import java.io.IOException;
9 9 import java.net.URL;
10 10  
11 11 import org.apache.commons.codec.binary.Base64;
  12 +import org.apache.http.HttpEntity;
12 13 import org.apache.http.HttpResponse;
13 14 import org.apache.http.client.ClientProtocolException;
14 15 import org.apache.http.client.methods.HttpGet;
  16 +import org.apache.http.client.methods.HttpPost;
15 17 import org.apache.http.impl.client.CloseableHttpClient;
16 18 import org.apache.http.impl.client.HttpClientBuilder;
17 19 import org.jboss.arquillian.container.test.api.Deployment;
... ... @@ -63,6 +65,12 @@ public class BasicAuthenticationFilterTest {
63 65 public void loginFailed() throws ClientProtocolException, IOException {
64 66 String username = "invalid";
65 67 String password = "invalid";
  68 +
  69 +
  70 + HttpPost x = new HttpPost();
  71 + x.setEntity(null);
  72 +
  73 + //HttpEntity entity
66 74  
67 75 HttpGet get = new HttpGet(deploymentUrl + "/helper");
68 76 byte[] encoded = Base64.encodeBase64((username + ":" + password).getBytes());
... ...
parent/rest/pom.xml
... ... @@ -34,7 +34,8 @@
34 34 ou escreva para a Fundação do Software Livre (FSF) Inc.,
35 35 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
36 36 -->
37   -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  37 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  38 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
38 39  
39 40 <modelVersion>4.0.0</modelVersion>
40 41  
... ... @@ -66,12 +67,44 @@
66 67 <url>http://www.serpro.gov.br</url>
67 68 </organization>
68 69  
  70 + <!--
  71 + <dependencyManagement>
  72 + <dependencies>
  73 + <dependency>
  74 + <groupId>org.jboss.arquillian</groupId>
  75 + <artifactId>arquillian-bom</artifactId>
  76 + <version>${arquillian.bom.version}</version>
  77 + <scope>import</scope>
  78 + <type>pom</type>
  79 + </dependency>
  80 + </dependencies>
  81 + </dependencyManagement>
  82 + -->
  83 +
69 84 <dependencies>
70 85 <dependency>
71 86 <groupId>br.gov.frameworkdemoiselle</groupId>
72 87 <artifactId>demoiselle-rest</artifactId>
73 88 <scope>compile</scope>
74 89 </dependency>
  90 +
  91 +
  92 + <!-- Test dependencies -->
  93 + <dependency>
  94 + <groupId>org.jboss.arquillian.junit</groupId>
  95 + <artifactId>arquillian-junit-container</artifactId>
  96 + <scope>test</scope>
  97 + </dependency>
  98 + <dependency>
  99 + <groupId>org.jboss.shrinkwrap.resolver</groupId>
  100 + <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
  101 + <scope>test</scope>
  102 + </dependency>
  103 + <dependency>
  104 + <groupId>org.jboss.arquillian.protocol</groupId>
  105 + <artifactId>arquillian-protocol-servlet</artifactId>
  106 + <scope>test</scope>
  107 + </dependency>
75 108 </dependencies>
76 109  
77 110 <profiles>
... ... @@ -95,14 +128,108 @@
95 128 <activation>
96 129 <activeByDefault>true</activeByDefault>
97 130 </activation>
  131 + <!--
  132 + <dependencyManagement>
  133 + <dependencies>
  134 + <dependency>
  135 + <groupId>org.jboss.as</groupId>
  136 + <artifactId>jboss-as-parent</artifactId>
  137 + <version>${jboss.as.version}</version>
  138 + <type>pom</type>
  139 + <scope>import</scope>
  140 + </dependency>
  141 + </dependencies>
  142 + </dependencyManagement>
  143 + -->
98 144 <dependencies>
99 145 <dependency>
100 146 <groupId>javax.ws.rs</groupId>
101 147 <artifactId>jsr311-api</artifactId>
102 148 <scope>provided</scope>
103 149 </dependency>
  150 +
  151 + <!-- Test dependencies -->
  152 + <!--
  153 + <dependency>
  154 + <groupId>org.jboss.as</groupId>
  155 + <artifactId>jboss-as-arquillian-container-remote</artifactId>
  156 + <scope>test</scope>
  157 + </dependency>
  158 + -->
  159 + </dependencies>
  160 + <!--
  161 + <properties>
  162 + <jboss.as.version>7.2.0.Final</jboss.as.version>
  163 + </properties>
  164 + -->
  165 + </profile>
  166 + <!--
  167 + <profile>
  168 + <id>arquillian-test</id>
  169 + <dependencies>
  170 + <dependency>
  171 + <groupId>br.gov.frameworkdemoiselle</groupId>
  172 + <artifactId>demoiselle-core</artifactId>
  173 + <exclusions>
  174 + <exclusion>
  175 + <groupId>javax.enterprise</groupId>
  176 + <artifactId>cdi-api</artifactId>
  177 + </exclusion>
  178 + <exclusion>
  179 + <artifactId>validation-api</artifactId>
  180 + <groupId>javax.validation</groupId>
  181 + </exclusion>
  182 + <exclusion>
  183 + <groupId>org.slf4j</groupId>
  184 + <artifactId>slf4j-api</artifactId>
  185 + </exclusion>
  186 + <exclusion>
  187 + <groupId>org.javassist</groupId>
  188 + <artifactId>javassist</artifactId>
  189 + </exclusion>
  190 + <exclusion>
  191 + <groupId>commons-configuration</groupId>
  192 + <artifactId>commons-configuration</artifactId>
  193 + </exclusion>
  194 + </exclusions>
  195 + </dependency>
  196 + <dependency>
  197 + <groupId>br.gov.frameworkdemoiselle</groupId>
  198 + <artifactId>demoiselle-servlet</artifactId>
  199 + <exclusions>
  200 + <exclusion>
  201 + <groupId>javax.servlet</groupId>
  202 + <artifactId>javax.servlet-api</artifactId>
  203 + </exclusion>
  204 + <exclusion>
  205 + <groupId>commons-codec</groupId>
  206 + <artifactId>commons-codec</artifactId>
  207 + </exclusion>
  208 + </exclusions>
  209 + </dependency>
  210 + <dependency>
  211 + <groupId>br.gov.frameworkdemoiselle</groupId>
  212 + <artifactId>demoiselle-jpa</artifactId>
  213 + <exclusions>
  214 + <exclusion>
  215 + <groupId>org.eclipse.persistence</groupId>
  216 + <artifactId>javax.persistence</artifactId>
  217 + </exclusion>
  218 + </exclusions>
  219 + </dependency>
  220 + <dependency>
  221 + <groupId>br.gov.frameworkdemoiselle</groupId>
  222 + <artifactId>demoiselle-jta</artifactId>
  223 + <exclusions>
  224 + <exclusion>
  225 + <groupId>javax.transaction</groupId>
  226 + <artifactId>jta</artifactId>
  227 + </exclusion>
  228 + </exclusions>
  229 + </dependency>
104 230 </dependencies>
105 231 </profile>
  232 + -->
106 233 </profiles>
107 234  
108 235 <repositories>
... ... @@ -129,4 +256,10 @@
129 256 </releases>
130 257 </repository>
131 258 </repositories>
  259 +
  260 + <!--
  261 + <properties>
  262 + <arquillian.bom.version>1.1.1.Final</arquillian.bom.version>
  263 + </properties>
  264 + -->
132 265 </project>
... ...