Initial commit
This commit is contained in:
commit
4e7daea415
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal 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
57
build.gradle
Normal 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
9
settings.gradle
Normal file
@ -0,0 +1,9 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
if (settings.hasProperty("repo"))
|
||||
maven {
|
||||
url repo
|
||||
}
|
||||
}
|
||||
}
|
39
src/main/java/systems/archide/scanuploader/Cli.java
Normal file
39
src/main/java/systems/archide/scanuploader/Cli.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
51
src/main/java/systems/archide/scanuploader/SyncFile.java
Normal file
51
src/main/java/systems/archide/scanuploader/SyncFile.java
Normal 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 !");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
1
src/main/resources/digitalize.properties
Normal file
1
src/main/resources/digitalize.properties
Normal file
@ -0,0 +1 @@
|
||||
db.url=jdbc:sqlite:C:/ScanUploader/db/default.db
|
15
src/templates/EnvironmentInfo.java
Normal file
15
src/templates/EnvironmentInfo.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user