+++ /dev/null
-# Default ignored files
-/shelf/
-/workspace.xml
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
+ <profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="mc-db" />
+ <module name="mc-safe-delete" />
<module name="dumper-mc" />
<module name="integration-amc" />
<module name="tsm-clientapi" />
</profile>
</annotationProcessing>
- <bytecodeTargetLevel>
- <module name="app" target="1.5" />
- <module name="integration" target="1.5" />
- <module name="server" target="1.8" />
- </bytecodeTargetLevel>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
- <module name="app" options="" />
<module name="dumper-mc" options="-parameters" />
- <module name="integration" options="" />
<module name="integration-amc" options="-parameters" />
<module name="mc-db" options="-parameters" />
+ <module name="mc-safe-delete" options="-parameters" />
<module name="tsm-clientapi" options="-parameters" />
</option>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
- <file url="file://$PROJECT_DIR$/app/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/dumper-mc/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/integration-amc/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/integration/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mc-db/src/main/java" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/mc-safe-delete/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/tsm-clientapi/src/main/java" charset="UTF-8" />
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
- <option name="ignoredFiles">
- <set>
- <option value="$PROJECT_DIR$/app/pom.xml" />
- <option value="$PROJECT_DIR$/integration/pom.xml" />
- </set>
- </option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
<component name="ProjectType">
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ProjectModuleManager">
- <modules>
- <module fileurl="file://$PROJECT_DIR$/db/mc-db.iml" filepath="$PROJECT_DIR$/db/mc-db.iml" />
- </modules>
- </component>
-</project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Palette2">
+ <group name="Swing">
+ <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+ </item>
+ <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+ </item>
+ <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+ </item>
+ <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+ <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+ </item>
+ <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+ <initial-values>
+ <property name="text" value="Button" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+ <initial-values>
+ <property name="text" value="RadioButton" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+ <initial-values>
+ <property name="text" value="CheckBox" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+ <initial-values>
+ <property name="text" value="Label" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+ <preferred-size width="150" height="-1" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+ <preferred-size width="150" height="-1" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+ <preferred-size width="150" height="-1" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+ </item>
+ <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+ <preferred-size width="200" height="200" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+ <preferred-size width="200" height="200" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+ </item>
+ <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+ </item>
+ <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+ </item>
+ <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+ </item>
+ <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+ <preferred-size width="-1" height="20" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+ </item>
+ <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+ </item>
+ </group>
+ </component>
+</project>
\ No newline at end of file
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>net.elgekko.mediacube</groupId>
<artifactId>dumper-mc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
- <groupId>net.elgekko.mediacube</groupId>
+ <groupId>hu.user.mediacube</groupId>
<artifactId>mc-integrator</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.dumper;
import hu.user.mediacube.rdb.MediaMapper;
import hu.user.mediacube.rdb.MediafileMapper;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.dumper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.dumper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-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;
-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;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.dumper;
import org.apache.ibatis.annotations.Mapper;
-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;
-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;
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>net.elgekko.mediacube</groupId>
<artifactId>integration-amc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
- <groupId>net.elgekko.mediacube</groupId>
+ <groupId>hu.user.mediacube</groupId>
<artifactId>mc-integrator</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import com.opencsv.bean.CsvToBean;
import com.opencsv.bean.CsvToBeanBuilder;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import hu.user.mediacube.rdb.model.Media;
import org.slf4j.Logger;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
-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;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import com.opencsv.bean.CsvDate;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import hu.user.mediacube.rdb.*;
import hu.user.mediacube.rdb.model.*;
-package net.elgekko.mediacube.integration.amc;
+package hu.user.mediacube.integration.amc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-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;
-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;
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">
<modelVersion>4.0.0</modelVersion>
- <groupId>net.elgekko.mediacube</groupId>
<artifactId>mc-db</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
- <groupId>net.elgekko.mediacube</groupId>
+ <groupId>hu.user.mediacube</groupId>
<artifactId>mc-integrator</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
</dependency>
</dependencies>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>3.2.0</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>src/main/generated/</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
-
<dependencies>
<!-- <dependency>-->
<!-- <groupId>org.springframework.data</groupId>-->
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
+<generatorConfiguration>
+ <context id="context1" targetRuntime="MyBatis3" defaultModelType="hierarchical">
+ <plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin"/>
+ <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>
+ <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
+ <plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
+ <jdbcConnection connectionURL="jdbc:db2://10.228.212.42:50000/mc" userId="blobtest" password="blobtest" driverClass="com.ibm.db2.jcc.DB2Driver">
+ <property name="nullCatalogMeansCurrent" value="true"/>
+ </jdbcConnection>
+ <javaModelGenerator targetPackage="hu.user.mediacube.rdb.model" targetProject="../db/src/main/generated"/>
+ <javaClientGenerator targetPackage="hu.user.mediacube.rdb" targetProject="../db/src/main/generated" type="ANNOTATEDMAPPER"/>
+ <table tableName="MASTERID">
+ <generatedKey sqlStatement="JDBC" column="ID"/>
+ </table>
+ <table tableName="ITEMTYPE">
+ <generatedKey sqlStatement="JDBC" column="ID"/>
+ </table>
+ <table tableName="STORE">
+ <generatedKey sqlStatement="JDBC" column="ID"/>
+ </table>
+ <table tableName="STOREURI">
+ <generatedKey sqlStatement="JDBC" column="ID"/>
+ </table>
+ <table tableName="FILETYPE">
+ <generatedKey sqlStatement="JDBC" column="ID"/>
+ </table>
+ <table tableName="ITEM"/>
+ <table tableName="MEDIA"/>
+ <table tableName="MEDIAFILE">
+ <generatedKey sqlStatement="JDBC" column="ID"/>
+ </table>
+ </context>
+</generatorConfiguration>
\ No newline at end of file
--- /dev/null
+version=0.0.1-SNAPSHOT
+groupId=hu.user.mediacube
+artifactId=mc-db
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+### 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
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <include resource="org/springframework/boot/logging/logback/base.xml" />
+ <logger name="org.springframework" level="OFF"/>
+</configuration>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
+<generatorConfiguration>
+ <context id="context1" targetRuntime="MyBatis3" defaultModelType="hierarchical">
+ <plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin" />
+ <plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin">
+ <property name="searchString" value="Example$" />
+ <property name="replaceString" value="Criteria" />
+ </plugin>
+ <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>
+ <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
+ <plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
+ <jdbcConnection connectionURL="jdbc:sqlserver://localhost:1433;database=maszka_nav" userId="navision" password="password"
+ driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver">
+ <property name="nullCatalogMeansCurrent" value="true" />
+ </jdbcConnection>
+ <javaModelGenerator targetPackage="net.elgekko.navision.rdb.model" targetProject="../maszka-db/src/test/generated" />
+ <javaClientGenerator targetPackage="net.elgekko.navision.rdb" targetProject="../maszka-db/src/test/generated" type="ANNOTATEDMAPPER" />
+ <table tableName="Maszka Kft_$Keyword" domainObjectName="Keyword" />
+ <table tableName="Maszka Kft_$Item" domainObjectName="Item">
+ <ignoreColumn column="Duty Due %" />
+ <ignoreColumn column="Indirect Cost %" />
+ <ignoreColumn column="Profit %" />
+ <ignoreColumn column="Scrap %" />
+ <ignoreColumn column="VAT Bus_ Posting Gr_ (Price)" />
+ </table>
+ <table tableName="Maszka Kft_$Product Catalog Tree" domainObjectName="Catalog" />
+ <table tableName="Maszka Kft_$Warehouse Entry" domainObjectName="ItemWareHouse">
+ <columnOverride column="Qty_ (Base)" property="QtyBase" />
+ </table>
+ <table tableName="Maszka Kft_$Keyword Link" domainObjectName="ItemKeyword" />
+ <table tableName="Maszka Kft_$Item Size" domainObjectName="ItemSize" />
+ <table tableName="Maszka Kft_$Item Variant" domainObjectName="ItemVariant" />
+ <table tableName="Maszka Kft_$Suggested Items" domainObjectName="ItemSuggestion" />
+ <table tableName="Maszka Kft_$Customer" domainObjectName="Customer" >
+ <columnOverride column="Prepayment %" property="PrepaymentPercent" />
+ <columnOverride column="Credit Limit (LCY)" property="CreditLimitLCY" />
+ </table>
+
+ </context>
+</generatorConfiguration>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>mc-safe-delete</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <parent>
+ <groupId>hu.user.mediacube</groupId>
+ <artifactId>mc-integrator</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>hu.user.mediacube</groupId>
+ <artifactId>mc-db</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>hu.user.tsm</groupId>
+ <artifactId>tsm-clientapi</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.15</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-actuator</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.opencsv</groupId>
+ <artifactId>opencsv</artifactId>
+ <version>5.1</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestEntries>
+ <mode>development</mode>
+ <url>${project.url}</url>
+ <key>value</key>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
--- /dev/null
+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;
+
+}
--- /dev/null
+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<Path> 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);
+ }
+ }
+}
+
--- /dev/null
+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")
+ }
+}
--- /dev/null
+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;
+
+}
--- /dev/null
+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;
+}
--- /dev/null
+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<MediaCubeRecord> 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();
+ }
+
+ }
+
+
+}
--- /dev/null
+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<MediaCubeRecord> dbRecords = mediaCubeRecordMapper.getByFileName(fileName);
+ if (dbRecords.size() != 1) {
+ throw new Exception("Database records count mismatch. Expected 1 found " + dbRecords.size());
+ }
+ status.setMetadataExists(true);
+ }
+
+}
+
--- /dev/null
+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;
+ }
+
+}
+
--- /dev/null
+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
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <include resource="org/springframework/boot/logging/logback/base.xml"/>
+ <logger name="org.springframework" level="ERROR"/>
+</configuration>
\ No newline at end of file
--- /dev/null
+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'"
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <include resource="org/springframework/boot/logging/logback/base.xml"/>
+ <logger name="org.springframework" level="ERROR"/>
+</configuration>
\ No newline at end of file
--- /dev/null
+version=0.0.1-SNAPSHOT
+groupId=hu.user.mediacube
+artifactId=mc-safe-delete
--- /dev/null
+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
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>net.elgekko.mediacube</groupId>
+ <groupId>hu.user.mediacube</groupId>
<artifactId>mc-integrator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<relativePath/>
</parent>
<modules>
- <module>integration-amc</module>
- <module>dumper-mc</module>
<module>mc-db</module>
<module>tsm-clientapi</module>
+ <module>integration-amc</module>
+ <module>dumper-mc</module>
+ <module>mc-safe-delete</module>
</modules>
+ <dependencies>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>1.18.26</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>2.20.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.5.0</version>
+ </dependency>
+ </dependencies>
</project>
+++ /dev/null
-: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
-
<artifactId>tsm-clientapi</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
- <groupId>net.elgekko.mediacube</groupId>
+ <groupId>hu.user.mediacube</groupId>
<artifactId>mc-integrator</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>