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