Initial commit

This commit is contained in:
chahine 2024-08-15 17:21:55 +00:00
commit 4e7daea415
7 changed files with 188 additions and 0 deletions

16
.gitignore vendored Normal file
View File

@ -0,0 +1,16 @@
# Ignore Gradle build output directory
build
bin
.gradle/
src/auto/
.settings/
.classpath
.project
src/main/resources/static
gradlew
gradlew.bat
.idea/
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties
dependencies.gradle
/idcore.tar

57
build.gradle Normal file
View File

@ -0,0 +1,57 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.1'
id 'edu.sc.seis.launch4j' version '2.5.1'
id 'com.github.johnrengelman.shadow' version '7.0.0'
id 'io.spring.dependency-management' version '1.0.7.RELEASE'
}
launch4j {
headerType='console'
outfile = 'scanuploader.exe'
mainClassName = 'systems.archide.scanuploader.Cli'
chdir = ''
bundledJrePath = '%JAVA_HOME%'
jarTask = project.tasks.shadowJar
}
repositories {
mavenCentral()
jcenter()
}
sourceSets.main.java.srcDirs += 'src/auto/java'
sourceSets.main.resources.srcDirs += 'src/auto/resources'
dependencies {
implementation group: 'com.machinezoo.sourceafis', name: 'sourceafis', version: '3.11.0'
implementation 'org.xerial:sqlite-jdbc:3.41.2.1'
implementation 'com.cedarsoftware:json-io:4.13.0'
implementation "org.springframework:spring-web:6.0.10"
implementation "org.springframework.boot:spring-boot-starter-web:3.1.1"
implementation "org.postgresql:postgresql:42.2.16"
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'com.google.guava:guava:28.2-jre'
implementation 'com.zaxxer:HikariCP:3.4.5'
compileOnly 'jakarta.servlet:jakarta.servlet-api:6.0.0'
implementation 'javax.annotation:javax.annotation-api:1.3.2'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.7.3'
}
dependencyManagement {
imports {
mavenBom "io.grpc:grpc-bom:1.48.0"
}
}
shadowJar {
manifest {
attributes 'Main-Class': 'systems.archide.scanuploader.Cli'
}
mergeServiceFiles()
}

9
settings.gradle Normal file
View File

@ -0,0 +1,9 @@
pluginManagement {
repositories {
gradlePluginPortal()
if (settings.hasProperty("repo"))
maven {
url repo
}
}
}

View File

@ -0,0 +1,39 @@
package systems.archide.scanuploader;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
@SpringBootApplication(scanBasePackages = { "systems.archide.core", "com.cocentris.spring.rest.security",
"com.cocentris.orm", "systems.archide.scanuploader" })
public class Cli {
public static String scanPath;
public static void main(String[] args) {
Properties prop = new Properties();
FileInputStream input = null;
try {
input = new FileInputStream("config.ini");
prop.load(input);
scanPath = prop.getProperty("scan.path");
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
SpringApplication.run(Cli.class, args);
}
}

View File

@ -0,0 +1,51 @@
package systems.archide.scanuploader;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import systems.archide.core.pojo.DigitalizationCreateRequest;
import systems.archide.core.pojo.FileQueue;
import systems.archide.core.repository.FileQueueRepository;
import systems.archide.core.rest.client.ApplyRestClient;
@Component
public class SyncFile {
@Autowired
FileQueueRepository fileQueueRepository;
@Scheduled(fixedDelay = 50000)
public void syncDigitalizationFiles() throws IOException, SQLException {
File source = new File(Cli.scanPath);
for (File sourceEntry : source.listFiles()) {
List<FileQueue> digitalizationQueues = fileQueueRepository
.findByFilename(sourceEntry.getName());
if (digitalizationQueues.isEmpty()) {
DigitalizationCreateRequest digitalizationCreateRequest = new DigitalizationCreateRequest();
digitalizationCreateRequest.setFileName(sourceEntry.getName());
byte[] content = FileUtils.readFileToByteArray(sourceEntry);
digitalizationCreateRequest.setContent(content);
Long id = ApplyRestClient.createDigitalizationMtlb(null, digitalizationCreateRequest);
if (id != null) {
FileQueue localeFileQueue = new FileQueue();
localeFileQueue.setFilename(sourceEntry.getName());
fileQueueRepository.insert(localeFileQueue);
}
else
throw new RuntimeException("Digitalization Mtlb creation failed !");
}
}
}
}

View File

@ -0,0 +1 @@
db.url=jdbc:sqlite:C:/ScanUploader/db/default.db

View File

@ -0,0 +1,15 @@
package systems.archide.scanuploader;
public class EnvironmentInfo {
public static String serverProtocol = "{{#idha security_pki_type '!=' 'none'}}https{{else}}http{{/idha}}";
public static String serverDomain = "{{archide_core_hostname}}";
static String url = serverProtocol + "://" + serverDomain + "/api";
public static String getUrl() {
return url;
}
}