@POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Timed @UnitOfWork public Orchestration create(Orchestration entity) { entity.setState(OrchestrationState.Initialized); LocalDateTime now = LocalDateTime.now(); entity.setCreated(now); entity.setLastModified(now); return dao.save(entity); }
@DELETE @Path("{id}") @Timed @UnitOfWork public void delete(@PathParam("id") LongParam id) { Optional<Orchestration> ent = dao.find(id.get()); if (!ent.isPresent()) { throw new NotFoundException("Orchestration " + id.get() + " not found"); } Orchestration entity = ent.get(); if (entity.getState() == OrchestrationState.Started) { throw new WebApplicationException(Response.Status.CONFLICT); } dao.delete(entity); }
@GET @Path("{id}/revisions/{revisionId}") @Produces(MediaType.APPLICATION_JSON) @Timed @UnitOfWork public Orchestration getRevision( @PathParam("id") LongParam id, @PathParam("revisionId") IntParam revisionId) { Orchestration orchestration = dao.getRevision(id.get(), revisionId.get()); // eagerly load the related objects for (OutboundEndpoint outboundEndpoint : orchestration.getOutboundEndpoints()) { Map<String, String> properties = outboundEndpoint.getProperties(); for (Map.Entry<String, String> property : properties.entrySet()) { property.getValue(); } } return orchestration; }
@GET @Path("{id}/revisions") @Produces(MediaType.APPLICATION_JSON) @Timed @UnitOfWork public List<Orchestration> getRevisions(@PathParam("id") LongParam id) { List<Orchestration> orchestrations = dao.getRevisions(id.get()); // eagerly load the related objects for (Orchestration orchestration : orchestrations) { for (OutboundEndpoint outboundEndpoint : orchestration.getOutboundEndpoints()) { Map<String, String> properties = outboundEndpoint.getProperties(); for (Map.Entry<String, String> property : properties.entrySet()) { property.getValue(); } } } return orchestrations; }
@POST @Path("{id}/stop") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Timed @UnitOfWork public Orchestration stop(@PathParam("id") LongParam id) { Optional<Orchestration> ent = dao.find(id.get()); if (!ent.isPresent()) { throw new NotFoundException("Orchestration " + id.get() + " not found"); } Orchestration entity = ent.get(); boolean result = engine.stop(entity); if (result) { entity.setState(OrchestrationState.Stopped); entity.setLastModified(LocalDateTime.now()); dao.save(entity); } return entity; }
@PUT @Path("{id}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Timed @UnitOfWork public Orchestration update(@PathParam("id") LongParam id, Orchestration entity) { Optional<Orchestration> ent = dao.find(id.get()); if (!ent.isPresent()) { throw new NotFoundException("Orchestration " + id.get() + " not found"); } if (ent.get().getState() == OrchestrationState.Started) { throw new WebApplicationException(Response.Status.CONFLICT); } entity.setLastModified(LocalDateTime.now()); return dao.merge(entity); }