From: elgekko Date: Tue, 5 Sep 2023 14:55:06 +0000 (+0200) Subject: Initial version (non-tested) X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=7617163257b1a7679065c6e9bb373baebd301c24;p=mediacube.git Initial version (non-tested) --- diff --git a/mc-intergator/.idea/.gitignore b/mc-intergator/.idea/.gitignore deleted file mode 100644 index 26d33521..00000000 --- a/mc-intergator/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/mc-intergator/.idea/compiler.xml b/mc-intergator/.idea/compiler.xml index 20f5f549..2d4b4e74 100644 --- a/mc-intergator/.idea/compiler.xml +++ b/mc-intergator/.idea/compiler.xml @@ -2,29 +2,25 @@ + + - - - - - diff --git a/mc-intergator/.idea/encodings.xml b/mc-intergator/.idea/encodings.xml index f3c8a277..0389e3fa 100644 --- a/mc-intergator/.idea/encodings.xml +++ b/mc-intergator/.idea/encodings.xml @@ -1,11 +1,10 @@ - - + diff --git a/mc-intergator/.idea/misc.xml b/mc-intergator/.idea/misc.xml index 149970a2..b0e4237d 100644 --- a/mc-intergator/.idea/misc.xml +++ b/mc-intergator/.idea/misc.xml @@ -7,12 +7,6 @@ - diff --git a/mc-intergator/.idea/modules.xml b/mc-intergator/.idea/modules.xml deleted file mode 100644 index 1b101a0b..00000000 --- a/mc-intergator/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/mc-intergator/.idea/uiDesigner.xml b/mc-intergator/.idea/uiDesigner.xml new file mode 100644 index 00000000..2b63946d --- /dev/null +++ b/mc-intergator/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mc-intergator/dumper-mc/pom.xml b/mc-intergator/dumper-mc/pom.xml index 0079e48a..67c0e959 100644 --- a/mc-intergator/dumper-mc/pom.xml +++ b/mc-intergator/dumper-mc/pom.xml @@ -2,11 +2,10 @@ 4.0.0 - net.elgekko.mediacube dumper-mc 0.0.1-SNAPSHOT - net.elgekko.mediacube + hu.user.mediacube mc-integrator 0.0.1-SNAPSHOT diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/AMCDBDump.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/AMCDBDump.java similarity index 99% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/AMCDBDump.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/AMCDBDump.java index aaebbe30..79b14fad 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/AMCDBDump.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/AMCDBDump.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import hu.user.mediacube.rdb.MediaMapper; import hu.user.mediacube.rdb.MediafileMapper; diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/Cmd.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/Cmd.java similarity index 98% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/Cmd.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/Cmd.java index afe2ed60..4f15a8de 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/Cmd.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/Cmd.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/LoggerConfiguration.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/LoggerConfiguration.java similarity index 94% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/LoggerConfiguration.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/LoggerConfiguration.java index 777b93fd..2d454845 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/LoggerConfiguration.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/LoggerConfiguration.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/Main.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/Main.java similarity index 96% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/Main.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/Main.java index 99b1a95f..2e422907 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/Main.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/Main.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MediaWithMediaFile.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MediaWithMediaFile.java similarity index 91% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MediaWithMediaFile.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MediaWithMediaFile.java index 047d7338..05510406 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MediaWithMediaFile.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MediaWithMediaFile.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import hu.user.mediacube.rdb.model.Media; import hu.user.mediacube.rdb.model.Mediafile; diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MediaWithMediaFileMapper.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MediaWithMediaFileMapper.java similarity index 96% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MediaWithMediaFileMapper.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MediaWithMediaFileMapper.java index ecabe5c5..d1d054aa 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MediaWithMediaFileMapper.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MediaWithMediaFileMapper.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import org.apache.ibatis.annotations.Mapper; diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MyBatisConfig.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MyBatisConfig.java similarity index 92% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MyBatisConfig.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MyBatisConfig.java index d3532ffc..c502a9cc 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/MyBatisConfig.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/MyBatisConfig.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer; import org.springframework.context.annotation.Bean; diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/TSMProperties.java b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/TSMProperties.java similarity index 92% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/TSMProperties.java rename to mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/TSMProperties.java index 4f4b78b5..0b4e26bd 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/TSMProperties.java +++ b/mc-intergator/dumper-mc/src/main/java/hu/user/mediacube/integration/dumper/TSMProperties.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.dumper; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; diff --git a/mc-intergator/integration-amc/pom.xml b/mc-intergator/integration-amc/pom.xml index eff556ba..bd2717c7 100644 --- a/mc-intergator/integration-amc/pom.xml +++ b/mc-intergator/integration-amc/pom.xml @@ -2,11 +2,10 @@ 4.0.0 - net.elgekko.mediacube integration-amc 0.0.1-SNAPSHOT - net.elgekko.mediacube + hu.user.mediacube mc-integrator 0.0.1-SNAPSHOT diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCCSV.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCCSV.java similarity index 96% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCCSV.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCCSV.java index 0f783ee4..2a789268 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCCSV.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCCSV.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import com.opencsv.bean.CsvToBean; import com.opencsv.bean.CsvToBeanBuilder; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCDBDump.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCDBDump.java similarity index 97% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCDBDump.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCDBDump.java index 55fe6467..74a59df9 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCDBDump.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCDBDump.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import hu.user.mediacube.rdb.model.Media; import org.slf4j.Logger; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCMigrator.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCMigrator.java similarity index 98% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCMigrator.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCMigrator.java index 45eae4b3..88ec6d40 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCMigrator.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCMigrator.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCPartRename.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCPartRename.java similarity index 94% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCPartRename.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCPartRename.java index ce9602be..d6d99627 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCPartRename.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCPartRename.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessor.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessor.java similarity index 98% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessor.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessor.java index 60b171a4..2dbdb9dc 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessor.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessor.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessorBuilder.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessorBuilder.java similarity index 93% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessorBuilder.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessorBuilder.java index fba3efd5..56271a5d 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessorBuilder.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessorBuilder.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessorConfig.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessorConfig.java similarity index 91% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessorConfig.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessorConfig.java index 40b0cf77..ba3ea0da 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCProcessorConfig.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCProcessorConfig.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Bean; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCRecord.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCRecord.java similarity index 95% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCRecord.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCRecord.java index 9afe9f6e..75f744ab 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/AMCRecord.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/AMCRecord.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import com.opencsv.bean.CsvDate; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/DBMappers.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/DBMappers.java similarity index 99% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/DBMappers.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/DBMappers.java index a75c8674..53bdf934 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/DBMappers.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/DBMappers.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import hu.user.mediacube.rdb.*; import hu.user.mediacube.rdb.model.*; diff --git a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/LoggerConfiguration.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/LoggerConfiguration.java similarity index 94% rename from mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/LoggerConfiguration.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/LoggerConfiguration.java index 777b93fd..47f00584 100644 --- a/mc-intergator/dumper-mc/src/main/java/net/elgekko/mediacube/integration/amc/LoggerConfiguration.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/LoggerConfiguration.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/Main.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/Main.java similarity index 96% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/Main.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/Main.java index a22b870c..9fac62ff 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/Main.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/Main.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/MyBatisConfig.java b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/MyBatisConfig.java similarity index 92% rename from mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/MyBatisConfig.java rename to mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/MyBatisConfig.java index d3532ffc..90636290 100644 --- a/mc-intergator/integration-amc/src/main/java/net/elgekko/mediacube/integration/amc/MyBatisConfig.java +++ b/mc-intergator/integration-amc/src/main/java/hu/user/mediacube/integration/amc/MyBatisConfig.java @@ -1,4 +1,4 @@ -package net.elgekko.mediacube.integration.amc; +package hu.user.mediacube.integration.amc; import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer; import org.springframework.context.annotation.Bean; diff --git a/mc-intergator/mc-db/pom.xml b/mc-intergator/mc-db/pom.xml index 70daead4..5dd22938 100644 --- a/mc-intergator/mc-db/pom.xml +++ b/mc-intergator/mc-db/pom.xml @@ -3,11 +3,10 @@ xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - net.elgekko.mediacube mc-db 0.0.1-SNAPSHOT - net.elgekko.mediacube + hu.user.mediacube mc-integrator 0.0.1-SNAPSHOT @@ -28,9 +27,27 @@ + + org.codehaus.mojo + build-helper-maven-plugin + 3.2.0 + + + add-source + generate-sources + + add-source + + + + src/main/generated/ + + + + + - diff --git a/mc-intergator/mc-db/target/classes/generator-config.xml b/mc-intergator/mc-db/target/classes/generator-config.xml new file mode 100644 index 00000000..591d549e --- /dev/null +++ b/mc-intergator/mc-db/target/classes/generator-config.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/mc-intergator/mc-db/target/classes/hu/user/mediacube/rdb/MediaCubeMapper.class b/mc-intergator/mc-db/target/classes/hu/user/mediacube/rdb/MediaCubeMapper.class new file mode 100644 index 00000000..23fb3ab3 Binary files /dev/null and b/mc-intergator/mc-db/target/classes/hu/user/mediacube/rdb/MediaCubeMapper.class differ diff --git a/mc-intergator/mc-db/target/maven-archiver/pom.properties b/mc-intergator/mc-db/target/maven-archiver/pom.properties new file mode 100644 index 00000000..385ca01b --- /dev/null +++ b/mc-intergator/mc-db/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +version=0.0.1-SNAPSHOT +groupId=hu.user.mediacube +artifactId=mc-db diff --git a/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 00000000..aae6faef --- /dev/null +++ b/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,65 @@ +hu\user\mediacube\rdb\MasteridSqlProvider.class +hu\user\mediacube\rdb\MediafileMapper.class +hu\user\mediacube\rdb\model\MediafileKey.class +hu\user\mediacube\rdb\model\ItemExample$GeneratedCriteria.class +hu\user\mediacube\rdb\model\ItemKey.class +hu\user\mediacube\rdb\model\MasteridKey.class +hu\user\mediacube\rdb\model\ItemtypeExample$Criterion.class +hu\user\mediacube\rdb\StoreMapper.class +hu\user\mediacube\rdb\model\Itemtype.class +hu\user\mediacube\rdb\model\Media.class +hu\user\mediacube\rdb\model\MediaKey.class +hu\user\mediacube\rdb\model\FiletypeKey.class +hu\user\mediacube\rdb\model\MasteridExample$Criteria.class +hu\user\mediacube\rdb\model\StoreExample.class +hu\user\mediacube\rdb\model\StoreKey.class +hu\user\mediacube\rdb\model\ItemtypeKey.class +hu\user\mediacube\rdb\MediaSqlProvider.class +hu\user\mediacube\rdb\model\StoreuriExample$GeneratedCriteria.class +hu\user\mediacube\rdb\model\ItemExample.class +hu\user\mediacube\rdb\model\MasteridExample$GeneratedCriteria.class +hu\user\mediacube\rdb\MasteridMapper.class +hu\user\mediacube\rdb\model\MasteridExample.class +hu\user\mediacube\rdb\model\MediaExample$GeneratedCriteria.class +hu\user\mediacube\rdb\model\ItemtypeExample$Criteria.class +hu\user\mediacube\rdb\model\ItemExample$Criteria.class +hu\user\mediacube\rdb\MediafileSqlProvider.class +hu\user\mediacube\rdb\model\ItemtypeExample$GeneratedCriteria.class +hu\user\mediacube\rdb\model\StoreExample$Criterion.class +hu\user\mediacube\rdb\model\StoreExample$Criteria.class +hu\user\mediacube\rdb\model\StoreuriExample$Criteria.class +hu\user\mediacube\rdb\model\FiletypeExample$GeneratedCriteria.class +hu\user\mediacube\rdb\model\Mediafile.class +hu\user\mediacube\rdb\model\MediaExample$Criterion.class +hu\user\mediacube\rdb\ItemtypeSqlProvider.class +hu\user\mediacube\rdb\model\FiletypeExample$Criterion.class +hu\user\mediacube\rdb\FiletypeSqlProvider.class +hu\user\mediacube\rdb\model\Masterid.class +hu\user\mediacube\rdb\model\MediaExample.class +hu\user\mediacube\rdb\StoreuriMapper.class +hu\user\mediacube\rdb\FiletypeMapper.class +hu\user\mediacube\rdb\model\MediafileExample$Criterion.class +hu\user\mediacube\rdb\ItemtypeMapper.class +hu\user\mediacube\rdb\model\Filetype.class +hu\user\mediacube\rdb\model\MediafileExample$GeneratedCriteria.class +hu\user\mediacube\rdb\model\FiletypeExample$Criteria.class +hu\user\mediacube\rdb\StoreSqlProvider.class +hu\user\mediacube\rdb\MediaMapper.class +hu\user\mediacube\rdb\ItemSqlProvider.class +hu\user\mediacube\rdb\model\MediaWithBLOBs.class +hu\user\mediacube\rdb\model\MediaExample$Criteria.class +hu\user\mediacube\rdb\model\Item.class +hu\user\mediacube\rdb\model\ItemExample$Criterion.class +hu\user\mediacube\rdb\model\Store.class +hu\user\mediacube\rdb\model\StoreExample$GeneratedCriteria.class +hu\user\mediacube\rdb\model\Storeuri.class +hu\user\mediacube\rdb\StoreuriSqlProvider.class +hu\user\mediacube\rdb\model\ItemtypeExample.class +hu\user\mediacube\rdb\model\StoreuriKey.class +hu\user\mediacube\rdb\model\StoreuriExample$Criterion.class +hu\user\mediacube\rdb\model\MediafileExample$Criteria.class +hu\user\mediacube\rdb\ItemMapper.class +hu\user\mediacube\rdb\model\MediafileExample.class +hu\user\mediacube\rdb\model\FiletypeExample.class +hu\user\mediacube\rdb\model\MasteridExample$Criterion.class +hu\user\mediacube\rdb\model\StoreuriExample.class diff --git a/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 00000000..0b9ff30a --- /dev/null +++ b/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,42 @@ +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\ItemtypeSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Item.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\MediaExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\FiletypeExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\FiletypeKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\StoreExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\MediaMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\MediafileMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Storeuri.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\ItemtypeKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\ItemtypeExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\java\hu\user\mediacube\rdb\MediaCubeMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\ItemSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Itemtype.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\StoreuriSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\MediaKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Store.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Masterid.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\MediaWithBLOBs.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\StoreSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\StoreuriExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Media.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\MasteridExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\MasteridKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\ItemKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\MasteridSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\ItemMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Filetype.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\MediafileKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\FiletypeMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\StoreuriMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\MediafileExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\FiletypeSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\MasteridMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\MediafileSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\MediaSqlProvider.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\StoreKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\ItemtypeMapper.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\ItemExample.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\StoreuriKey.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\model\Mediafile.java +C:\work\user\mediacube\mc-intergator\mc-db\src\main\generated\hu\user\mediacube\rdb\StoreMapper.java diff --git a/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 00000000..e69de29b diff --git a/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/mc-intergator/mc-db/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 00000000..e69de29b diff --git a/mc-intergator/mc-db/target/mc-db-0.0.1-SNAPSHOT.jar b/mc-intergator/mc-db/target/mc-db-0.0.1-SNAPSHOT.jar new file mode 100644 index 00000000..fe0a84e5 Binary files /dev/null and b/mc-intergator/mc-db/target/mc-db-0.0.1-SNAPSHOT.jar differ diff --git a/mc-intergator/mc-db/target/test-classes/application-test.yaml b/mc-intergator/mc-db/target/test-classes/application-test.yaml new file mode 100644 index 00000000..7b130348 --- /dev/null +++ b/mc-intergator/mc-db/target/test-classes/application-test.yaml @@ -0,0 +1,28 @@ +### Spring +spring: + main: + banner-mode: off + output: + ansi: + enabled: always + +datasources: + maszkaweb: + driver-class-name: com.mysql.jdbc.Driver + type: com.zaxxer.hikari.HikariDataSource + jdbcUrl: jdbc:mysql://localhost:3306/maszkaweb?useUnicode=true&characterEncoding=UTF-8 + username: root + password: password + pool-name: pool-maszkaweb + maximum-pool-size: 50 + minimum-idle: 10 + + navision: + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + type: com.zaxxer.hikari.HikariDataSource + jdbcUrl: jdbc:sqlserver://localhost:1433;database=maszka_nav + username: navision + password: password + pool-name: pool-navision + maximum-pool-size: 10 + minimum-idle: 10 diff --git a/mc-intergator/mc-db/target/test-classes/logback-test.xml b/mc-intergator/mc-db/target/test-classes/logback-test.xml new file mode 100644 index 00000000..5034f4a6 --- /dev/null +++ b/mc-intergator/mc-db/target/test-classes/logback-test.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mc-intergator/mc-db/target/test-classes/navision-generator-config.xml b/mc-intergator/mc-db/target/test-classes/navision-generator-config.xml new file mode 100644 index 00000000..23dcb376 --- /dev/null +++ b/mc-intergator/mc-db/target/test-classes/navision-generator-config.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ +
+ +
+ +
+
+
+
+ + +
+ +
+
\ No newline at end of file diff --git a/mc-intergator/mc-safe-delete/pom.xml b/mc-intergator/mc-safe-delete/pom.xml new file mode 100644 index 00000000..9dfad920 --- /dev/null +++ b/mc-intergator/mc-safe-delete/pom.xml @@ -0,0 +1,65 @@ + + + 4.0.0 + mc-safe-delete + 0.0.1-SNAPSHOT + + hu.user.mediacube + mc-integrator + 0.0.1-SNAPSHOT + + + + hu.user.mediacube + mc-db + 0.0.1-SNAPSHOT + + + hu.user.tsm + tsm-clientapi + 1.0-SNAPSHOT + + + commons-codec + commons-codec + 1.15 + + + org.springframework.boot + spring-boot-autoconfigure + + + org.springframework.boot + spring-boot-starter-actuator + + + com.opencsv + opencsv + 5.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + development + ${project.url} + value + + + + + + + + diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/ArchiveFileStatus.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/ArchiveFileStatus.java new file mode 100644 index 00000000..5d4b1394 --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/ArchiveFileStatus.java @@ -0,0 +1,21 @@ +package hu.user.mediacube.integration.safedelete; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Builder +public class ArchiveFileStatus { + private String name; + + private boolean metadataExists; + + private boolean tsmFileExists; + + private boolean fileSizeEquals; + + private boolean hashEquals; + +} diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteCommand.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteCommand.java new file mode 100644 index 00000000..151e32c1 --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteCommand.java @@ -0,0 +1,60 @@ +package hu.user.mediacube.integration.safedelete; + +import hu.user.mediacube.integration.safedelete.verifier.MediaCubeDatabaseService; +import hu.user.mediacube.integration.safedelete.verifier.TSMService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.nio.file.DirectoryStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +@Component +@Log4j2 +public class SafeDeleteCommand { + @Autowired + MediaCubeDatabaseService mediaCubeDatabaseService; + + @Autowired + TSMService tsmService; + + public void processDirectory(String directory, boolean forceDeleteArchived) throws IOException { + log.info("Check directory '{} ' and delete already archived is {}", directory, forceDeleteArchived); + Path inputPath = Paths.get(directory); + try (DirectoryStream stream = Files.newDirectoryStream(inputPath)) { + for (Path filePath : stream) { + if (!Files.isDirectory(filePath)) { + processInputFile(filePath, forceDeleteArchived); + } + } + } + } + + private void processInputFile(Path source, boolean forceDeleteArchived) { + ArchiveFileStatus status = ArchiveFileStatus.builder().name(source.getFileName().toString()).build(); + String fileName = source.getFileName().toString(); + + try { + log.debug("Check MediaCube metadata for {}", source); + mediaCubeDatabaseService.verify(fileName, status); + + log.debug("Check TSM file for {}", source); + tsmService.verify(source, status); + + if (forceDeleteArchived && status.isFileSizeEquals() && status.isHashEquals()) { + try { + Files.delete(source); + } catch (Exception e) { + log.catching(e); + } + } + + } catch (Exception e) { + log.catching(e); + } + } +} + diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteMainEntry.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteMainEntry.java new file mode 100644 index 00000000..d6054731 --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteMainEntry.java @@ -0,0 +1,43 @@ +package hu.user.mediacube.integration.safedelete; + +import lombok.extern.log4j.Log4j2; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.Options; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@Log4j2 +@SpringBootApplication() +@MapperScan({"hu.user.mediacube.rdb"}) +public class SafeDeleteMainEntry implements CommandLineRunner { + @Autowired + SafeDeleteCommand safeDeleteCommand; + + public static void main(String[] args) { + SpringApplication.run(SafeDeleteMainEntry.class, args); + } + + @Override + public void run(String... args) throws Exception { + Options options = new Options(); + options.addRequiredOption("d", "directory", true, "source directory"); + options.addOption("f", "force-delete", false, "force delete archived"); + + CommandLineParser parser = new DefaultParser(); + CommandLine cmd = null; + try { + + cmd = parser.parse(options, args); + safeDeleteCommand.processDirectory(cmd.getOptionValue("d"), cmd.hasOption("f")); + } catch (Exception e) { + log.error(e.getMessage()); + log.info("Usage: mc-safe-delete -d 'directory path' -f true/false"); + } + //if (cmd.hasOption("d") + } +} diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteProperties.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteProperties.java new file mode 100644 index 00000000..a0048d3a --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteProperties.java @@ -0,0 +1,25 @@ +package hu.user.mediacube.integration.safedelete; + +import lombok.Getter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Getter +@ConfigurationProperties(prefix = "tsm") +public class SafeDeleteProperties { + private String nodeName; + + private String fsName; + + private String hlName; + + private String delimiter; + + private String user; + + private String password; + + private int port; + +} diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/db/MediaCubeRecord.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/db/MediaCubeRecord.java new file mode 100644 index 00000000..dc8c56ca --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/db/MediaCubeRecord.java @@ -0,0 +1,17 @@ +package hu.user.mediacube.integration.safedelete.db; + +import hu.user.mediacube.rdb.model.Item; +import hu.user.mediacube.rdb.model.Media; +import hu.user.mediacube.rdb.model.Mediafile; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class MediaCubeRecord { + private Item item; + + private Media media; + + private Mediafile mediaFile; +} diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/db/MediaCubeRecordMapper.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/db/MediaCubeRecordMapper.java new file mode 100644 index 00000000..38b383c3 --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/db/MediaCubeRecordMapper.java @@ -0,0 +1,38 @@ +package hu.user.mediacube.integration.safedelete.db; + + +import org.apache.ibatis.annotations.*; +import org.apache.ibatis.jdbc.SQL; +import org.apache.ibatis.type.JdbcType; + +import java.text.ParseException; +import java.util.List; + +@Mapper() +public interface MediaCubeRecordMapper { + + @SelectProvider(type = MediaCubeRecord.class, method = "getByFileName") + @Results({ + @Result(property = "item.id", column = "itemid", jdbcType = JdbcType.BIGINT, id = true), + @Result(property = "media.id", column = "mediaid", jdbcType = JdbcType.BIGINT, id = true), + @Result(property = "media.archived", column = "archived", jdbcType = JdbcType.TIMESTAMP), + @Result(property = "mediaFile.id", column = "mediafile", jdbcType = JdbcType.BIGINT, id = true), + @Result(property = "mediaFile.lastmodified", column = "lastmodified", jdbcType = JdbcType.TIMESTAMP) + }) + List getByFileName(@Param("fileName") String fileName); + + class MediaCubeRecordProvider { + public String getByFileName(String fileName) throws ParseException { + SQL sql = new SQL(); + sql.SELECT("i.id item", "m.id mediaid", "m.archived", "mf.id mediafilefid", "mf.lastmodified"); + sql.FROM("mediafile mf"); + sql.LEFT_OUTER_JOIN("media m ON (m.id = mf.mediaid)"); + sql.LEFT_OUTER_JOIN("item i ON (i.id = m.itemid)"); + sql.WHERE("mf.relativepath = #{fileName}"); + return sql.toString(); + } + + } + + +} diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/MediaCubeDatabaseService.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/MediaCubeDatabaseService.java new file mode 100644 index 00000000..4ca0f69c --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/MediaCubeDatabaseService.java @@ -0,0 +1,27 @@ +package hu.user.mediacube.integration.safedelete.verifier; + +import hu.user.mediacube.integration.safedelete.ArchiveFileStatus; +import hu.user.mediacube.integration.safedelete.db.MediaCubeRecord; +import hu.user.mediacube.integration.safedelete.db.MediaCubeRecordMapper; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Log4j2 +public class MediaCubeDatabaseService { + @Autowired + MediaCubeRecordMapper mediaCubeRecordMapper; + + public void verify(String fileName, ArchiveFileStatus status) throws Exception { + List dbRecords = mediaCubeRecordMapper.getByFileName(fileName); + if (dbRecords.size() != 1) { + throw new Exception("Database records count mismatch. Expected 1 found " + dbRecords.size()); + } + status.setMetadataExists(true); + } + +} + diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/TSMService.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/TSMService.java new file mode 100644 index 00000000..856410bc --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/TSMService.java @@ -0,0 +1,86 @@ +package hu.user.mediacube.integration.safedelete.verifier; + +import hu.user.mediacube.integration.safedelete.ArchiveFileStatus; +import hu.user.mediacube.integration.safedelete.SafeDeleteProperties; +import lombok.extern.log4j.Log4j2; +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import user.tsm.client.TSMBackupFileObject; +import user.tsm.client.TSMClient; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Objects; + +@Service +@Log4j2 +public class TSMService { + @Autowired + private SafeDeleteProperties safeDeleteProperties; + + private static final String TMP_PREFIX = "TSM-RESTORED-"; + + private Path restore(String fileName) throws Exception { + Path result = null; + TSMClient server = null; + try { + server = new TSMClient(safeDeleteProperties.getNodeName()); + server.connect(safeDeleteProperties.getUser(), safeDeleteProperties.getPassword()); + server.setBufferSize(safeDeleteProperties.getPort()); + + TSMBackupFileObject backupFileObject = server.getActiveBackupFileObject(safeDeleteProperties.getFsName(), + safeDeleteProperties.getHlName(), safeDeleteProperties.getDelimiter() + fileName); + if (backupFileObject != null) { + Path tempDirectory = Files.createTempDirectory(String.format("%s-%s", TMP_PREFIX, fileName)); + backupFileObject.setLocalFilePath(tempDirectory.toAbsolutePath().toString()); + server.recieve(backupFileObject); + result = Paths.get(tempDirectory.toAbsolutePath().toString(), fileName); + if (!result.toFile().exists()) { + throw new Exception(String.format("Restored file not exists: %s ", result)); + } + } + + } catch (Exception e) { + throw e; + } finally { + if (Objects.nonNull(server)) { + server.disconnect(); + } + } + return result; + } + + public void verify(Path source, ArchiveFileStatus status) throws Exception { + Path restored = restore(source.getFileName().toString()); + long restoredLength = restored.toFile().length(); + long originalLength = source.toFile().length(); + if (originalLength != restoredLength) { + throw new Exception(String.format("File size mismatch. Expected %d, found %d", originalLength, restoredLength)); + } + status.setFileSizeEquals(true); + + String originalMD5 = createMD5Hash(source); + String restoredMD5 = createMD5Hash(restored); + if (!StringUtils.equals(originalMD5, restoredMD5)) { + throw new Exception(String.format("File MD5 hash mismatch. Expected %d, found %d", originalMD5, restoredMD5)); + } + status.setHashEquals(true); + } + + private String createMD5Hash(Path filePath) throws IOException { + String result; + try (InputStream is = Files.newInputStream(filePath)) { + result = DigestUtils.md5Hex(is); + } catch (Exception e) { + throw e; + } + return result; + } + +} + diff --git a/mc-intergator/mc-safe-delete/src/main/resources/application.yaml b/mc-intergator/mc-safe-delete/src/main/resources/application.yaml new file mode 100644 index 00000000..61c3f074 --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/resources/application.yaml @@ -0,0 +1,24 @@ +spring: + main: + banner-mode: off + output: + ansi: + enabled: always + datasource: + url: jdbc:db2://10.228.212.42:50000/mc:retrieveMessagesFromServerOnGetMessage=true; + username: db2admin + password: password + driver-class-name: com.ibm.db2.jcc.DB2Driver + type: com.zaxxer.hikari.HikariDataSource + hikari: + pool-name: pool-mediacube + maximum-pool-size: 50 + minimum-idle: 10 +tsm: + user: support + password: usrkft1q2 + port: 65536 + delimiter: / + node-name: mc-safe-delete + fs-name: /JOBENGINE + hl-name: /JOBENGINE diff --git a/mc-intergator/mc-safe-delete/src/main/resources/logback.xml b/mc-intergator/mc-safe-delete/src/main/resources/logback.xml new file mode 100644 index 00000000..01730548 --- /dev/null +++ b/mc-intergator/mc-safe-delete/src/main/resources/logback.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mc-intergator/mc-safe-delete/target/classes/application.yaml b/mc-intergator/mc-safe-delete/target/classes/application.yaml new file mode 100644 index 00000000..9363773e --- /dev/null +++ b/mc-intergator/mc-safe-delete/target/classes/application.yaml @@ -0,0 +1,19 @@ +spring: + main: + banner-mode: off + output: + ansi: + enabled: always + datasource: + url: jdbc:db2://10.228.212.42:50000/mc:retrieveMessagesFromServerOnGetMessage=true; + username: blobtest + password: blobtest + driver-class-name: com.ibm.db2.jcc.DB2Driver + type: com.zaxxer.hikari.HikariDataSource + hikari: + pool-name: pool-mediacube + maximum-pool-size: 50 + minimum-idle: 10 +tsm: + executable: c:\program files\tivoli\client\ba\bin\dsmadmc.exe + args: -id=support -password=userkft -TABdelimited "select LL_NAME from backups where NODE_NAME='PASANODE'" diff --git a/mc-intergator/mc-safe-delete/target/classes/logback.xml b/mc-intergator/mc-safe-delete/target/classes/logback.xml new file mode 100644 index 00000000..01730548 --- /dev/null +++ b/mc-intergator/mc-safe-delete/target/classes/logback.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mc-intergator/mc-safe-delete/target/dumper-mc-0.0.1-SNAPSHOT.jar b/mc-intergator/mc-safe-delete/target/dumper-mc-0.0.1-SNAPSHOT.jar new file mode 100644 index 00000000..8810c3e6 Binary files /dev/null and b/mc-intergator/mc-safe-delete/target/dumper-mc-0.0.1-SNAPSHOT.jar differ diff --git a/mc-intergator/mc-safe-delete/target/dumper-mc-0.0.1-SNAPSHOT.jar.original b/mc-intergator/mc-safe-delete/target/dumper-mc-0.0.1-SNAPSHOT.jar.original new file mode 100644 index 00000000..996e0b37 Binary files /dev/null and b/mc-intergator/mc-safe-delete/target/dumper-mc-0.0.1-SNAPSHOT.jar.original differ diff --git a/mc-intergator/mc-safe-delete/target/maven-archiver/pom.properties b/mc-intergator/mc-safe-delete/target/maven-archiver/pom.properties new file mode 100644 index 00000000..9306887f --- /dev/null +++ b/mc-intergator/mc-safe-delete/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +version=0.0.1-SNAPSHOT +groupId=hu.user.mediacube +artifactId=mc-safe-delete diff --git a/mc-intergator/mc-safe-delete/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/mc-intergator/mc-safe-delete/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 00000000..e69de29b diff --git a/mc-intergator/mc-safe-delete/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/mc-intergator/mc-safe-delete/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 00000000..b764c0f3 --- /dev/null +++ b/mc-intergator/mc-safe-delete/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,7 @@ +C:\work\user\mediacube\mc-intergator\mc-safe-delete\src\main\java\hu\user\mediacube\integration\safedelete\SafeDeleteMainEntry.java +C:\work\user\mediacube\mc-intergator\mc-safe-delete\src\main\java\hu\user\mediacube\integration\safedelete\ArchiveFileStatus.java +C:\work\user\mediacube\mc-intergator\mc-safe-delete\src\main\java\hu\user\mediacube\integration\safedelete\db\MediaCubeRecord.java +C:\work\user\mediacube\mc-intergator\mc-safe-delete\src\main\java\hu\user\mediacube\integration\safedelete\db\MediaCubeRecordMapper.java +C:\work\user\mediacube\mc-intergator\mc-safe-delete\src\main\java\hu\user\mediacube\integration\safedelete\verifier\MediaCubeDatabaseService.java +C:\work\user\mediacube\mc-intergator\mc-safe-delete\src\main\java\hu\user\mediacube\integration\safedelete\verifier\TSMService.java +C:\work\user\mediacube\mc-intergator\mc-safe-delete\src\main\java\hu\user\mediacube\integration\safedelete\SafeDeleteCommand.java diff --git a/mc-intergator/pom.xml b/mc-intergator/pom.xml index 18a33392..4a52436b 100644 --- a/mc-intergator/pom.xml +++ b/mc-intergator/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - net.elgekko.mediacube + hu.user.mediacube mc-integrator 0.0.1-SNAPSHOT pom @@ -18,9 +18,28 @@ - integration-amc - dumper-mc mc-db tsm-clientapi + integration-amc + dumper-mc + mc-safe-delete + + + org.projectlombok + lombok + 1.18.26 + provided + + + org.apache.logging.log4j + log4j-api + 2.20.0 + + + commons-cli + commons-cli + 1.5.0 + + diff --git a/mc-intergator/spring-shell.log b/mc-intergator/spring-shell.log new file mode 100644 index 00000000..e69de29b diff --git a/mc-intergator/sync.cmd b/mc-intergator/sync.cmd deleted file mode 100644 index 98b8b629..00000000 --- a/mc-intergator/sync.cmd +++ /dev/null @@ -1,7 +0,0 @@ -:more_to_process - - wsl inotifywait -r -e modify,attrib,close_write,move,create,delete maszka-ui/src/main/resources - wsl rsync -r maszka-ui/src/main/resources/ maszka-ui/target/classes - -goto :more_to_process - diff --git a/mc-intergator/tsm-clientapi/pom.xml b/mc-intergator/tsm-clientapi/pom.xml index b838fa73..00e6de3c 100644 --- a/mc-intergator/tsm-clientapi/pom.xml +++ b/mc-intergator/tsm-clientapi/pom.xml @@ -8,7 +8,7 @@ tsm-clientapi 1.0-SNAPSHOT - net.elgekko.mediacube + hu.user.mediacube mc-integrator 0.0.1-SNAPSHOT