From: Vásáry Dániel Date: Thu, 29 Nov 2018 15:15:47 +0000 (+0000) Subject: Feature #107 Folyamat futtatás és monitorozás kiajánlása WS-en X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=0dabe22c9d7b2e5560831c6347a401ed3b00608b;p=mediacube.git Feature #107 Folyamat futtatás és monitorozás kiajánlása WS-en git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31359 --- diff --git a/server/-configuration/run-mediacube-server-bsh.launch b/server/-configuration/run-mediacube-server-bsh.launch index f81b80d9..73dd62c3 100644 --- a/server/-configuration/run-mediacube-server-bsh.launch +++ b/server/-configuration/run-mediacube-server-bsh.launch @@ -19,7 +19,7 @@ - + diff --git a/server/user.jobengine.osgi.db/src/user/jobengine/db/JSONBase.java b/server/user.jobengine.osgi.db/src/user/jobengine/db/JSONBase.java index 93b4da48..f35936de 100644 --- a/server/user.jobengine.osgi.db/src/user/jobengine/db/JSONBase.java +++ b/server/user.jobengine.osgi.db/src/user/jobengine/db/JSONBase.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import user.commons.EntityBase; @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "$type") -@JsonSubTypes({ @Type(WorkflowAction.class), @Type(MasterId.class) }) +@JsonSubTypes({ @Type(WorkflowAction.class), @Type(MasterId.class), @Type(Media.class) }) public class JSONBase extends EntityBase { } \ No newline at end of file diff --git a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/jobengine/JobengineService.java b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java similarity index 70% rename from server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/jobengine/JobengineService.java rename to server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java index b7053bff..a5b0ce8a 100644 --- a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/jobengine/JobengineService.java +++ b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java @@ -1,4 +1,8 @@ -package user.jobengine.osgi.rest.jobengine; +package user.jobengine.osgi.mediacube; + +import java.sql.ResultSetMetaData; +import java.util.ArrayList; +import java.util.List; import javax.ws.rs.Consumes; import javax.ws.rs.GET; @@ -13,8 +17,12 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.eclipse.core.runtime.adaptor.EclipseStarter; +import com.ibm.nosql.json.api.BasicDBObject; + import user.commons.MediaCubeMarker; import user.jobengine.db.IItemManager; +import user.jobengine.db.IResultSetConsumer; +import user.jobengine.db.IStatementDecorator; import user.jobengine.db.Item; import user.jobengine.db.JSONBase; import user.jobengine.osgi.rest.ComponentBinder; @@ -22,12 +30,12 @@ import user.jobengine.server.IJobEngine; @Path("/jobengine") @SuppressWarnings("restriction") -public class JobengineService { +public class MediaCubeService { private static final Logger logger = LogManager.getLogger(); private IItemManager itemManager = ComponentBinder.getItemManager(); - public JobengineService() { + public MediaCubeService() { //logger.info("Created"); } @@ -79,6 +87,38 @@ public class JobengineService { return result; } + @GET + @Path("/media") + @Consumes({ MediaType.APPLICATION_JSON }) + @Produces({ MediaType.APPLICATION_JSON }) + public Response getMedia(@QueryParam("mediaHouseId") String mediaHouseId) { + Response result = null; + try { + if (itemManager == null) + throw new Exception("No ItemManager found"); + + List items = new ArrayList<>(); + String sql = "select * from VW_ITEMS where mediafilehouseid = ? order by mediafilehouseid"; + IStatementDecorator decorator = ps -> { + ps.setString(1, mediaHouseId); + }; + IResultSetConsumer consumer = rs -> { + ResultSetMetaData metaData = rs.getMetaData(); + BasicDBObject o = new BasicDBObject(); + for (int i = 1; i <= metaData.getColumnCount(); i++) { + o.put(metaData.getColumnName(i), rs.getObject(i)); + } + items.add(o); + return true; + }; + itemManager.executeQuery(sql, consumer, decorator); + result = Response.ok(items).build(); + } catch (Exception e) { + result = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); + } + return result; + } + @GET @Path("/halt") public Response halt() { diff --git a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java index ab81c22f..66a40075 100644 --- a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java +++ b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/RESTApplications.java @@ -6,7 +6,7 @@ import java.util.Set; import javax.ws.rs.core.Application; -import user.jobengine.osgi.rest.jobengine.JobengineService; +import user.jobengine.osgi.mediacube.MediaCubeService; import user.jobengine.osgi.rest.octopus.OctopusRESTService; public class RESTApplications extends Application { @@ -19,6 +19,6 @@ public class RESTApplications extends Application { @Override public Set> getClasses() { - return new HashSet<>(Arrays.asList(OctopusRESTService.class, JobengineService.class, JacksonJsonProvider.class, TextMessageBodyReaderWriter.class)); + return new HashSet<>(Arrays.asList(OctopusRESTService.class, MediaCubeService.class, JacksonJsonProvider.class, TextMessageBodyReaderWriter.class)); } }