Commit 10e37220357c560c248dedfb41161628c7859429
1 parent
d3076754
Exists in
master
Mais atualizações da extensão e arquétipo rest
Showing
3 changed files
with
79 additions
and
15 deletions
Show diff stats
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/rest/BookmarkREST.java
| @@ -8,6 +8,7 @@ import javax.ws.rs.Consumes; | @@ -8,6 +8,7 @@ import javax.ws.rs.Consumes; | ||
| 8 | import javax.ws.rs.DELETE; | 8 | import javax.ws.rs.DELETE; |
| 9 | import javax.ws.rs.GET; | 9 | import javax.ws.rs.GET; |
| 10 | import javax.ws.rs.POST; | 10 | import javax.ws.rs.POST; |
| 11 | +import javax.ws.rs.PUT; | ||
| 11 | import javax.ws.rs.Path; | 12 | import javax.ws.rs.Path; |
| 12 | import javax.ws.rs.PathParam; | 13 | import javax.ws.rs.PathParam; |
| 13 | import javax.ws.rs.Produces; | 14 | import javax.ws.rs.Produces; |
| @@ -21,9 +22,7 @@ import br.gov.frameworkdemoiselle.BadRequestException; | @@ -21,9 +22,7 @@ import br.gov.frameworkdemoiselle.BadRequestException; | ||
| 21 | import br.gov.frameworkdemoiselle.NotFoundException; | 22 | import br.gov.frameworkdemoiselle.NotFoundException; |
| 22 | import br.gov.frameworkdemoiselle.transaction.Transactional; | 23 | import br.gov.frameworkdemoiselle.transaction.Transactional; |
| 23 | 24 | ||
| 24 | -//@ValidateRequest | ||
| 25 | @Path("bookmark") | 25 | @Path("bookmark") |
| 26 | -// @Consumes(APPLICATION_JSON) | ||
| 27 | public class BookmarkREST { | 26 | public class BookmarkREST { |
| 28 | 27 | ||
| 29 | @Inject | 28 | @Inject |
| @@ -50,8 +49,8 @@ public class BookmarkREST { | @@ -50,8 +49,8 @@ public class BookmarkREST { | ||
| 50 | 49 | ||
| 51 | @POST | 50 | @POST |
| 52 | @Transactional | 51 | @Transactional |
| 53 | - @Consumes("application/json") | ||
| 54 | @Produces("text/plain") | 52 | @Produces("text/plain") |
| 53 | + @Consumes("application/json") | ||
| 55 | public Response insert(Bookmark entity, @Context UriInfo uriInfo) { | 54 | public Response insert(Bookmark entity, @Context UriInfo uriInfo) { |
| 56 | if (entity.getId() != null) { | 55 | if (entity.getId() != null) { |
| 57 | throw new BadRequestException(); | 56 | throw new BadRequestException(); |
| @@ -63,6 +62,23 @@ public class BookmarkREST { | @@ -63,6 +62,23 @@ public class BookmarkREST { | ||
| 63 | return Response.created(location).entity(id).build(); | 62 | return Response.created(location).entity(id).build(); |
| 64 | } | 63 | } |
| 65 | 64 | ||
| 65 | + @PUT | ||
| 66 | + @Path("{id}") | ||
| 67 | + @Transactional | ||
| 68 | + @Consumes("application/json") | ||
| 69 | + public void update(@PathParam("id") Long id, Bookmark entity) { | ||
| 70 | + if (entity.getId() != null) { | ||
| 71 | + throw new BadRequestException(); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + if (bc.load(id) == null) { | ||
| 75 | + throw new NotFoundException(); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + entity.setId(id); | ||
| 79 | + bc.update(entity); | ||
| 80 | + } | ||
| 81 | + | ||
| 66 | @DELETE | 82 | @DELETE |
| 67 | @Transactional | 83 | @Transactional |
| 68 | @Consumes("application/json") | 84 | @Consumes("application/json") |
impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConstraintViolationExceptionMapper.java
0 → 100644
| @@ -0,0 +1,50 @@ | @@ -0,0 +1,50 @@ | ||
| 1 | +//package br.gov.frameworkdemoiselle.internal.implementation; | ||
| 2 | +// | ||
| 3 | +//import java.util.Arrays; | ||
| 4 | +// | ||
| 5 | +//import javax.validation.ConstraintViolation; | ||
| 6 | +//import javax.validation.ConstraintViolationException; | ||
| 7 | +//import javax.ws.rs.core.Context; | ||
| 8 | +//import javax.ws.rs.core.Response; | ||
| 9 | +//import javax.ws.rs.ext.ExceptionMapper; | ||
| 10 | +//import javax.ws.rs.ext.Provider; | ||
| 11 | +// | ||
| 12 | +//@Provider | ||
| 13 | +//public class ConstraintViolationExceptionMapper implements ExceptionMapper<Exception> { | ||
| 14 | +// | ||
| 15 | +// @Context | ||
| 16 | +// private Response response; | ||
| 17 | +// | ||
| 18 | +// @Override | ||
| 19 | +// public Response toResponse(Exception exception) { | ||
| 20 | +// | ||
| 21 | +// Throwable rootCause = exception; | ||
| 22 | +// while (rootCause != null) { | ||
| 23 | +// if (rootCause instanceof ConstraintViolationException) { | ||
| 24 | +// break; | ||
| 25 | +// } | ||
| 26 | +// | ||
| 27 | +// rootCause = rootCause.getCause(); | ||
| 28 | +// } | ||
| 29 | +// | ||
| 30 | +// if (rootCause != null) { | ||
| 31 | +// for (ConstraintViolation<?> violation : ((ConstraintViolationException) rootCause) | ||
| 32 | +// .getConstraintViolations()) { | ||
| 33 | +// String parts[] = violation.getPropertyPath().toString().split("\\.|\\[|\\]\\."); | ||
| 34 | +// String property = null; | ||
| 35 | +// | ||
| 36 | +// if (parts.length > 1) { | ||
| 37 | +// property = parts[1]; | ||
| 38 | +// | ||
| 39 | +// for (String part : Arrays.copyOfRange(parts, 2, parts.length)) { | ||
| 40 | +// property += "." + part; | ||
| 41 | +// } | ||
| 42 | +// } | ||
| 43 | +// | ||
| 44 | +// System.out.println(property); | ||
| 45 | +// } | ||
| 46 | +// } | ||
| 47 | +// | ||
| 48 | +// return null; | ||
| 49 | +// } | ||
| 50 | +// } |
impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultExceptionMapper.java
| 1 | //package br.gov.frameworkdemoiselle.internal.implementation; | 1 | //package br.gov.frameworkdemoiselle.internal.implementation; |
| 2 | // | 2 | // |
| 3 | -//import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR; | 3 | +//import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; |
| 4 | // | 4 | // |
| 5 | //import java.util.ResourceBundle; | 5 | //import java.util.ResourceBundle; |
| 6 | // | 6 | // |
| 7 | -//import javax.inject.Inject; | ||
| 8 | //import javax.ws.rs.core.Response; | 7 | //import javax.ws.rs.core.Response; |
| 9 | //import javax.ws.rs.ext.ExceptionMapper; | 8 | //import javax.ws.rs.ext.ExceptionMapper; |
| 10 | //import javax.ws.rs.ext.Provider; | 9 | //import javax.ws.rs.ext.Provider; |
| 11 | // | 10 | // |
| 12 | //import org.slf4j.Logger; | 11 | //import org.slf4j.Logger; |
| 13 | // | 12 | // |
| 14 | -//import br.gov.frameworkdemoiselle.annotation.Name; | 13 | +//import br.gov.frameworkdemoiselle.util.Beans; |
| 14 | +//import br.gov.frameworkdemoiselle.util.NamedQualifier; | ||
| 15 | // | 15 | // |
| 16 | //@Provider | 16 | //@Provider |
| 17 | //public class DefaultExceptionMapper implements ExceptionMapper<Throwable> { | 17 | //public class DefaultExceptionMapper implements ExceptionMapper<Throwable> { |
| 18 | // | 18 | // |
| 19 | -// @Inject | ||
| 20 | -// @Name("demoiselle-rest-bundle") | ||
| 21 | -// private ResourceBundle bundle; | 19 | +// @Override |
| 20 | +// public Response toResponse(Throwable exception) { | ||
| 21 | +// ResourceBundle bundle = Beans.getReference(ResourceBundle.class, new NamedQualifier("demoiselle-rest-bundle")); | ||
| 22 | +// Logger logger = Beans.getReference(Logger.class); | ||
| 22 | // | 23 | // |
| 23 | -// @Inject | ||
| 24 | -// private Logger logger; | 24 | +// logger.error(exception.getMessage(), exception); |
| 25 | // | 25 | // |
| 26 | -// @Override | ||
| 27 | -// public Response toResponse(Throwable throwable) { | ||
| 28 | -// logger.error(throwable.getMessage(), throwable); | 26 | +// // throw new DemoiselleException(cause); |
| 29 | // | 27 | // |
| 30 | // String message = bundle.getString("internal.server.error"); | 28 | // String message = bundle.getString("internal.server.error"); |
| 31 | -// return Response.status(SC_INTERNAL_SERVER_ERROR).entity(message).build(); | 29 | +// return Response.status(INTERNAL_SERVER_ERROR).entity(message).build(); |
| 32 | // } | 30 | // } |
| 33 | //} | 31 | //} |