From: Vásáry Dániel Date: Thu, 25 Jul 2019 12:14:55 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=7c53e346bfe6d644d7b4f93c7727389ba025ab95;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31464 --- diff --git a/server/-configuration/maestro.json b/server/-configuration/maestro.json deleted file mode 100644 index 464730c2..00000000 --- a/server/-configuration/maestro.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "sourceStoreUri": { - "protocol": "file://", - "rootPath": "c:/temp" - }, - "targets": - [ - { - "name": "name1", - "storeUri": { - "protocol": "file://", - "rootPath": "c:/temp1" - } - }, - { - "name": "name2", - "storeUri": { - "protocol": "file://", - "rootPath": "c:/temp2" - } - } - ] -} - - - diff --git a/server/-configuration/run-mediacube-server.launch b/server/-configuration/run-mediacube-server.launch index e77ba96d..c0b21572 100644 --- a/server/-configuration/run-mediacube-server.launch +++ b/server/-configuration/run-mediacube-server.launch @@ -19,7 +19,7 @@ - + diff --git a/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF b/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF index 331c6fe3..512c3e68 100644 --- a/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF +++ b/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF @@ -20,6 +20,7 @@ DynamicImport-Package: * Bundle-ClassPath: . Service-Component: OSGI-INF/nexioAPI.xml, OSGI-INF/octopusAPI.xml Export-Package: user.commons, + user.commons.config, user.commons.ftp, user.commons.logging, user.commons.mediatool, diff --git a/server/user.jobengine.osgi.commons/launch/TestTSMClient.TestConnect.launch b/server/user.jobengine.osgi.commons/launch/TestTSMClient.TestConnect.launch deleted file mode 100644 index 24034817..00000000 --- a/server/user.jobengine.osgi.commons/launch/TestTSMClient.TestConnect.launch +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/server/user.jobengine.osgi.commons/launch/TestTSMClient.launch b/server/user.jobengine.osgi.commons/launch/TestTSMClient.launch deleted file mode 100644 index 1aa69f10..00000000 --- a/server/user.jobengine.osgi.commons/launch/TestTSMClient.launch +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/server/user.jobengine.osgi.commons/src/user/commons/config/JSONConfig.java b/server/user.jobengine.osgi.commons/src/user/commons/config/JSONConfig.java new file mode 100644 index 00000000..b3a9db32 --- /dev/null +++ b/server/user.jobengine.osgi.commons/src/user/commons/config/JSONConfig.java @@ -0,0 +1,47 @@ +package user.commons.config; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Paths; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.joda.JodaModule; + +public class JSONConfig { + private static Logger logger = LogManager.getLogger(); + private static ObjectMapper objectMapper = createMapper(); + + private static ObjectMapper createMapper() { + return new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES).disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + .registerModule(new JodaModule()).setSerializationInclusion(Include.NON_NULL); + } + + public static T read(String locationProperty, Class type) throws Exception { + T result = null; + String configPath = System.getProperty(locationProperty); + if (configPath == null || "".equals(configPath)) + throw new Exception("Missing system property: " + locationProperty); + File configFile = new File(configPath); + if (configFile.exists()) { + String json = new String(Files.readAllBytes(Paths.get(configFile.getAbsolutePath()))); + try { + result = objectMapper.readValue(json.getBytes(), type); + + } catch (Exception e) { + logger.error(e); + throw e; + } + } else { + logger.error("Missing '{}' configuration file: {}", configPath, configFile.getAbsolutePath()); + } + + return result; + } + +} diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroConfig.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroConfig.java new file mode 100644 index 00000000..d1b5d4f5 --- /dev/null +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroConfig.java @@ -0,0 +1,27 @@ +package user.jobengine.zk.model; + +import java.util.List; + +import user.commons.StoreUri; + +public class MaestroConfig { + private StoreUri sourceStoreUri; + + private List targets; + + public StoreUri getSourceStoreUri() { + return sourceStoreUri; + } + + public List getTargets() { + return targets; + } + + public void setSourceStoreUri(StoreUri sourceStoreUri) { + this.sourceStoreUri = sourceStoreUri; + } + + public void setTargets(List targets) { + this.targets = targets; + } +} diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroTarget.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroTarget.java new file mode 100644 index 00000000..f1e59997 --- /dev/null +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroTarget.java @@ -0,0 +1,25 @@ +package user.jobengine.zk.model; + +import user.commons.StoreUri; + +public class MaestroTarget { + private String name; + private StoreUri storeUri; + + public String getName() { + return name; + } + + public StoreUri getStoreUri() { + return storeUri; + } + + public void setName(String name) { + this.name = name; + } + + public void setStoreUri(StoreUri storeUri) { + this.storeUri = storeUri; + } + +} \ No newline at end of file diff --git a/server/user.jobengine.osgi.server/test/user/jobengine/server/MaestroConfigTest.java b/server/user.jobengine.osgi.server/test/user/jobengine/server/MaestroConfigTest.java new file mode 100644 index 00000000..9386f3b7 --- /dev/null +++ b/server/user.jobengine.osgi.server/test/user/jobengine/server/MaestroConfigTest.java @@ -0,0 +1,33 @@ +package user.jobengine.server; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.nio.file.Path; +import java.nio.file.Paths; + +import org.junit.Test; + +import user.commons.config.JSONConfig; +import user.jobengine.zk.model.MaestroConfig; + +public class MaestroConfigTest { + + @Test + public void testConstructor_Schedule() throws Exception { + // Fixture + String key = "jobengine.maestro.config"; + String root = new File(MaestroConfigTest.class.getResource("").getFile()).getAbsolutePath().replace("\\bin\\", "\\test\\"); + Path resource = Paths.get(root, "maestro.json"); + System.setProperty(key, resource.toString()); + // Exercise + MaestroConfig sut = JSONConfig.read(key, MaestroConfig.class); + + // Verify + assertNotNull(sut); + assertNotNull(sut.getSourceStoreUri()); + assertTrue(sut.getSourceStoreUri().getRemoteFiles().size() > 0); + } + +} diff --git a/server/user.jobengine.osgi.server/test/user/jobengine/server/maestro.json b/server/user.jobengine.osgi.server/test/user/jobengine/server/maestro.json new file mode 100644 index 00000000..8cc59fcf --- /dev/null +++ b/server/user.jobengine.osgi.server/test/user/jobengine/server/maestro.json @@ -0,0 +1,26 @@ +{ + "sourceStoreUri": { + "protocol": "LOCAL", + "uri": "c:/temp" + }, + "targets": + [ + { + "name": "name1", + "storeUri": { + "protocol": "LOCAL", + "uri": "c:/temp1" + } + }, + { + "name": "name2", + "storeUri": { + "protocol": "LOCAL", + "uri": "c:/temp2" + } + } + ] +} + + +