@Override public String toString() { return String.format("Application[appId=%s,siteId=%s,UUID=%s]", appId, descriptor.getType(), this.getUuid()); }
@Override public ApplicationEntity delete(ApplicationEntity applicationEntity) { ApplicationEntity entity = getByUUIDOrAppId(applicationEntity.getUuid(), applicationEntity.getAppId()); entity = new ApplicationEntity(null, null, null, null, entity.getUuid(), ""); try { queryService.update(deleteSqlByUUID, entity, new ApplicationEntityToRelation()); } catch (SQLException e) { LOGGER.error("Error to delete ApplicationEntity: {}", entity, e); } return entity; }
/** * <b>Request:</b> * <pre> * { * uuid: APPLICATION_UUID * } * </pre>. * * @param operation */ @DELETE @Path("/uninstall") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public RESTResponse<Void> uninstallApplication(ApplicationOperations.UninstallOperation operation) { return RESTResponse.<Void>async((response) -> { ApplicationEntity entity = applicationManagementService.uninstall(operation); response.success(true).message("Successfully uninstalled application " + entity.getUuid()); }).get(); }
/** * <b>Request:</b> * <pre> * { * uuid: APPLICATION_UUID * } * </pre>. * * @param operation */ @POST @Path("/stop") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public RESTResponse<Void> stopApplication(ApplicationOperations.StopOperation operation) { return RESTResponse.<Void>async((response) -> { ApplicationEntity entity = applicationManagementService.stop(operation); response.success(true).message("Stopping application " + entity.getUuid()); }).get(); }
/** * <b>Request:</b> * <pre> * { * uuid: APPLICATION_UUID * } * </pre> * operation. * @param operation */ @POST @Path("/start") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public RESTResponse<Void> startApplication(ApplicationOperations.StartOperation operation) { return RESTResponse.<Void>async((response) -> { ApplicationEntity entity = applicationManagementService.start(operation); response.success(true).message("Starting application " + entity.getUuid()); }).get(); }
@Override public ApplicationEntity create(ApplicationEntity entity) { entity.ensureDefault(); if (getBySiteIdAndAppType(entity.getSite().getSiteId(), entity.getDescriptor().getType()) != null) { throw new IllegalArgumentException("Duplicated appId: " + entity.getAppId()); } applicationEntityMap.put(entity.getUuid(), entity); return entity; }
applicationResource.startApplication(new ApplicationOperations.StartOperation(applicationEntity.getUuid())); statusUpdateService.updateApplicationEntityStatus(applicationEntity); Semaphore semp = new Semaphore(1); Thread stopThread = new Thread(() -> { applicationResource.stopApplication(new ApplicationOperations.StopOperation(applicationEntity.getUuid())); while (applicationEntity.getStatus() != ApplicationEntity.Status.INITIALIZED && applicationEntity.getStatus() != ApplicationEntity.Status.STOPPED) { stopThread.join(60000L); semp.tryAcquire(60, TimeUnit.SECONDS); applicationResource.uninstallApplication(new ApplicationOperations.UninstallOperation(applicationEntity.getUuid())); } catch (Exception e) { throw new IllegalStateException("Application status didn't become STOPPED");
@Override public void updateApplicationEntityStatus(ApplicationEntity applicationEntity) { String appUuid = applicationEntity.getUuid(); ApplicationEntity.Status preStatus = applicationEntity.getStatus(); try {