From f2ca2b4d2a01117c21e554276b40382b02ac0186 Mon Sep 17 00:00:00 2001 From: Dominick Leppich Date: Tue, 5 Mar 2024 08:05:29 +0100 Subject: [PATCH 01/20] migrate: manual migration --- .gitignore | 20 +++ Jenkinsfile | 51 +++++--- plugin/build.xml => build.xml | 0 module-base/pom.xml | 10 ++ ...ArchiveManagementAdministrationPlugin.java | 0 .../goobi/plugins/model/EadEntry.java | 0 .../goobi/plugins/model/EadMetadataField.java | 0 .../goobi/plugins/model/FieldValue.java | 0 .../goobi/plugins/model/NodeType.java | 0 .../goobi/plugins/model/TitleComponent.java | 0 ...ArchiveManagementAdministrationPlugin.java | 0 .../java/org/goobi/interfaces/IEadEntry.java | 0 .../org/goobi/interfaces/IFieldValue.java | 0 .../org/goobi/interfaces/IMetadataField.java | 0 .../java/org/goobi/interfaces/INodeType.java | 0 .../main/resources/basex10/createDatabase.xq | 0 .../src/main/resources/basex10/eadNode.xq | 0 .../src/main/resources/basex10/eadRecord.xq | 0 .../src/main/resources/basex10/findDb.xq | 0 .../src/main/resources/basex10/importFile.xq | 0 .../main/resources/basex10/listDatabases.xq | 0 .../main/resources/basex10/openDatabase.xq | 0 .../src/main/resources/basex10/uploadFile.xq | 0 .../src/main/resources/basex9/findDb.xq | 0 .../src/main/resources/basex9/importFile.xq | 0 .../main/resources/basex9/listDatabases.xq | 0 .../src/main/resources/basex9/openDatabase.xq | 0 ...iveManagementAdministrationPluginTest.java | 0 .../intranda/goobi/plugins/EadEntryTest.java | 0 .../src/test/resources/EAD.XML | 0 .../src/test/resources/ead3.xsd | 0 .../src/test/resources/log4j2.xml | 0 ...anda_administration_archive_management.xml | 0 module-gui/pom.xml | 18 +++ .../src/main/webapp/META-INF/faces-config.xml | 33 +++++ .../main/webapp}/META-INF/intranda.taglib.xml | 0 .../resources}/tags/io/goobi/area.xhtml | 0 .../resources}/tags/io/goobi/badge.xhtml | 0 .../resources}/tags/io/goobi/dropdown.xhtml | 0 .../resources}/tags/io/goobi/input.xhtml | 0 .../tags/io/goobi/multiselect.xhtml | 0 .../resources}/tags/io/goobi/readonly.xhtml | 0 .../resources}/tags/io/goobi/textarea.xhtml | 0 ...in_administration_archive_management.xhtml | 0 plugin/.classpath | 39 ------ plugin/.gitignore | 3 - plugin/.project | 23 ---- plugin/.settings/org.eclipse.jdt.core.prefs | 16 --- plugin/.settings/org.eclipse.m2e.core.prefs | 4 - .../org.jboss.ide.eclipse.as.core.prefs | 2 - plugin/module-gui/.gitignore | 2 - plugin/module-gui/pom.xml | 88 ------------- plugin/module-main/.gitignore | 2 - plugin/module-main/pom.xml | 118 ------------------ plugin/pom.xml | 72 ----------- plugin/src/test/resources/.gitignore | 1 - ...anda_administration_archive_management.xml | 0 pom.xml | 30 +++++ 58 files changed, 146 insertions(+), 386 deletions(-) create mode 100644 .gitignore rename plugin/build.xml => build.xml (100%) create mode 100644 module-base/pom.xml rename {plugin => module-base}/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java (100%) rename {plugin => module-base}/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java (100%) rename {plugin => module-base}/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java (100%) rename {plugin => module-base}/src/main/java/de/intranda/goobi/plugins/model/FieldValue.java (100%) rename {plugin => module-base}/src/main/java/de/intranda/goobi/plugins/model/NodeType.java (100%) rename {plugin => module-base}/src/main/java/de/intranda/goobi/plugins/model/TitleComponent.java (100%) rename {plugin => module-base}/src/main/java/org/goobi/interfaces/IArchiveManagementAdministrationPlugin.java (100%) rename {plugin => module-base}/src/main/java/org/goobi/interfaces/IEadEntry.java (100%) rename {plugin => module-base}/src/main/java/org/goobi/interfaces/IFieldValue.java (100%) rename {plugin => module-base}/src/main/java/org/goobi/interfaces/IMetadataField.java (100%) rename {plugin => module-base}/src/main/java/org/goobi/interfaces/INodeType.java (100%) rename {plugin => module-base}/src/main/resources/basex10/createDatabase.xq (100%) rename {plugin => module-base}/src/main/resources/basex10/eadNode.xq (100%) rename {plugin => module-base}/src/main/resources/basex10/eadRecord.xq (100%) rename {plugin => module-base}/src/main/resources/basex10/findDb.xq (100%) rename {plugin => module-base}/src/main/resources/basex10/importFile.xq (100%) rename {plugin => module-base}/src/main/resources/basex10/listDatabases.xq (100%) rename {plugin => module-base}/src/main/resources/basex10/openDatabase.xq (100%) rename {plugin => module-base}/src/main/resources/basex10/uploadFile.xq (100%) rename {plugin => module-base}/src/main/resources/basex9/findDb.xq (100%) rename {plugin => module-base}/src/main/resources/basex9/importFile.xq (100%) rename {plugin => module-base}/src/main/resources/basex9/listDatabases.xq (100%) rename {plugin => module-base}/src/main/resources/basex9/openDatabase.xq (100%) rename {plugin => module-base}/src/test/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPluginTest.java (100%) rename {plugin => module-base}/src/test/java/de/intranda/goobi/plugins/EadEntryTest.java (100%) rename {plugin => module-base}/src/test/resources/EAD.XML (100%) rename {plugin => module-base}/src/test/resources/ead3.xsd (100%) rename {plugin => module-base}/src/test/resources/log4j2.xml (100%) rename {plugin => module-base}/src/test/resources/plugin_intranda_administration_archive_management.xml (100%) create mode 100644 module-gui/pom.xml create mode 100644 module-gui/src/main/webapp/META-INF/faces-config.xml rename {plugin/src/main/resources/GUI => module-gui/src/main/webapp}/META-INF/intranda.taglib.xml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp/resources}/tags/io/goobi/area.xhtml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp/resources}/tags/io/goobi/badge.xhtml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp/resources}/tags/io/goobi/dropdown.xhtml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp/resources}/tags/io/goobi/input.xhtml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp/resources}/tags/io/goobi/multiselect.xhtml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp/resources}/tags/io/goobi/readonly.xhtml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp/resources}/tags/io/goobi/textarea.xhtml (100%) rename {plugin/src/main/resources/GUI/META-INF => module-gui/src/main/webapp}/resources/uii/plugin_administration_archive_management.xhtml (100%) delete mode 100644 plugin/.classpath delete mode 100644 plugin/.gitignore delete mode 100644 plugin/.project delete mode 100644 plugin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 plugin/.settings/org.eclipse.m2e.core.prefs delete mode 100644 plugin/.settings/org.jboss.ide.eclipse.as.core.prefs delete mode 100644 plugin/module-gui/.gitignore delete mode 100644 plugin/module-gui/pom.xml delete mode 100644 plugin/module-main/.gitignore delete mode 100644 plugin/module-main/pom.xml delete mode 100644 plugin/pom.xml delete mode 100644 plugin/src/test/resources/.gitignore rename plugin/plugin_intranda_administration_archive_management.xml => plugin_intranda_administration_archive_management.xml (100%) create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f88813 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ + +# Junk files +*~ +.DS_Store + +# Build +target/ +bin/ +build/ +node_modules/ + +# Eclipse +.project +.classpath +.settings/ + +# IntelliJ IDEA +.idea +*.iml + diff --git a/Jenkinsfile b/Jenkinsfile index 408fb06..1d5c15f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,9 +1,13 @@ + pipeline { agent { docker { - image 'maven:3-jdk-11' - args '-v $HOME/.m2:/var/maven/.m2:z -u 1000 -ti -e _JAVA_OPTIONS=-Duser.home=/var/maven -e MAVEN_CONFIG=/var/maven/.m2' + /* using a custom build image with a defined home directory for UID 1000 among other things */ + image 'nexus.intranda.com:4443/maven:3.9.3-eclipse-temurin-17' + registryUrl 'https://nexus.intranda.com:4443' + registryCredentialsId 'jenkins-docker' + args '-v $HOME/.m2:/var/maven/.m2:z -v $HOME/.config:/var/maven/.config -v $HOME/.sonar:/var/maven/.sonar -u 1000 -ti -e _JAVA_OPTIONS=-Duser.home=/var/maven -e MAVEN_CONFIG=/var/maven/.m2' } } @@ -11,35 +15,52 @@ pipeline { buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '15', daysToKeepStr: '90', numToKeepStr: '') } - - stages { stage('prepare') { steps { - sh 'git clean -fdx' + sh 'git reset --hard HEAD && git clean -fdx' } } stage('build') { steps { - sh 'mvn -f plugin/pom.xml package' + sh 'mvn clean verify -U' recordIssues enabledForFailure: true, aggregatingResults: true, tools: [java(), javaDoc()] } } - - stage('deployment to maven repository') { - when { - anyOf { + + stage('sonarcloud') { + when { + anyOf { branch 'master' - } + branch 'sonar_*' } - steps { - sh 'mvn -f plugin/pom.xml deploy' + } + steps { + withCredentials([string(credentialsId: 'jenkins-sonarcloud', variable: 'TOKEN')]) { + sh 'mvn verify sonar:sonar -Dsonar.token=$TOKEN -U' } } + } + } - + post { + always { + junit "**/target/surefire-reports/*.xml" + step([ + $class : 'JacocoPublisher', + execPattern : '**/target/jacoco.exec', + classPattern : '**/target/classes/', + sourcePattern : '**/src/main/java', + exclusionPattern : '**/*Test.class' + ]) + recordIssues ( + enabledForFailure: true, aggregatingResults: false, + tools: [checkStyle(pattern: 'target/checkstyle-result.xml', reportEncoding: 'UTF-8')] + ) + dependencyCheckPublisher pattern: 'target/dependency-check-report.xml' + } success { archiveArtifacts artifacts: '**/target/*.jar, */plugin_*.xml, plugin_*.xml', fingerprint: true, onlyIfSuccessful: true } @@ -53,5 +74,3 @@ pipeline { } } } - -/* vim: set ts=2 sw=2 tw=120 et :*/ diff --git a/plugin/build.xml b/build.xml similarity index 100% rename from plugin/build.xml rename to build.xml diff --git a/module-base/pom.xml b/module-base/pom.xml new file mode 100644 index 0000000..47c33aa --- /dev/null +++ b/module-base/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + io.goobi.workflow.plugin + plugin-administration-archive-management + 24.03-SNAPSHOT + + plugin-administration-archive-management-base + jar + \ No newline at end of file diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java b/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java rename to module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java b/module-base/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java rename to module-base/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java b/module-base/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java rename to module-base/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/model/FieldValue.java b/module-base/src/main/java/de/intranda/goobi/plugins/model/FieldValue.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/model/FieldValue.java rename to module-base/src/main/java/de/intranda/goobi/plugins/model/FieldValue.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/model/NodeType.java b/module-base/src/main/java/de/intranda/goobi/plugins/model/NodeType.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/model/NodeType.java rename to module-base/src/main/java/de/intranda/goobi/plugins/model/NodeType.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/model/TitleComponent.java b/module-base/src/main/java/de/intranda/goobi/plugins/model/TitleComponent.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/model/TitleComponent.java rename to module-base/src/main/java/de/intranda/goobi/plugins/model/TitleComponent.java diff --git a/plugin/src/main/java/org/goobi/interfaces/IArchiveManagementAdministrationPlugin.java b/module-base/src/main/java/org/goobi/interfaces/IArchiveManagementAdministrationPlugin.java similarity index 100% rename from plugin/src/main/java/org/goobi/interfaces/IArchiveManagementAdministrationPlugin.java rename to module-base/src/main/java/org/goobi/interfaces/IArchiveManagementAdministrationPlugin.java diff --git a/plugin/src/main/java/org/goobi/interfaces/IEadEntry.java b/module-base/src/main/java/org/goobi/interfaces/IEadEntry.java similarity index 100% rename from plugin/src/main/java/org/goobi/interfaces/IEadEntry.java rename to module-base/src/main/java/org/goobi/interfaces/IEadEntry.java diff --git a/plugin/src/main/java/org/goobi/interfaces/IFieldValue.java b/module-base/src/main/java/org/goobi/interfaces/IFieldValue.java similarity index 100% rename from plugin/src/main/java/org/goobi/interfaces/IFieldValue.java rename to module-base/src/main/java/org/goobi/interfaces/IFieldValue.java diff --git a/plugin/src/main/java/org/goobi/interfaces/IMetadataField.java b/module-base/src/main/java/org/goobi/interfaces/IMetadataField.java similarity index 100% rename from plugin/src/main/java/org/goobi/interfaces/IMetadataField.java rename to module-base/src/main/java/org/goobi/interfaces/IMetadataField.java diff --git a/plugin/src/main/java/org/goobi/interfaces/INodeType.java b/module-base/src/main/java/org/goobi/interfaces/INodeType.java similarity index 100% rename from plugin/src/main/java/org/goobi/interfaces/INodeType.java rename to module-base/src/main/java/org/goobi/interfaces/INodeType.java diff --git a/plugin/src/main/resources/basex10/createDatabase.xq b/module-base/src/main/resources/basex10/createDatabase.xq similarity index 100% rename from plugin/src/main/resources/basex10/createDatabase.xq rename to module-base/src/main/resources/basex10/createDatabase.xq diff --git a/plugin/src/main/resources/basex10/eadNode.xq b/module-base/src/main/resources/basex10/eadNode.xq similarity index 100% rename from plugin/src/main/resources/basex10/eadNode.xq rename to module-base/src/main/resources/basex10/eadNode.xq diff --git a/plugin/src/main/resources/basex10/eadRecord.xq b/module-base/src/main/resources/basex10/eadRecord.xq similarity index 100% rename from plugin/src/main/resources/basex10/eadRecord.xq rename to module-base/src/main/resources/basex10/eadRecord.xq diff --git a/plugin/src/main/resources/basex10/findDb.xq b/module-base/src/main/resources/basex10/findDb.xq similarity index 100% rename from plugin/src/main/resources/basex10/findDb.xq rename to module-base/src/main/resources/basex10/findDb.xq diff --git a/plugin/src/main/resources/basex10/importFile.xq b/module-base/src/main/resources/basex10/importFile.xq similarity index 100% rename from plugin/src/main/resources/basex10/importFile.xq rename to module-base/src/main/resources/basex10/importFile.xq diff --git a/plugin/src/main/resources/basex10/listDatabases.xq b/module-base/src/main/resources/basex10/listDatabases.xq similarity index 100% rename from plugin/src/main/resources/basex10/listDatabases.xq rename to module-base/src/main/resources/basex10/listDatabases.xq diff --git a/plugin/src/main/resources/basex10/openDatabase.xq b/module-base/src/main/resources/basex10/openDatabase.xq similarity index 100% rename from plugin/src/main/resources/basex10/openDatabase.xq rename to module-base/src/main/resources/basex10/openDatabase.xq diff --git a/plugin/src/main/resources/basex10/uploadFile.xq b/module-base/src/main/resources/basex10/uploadFile.xq similarity index 100% rename from plugin/src/main/resources/basex10/uploadFile.xq rename to module-base/src/main/resources/basex10/uploadFile.xq diff --git a/plugin/src/main/resources/basex9/findDb.xq b/module-base/src/main/resources/basex9/findDb.xq similarity index 100% rename from plugin/src/main/resources/basex9/findDb.xq rename to module-base/src/main/resources/basex9/findDb.xq diff --git a/plugin/src/main/resources/basex9/importFile.xq b/module-base/src/main/resources/basex9/importFile.xq similarity index 100% rename from plugin/src/main/resources/basex9/importFile.xq rename to module-base/src/main/resources/basex9/importFile.xq diff --git a/plugin/src/main/resources/basex9/listDatabases.xq b/module-base/src/main/resources/basex9/listDatabases.xq similarity index 100% rename from plugin/src/main/resources/basex9/listDatabases.xq rename to module-base/src/main/resources/basex9/listDatabases.xq diff --git a/plugin/src/main/resources/basex9/openDatabase.xq b/module-base/src/main/resources/basex9/openDatabase.xq similarity index 100% rename from plugin/src/main/resources/basex9/openDatabase.xq rename to module-base/src/main/resources/basex9/openDatabase.xq diff --git a/plugin/src/test/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPluginTest.java b/module-base/src/test/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPluginTest.java similarity index 100% rename from plugin/src/test/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPluginTest.java rename to module-base/src/test/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPluginTest.java diff --git a/plugin/src/test/java/de/intranda/goobi/plugins/EadEntryTest.java b/module-base/src/test/java/de/intranda/goobi/plugins/EadEntryTest.java similarity index 100% rename from plugin/src/test/java/de/intranda/goobi/plugins/EadEntryTest.java rename to module-base/src/test/java/de/intranda/goobi/plugins/EadEntryTest.java diff --git a/plugin/src/test/resources/EAD.XML b/module-base/src/test/resources/EAD.XML similarity index 100% rename from plugin/src/test/resources/EAD.XML rename to module-base/src/test/resources/EAD.XML diff --git a/plugin/src/test/resources/ead3.xsd b/module-base/src/test/resources/ead3.xsd similarity index 100% rename from plugin/src/test/resources/ead3.xsd rename to module-base/src/test/resources/ead3.xsd diff --git a/plugin/src/test/resources/log4j2.xml b/module-base/src/test/resources/log4j2.xml similarity index 100% rename from plugin/src/test/resources/log4j2.xml rename to module-base/src/test/resources/log4j2.xml diff --git a/plugin/src/test/resources/plugin_intranda_administration_archive_management.xml b/module-base/src/test/resources/plugin_intranda_administration_archive_management.xml similarity index 100% rename from plugin/src/test/resources/plugin_intranda_administration_archive_management.xml rename to module-base/src/test/resources/plugin_intranda_administration_archive_management.xml diff --git a/module-gui/pom.xml b/module-gui/pom.xml new file mode 100644 index 0000000..5a64fac --- /dev/null +++ b/module-gui/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + + io.goobi.workflow.plugin + plugin-administration-archive-management + 24.03-SNAPSHOT + + plugin-administration-archive-management-gui + jar + + + + META-INF/resources + src/main/webapp/resources + + + + \ No newline at end of file diff --git a/module-gui/src/main/webapp/META-INF/faces-config.xml b/module-gui/src/main/webapp/META-INF/faces-config.xml new file mode 100644 index 0000000..0448938 --- /dev/null +++ b/module-gui/src/main/webapp/META-INF/faces-config.xml @@ -0,0 +1,33 @@ + + + + + + + + + org.goobi.production.messages.MyRessourceBundle + msgs + + + diff --git a/plugin/src/main/resources/GUI/META-INF/intranda.taglib.xml b/module-gui/src/main/webapp/META-INF/intranda.taglib.xml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/intranda.taglib.xml rename to module-gui/src/main/webapp/META-INF/intranda.taglib.xml diff --git a/plugin/src/main/resources/GUI/META-INF/tags/io/goobi/area.xhtml b/module-gui/src/main/webapp/resources/tags/io/goobi/area.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/tags/io/goobi/area.xhtml rename to module-gui/src/main/webapp/resources/tags/io/goobi/area.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/tags/io/goobi/badge.xhtml b/module-gui/src/main/webapp/resources/tags/io/goobi/badge.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/tags/io/goobi/badge.xhtml rename to module-gui/src/main/webapp/resources/tags/io/goobi/badge.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/tags/io/goobi/dropdown.xhtml b/module-gui/src/main/webapp/resources/tags/io/goobi/dropdown.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/tags/io/goobi/dropdown.xhtml rename to module-gui/src/main/webapp/resources/tags/io/goobi/dropdown.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/tags/io/goobi/input.xhtml b/module-gui/src/main/webapp/resources/tags/io/goobi/input.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/tags/io/goobi/input.xhtml rename to module-gui/src/main/webapp/resources/tags/io/goobi/input.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/tags/io/goobi/multiselect.xhtml b/module-gui/src/main/webapp/resources/tags/io/goobi/multiselect.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/tags/io/goobi/multiselect.xhtml rename to module-gui/src/main/webapp/resources/tags/io/goobi/multiselect.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/tags/io/goobi/readonly.xhtml b/module-gui/src/main/webapp/resources/tags/io/goobi/readonly.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/tags/io/goobi/readonly.xhtml rename to module-gui/src/main/webapp/resources/tags/io/goobi/readonly.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/tags/io/goobi/textarea.xhtml b/module-gui/src/main/webapp/resources/tags/io/goobi/textarea.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/tags/io/goobi/textarea.xhtml rename to module-gui/src/main/webapp/resources/tags/io/goobi/textarea.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_administration_archive_management.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_administration_archive_management.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_administration_archive_management.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_administration_archive_management.xhtml diff --git a/plugin/.classpath b/plugin/.classpath deleted file mode 100644 index 831b888..0000000 --- a/plugin/.classpath +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plugin/.gitignore b/plugin/.gitignore deleted file mode 100644 index 07ec78b..0000000 --- a/plugin/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/bin/ -/target/ -.DS_Store \ No newline at end of file diff --git a/plugin/.project b/plugin/.project deleted file mode 100644 index d89c1c7..0000000 --- a/plugin/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - goobi-plugin-administration-archive-management - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/plugin/.settings/org.eclipse.jdt.core.prefs b/plugin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 3a0745f..0000000 --- a/plugin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,16 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/plugin/.settings/org.eclipse.m2e.core.prefs b/plugin/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/plugin/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/plugin/.settings/org.jboss.ide.eclipse.as.core.prefs b/plugin/.settings/org.jboss.ide.eclipse.as.core.prefs deleted file mode 100644 index cf3aa3a..0000000 --- a/plugin/.settings/org.jboss.ide.eclipse.as.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.jboss.ide.eclipse.as.core.singledeployable.deployableList= diff --git a/plugin/module-gui/.gitignore b/plugin/module-gui/.gitignore deleted file mode 100644 index 7326dd9..0000000 --- a/plugin/module-gui/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target/ -.DS_Store \ No newline at end of file diff --git a/plugin/module-gui/pom.xml b/plugin/module-gui/pom.xml deleted file mode 100644 index 3ec5b5a..0000000 --- a/plugin/module-gui/pom.xml +++ /dev/null @@ -1,88 +0,0 @@ - - 4.0.0 - de.intranda.goobi.plugins.administration - archive-management-gui - 24.02 - - plugin_intranda_administration_archive_management-GUI - /opt/digiverso/goobi/plugins/GUI/ - - - de.intranda.goobi.plugins.administration - archive-management - 24.02 - - - ${jar.name} - ${project.basedir}/../src/main/java - - - ../src/main/resources/GUI - - - ../src/main/java - - **/*.java - - - **/goobi/interfaces/I*.class - - - - - - maven-compiler-plugin - 3.7.0 - - - **/de/intranda/goobi/**/*.java - - - - - org.codehaus.mojo - buildnumber-maven-plugin - 1.4 - - - validate - - create - - - - - 10 - false - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.0 - - - - ${maven.build.timestamp} - - - - Versions - - ${project.version} - ${buildNumber} - ${scmBranch} - ${goobi.version} - - - - - - - - - - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-administration-archive.git - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-administration-archive.git - - diff --git a/plugin/module-main/.gitignore b/plugin/module-main/.gitignore deleted file mode 100644 index e89d4af..0000000 --- a/plugin/module-main/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target/ -.DS_Store diff --git a/plugin/module-main/pom.xml b/plugin/module-main/pom.xml deleted file mode 100644 index 429abf3..0000000 --- a/plugin/module-main/pom.xml +++ /dev/null @@ -1,118 +0,0 @@ - - 4.0.0 - de.intranda.goobi.plugins.administration - archive-management-main - 24.02 - - plugin_intranda_administration_archive_management - /opt/digiverso/goobi/plugins/administration/ - - - de.intranda.goobi.plugins.administration - archive-management - 24.02 - - - ${jar.name} - ${project.basedir}/../src/main/java - ${project.basedir}/../src/test/java - - - ${project.basedir}/../src/test/resources - - - - - src/main/java - - **/org/goobi/interfaces/* - - - - - - maven-compiler-plugin - 3.7.0 - - - **/org/goobi/interfaces/* - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.22.1 - - false - --add-exports java.base/jdk.internal.loader=ALL-UNNAMED - - - - pl.project13.maven - git-commit-id-plugin - 2.2.1 - - - - revision - - - - - flat - - true - - - - - org.codehaus.mojo - buildnumber-maven-plugin - 1.4 - - - validate - - create - - - - - 10 - false - - - - org.apache.maven.plugins - maven-jar-plugin - 3.1.0 - - - **/org/goobi/interfaces/* - - - - ${maven.build.timestamp} - - - - Versions - - ${project.version} - ${buildNumber} - ${scmBranch} - ${goobi.version} - - - - - - - - - - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-administration-archive.git - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-administration-archive.git - - diff --git a/plugin/pom.xml b/plugin/pom.xml deleted file mode 100644 index 6bf1ac8..0000000 --- a/plugin/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - 4.0.0 - de.intranda.goobi.plugins.administration - archive-management - 24.02 - pom - - 24.02 - 1.8 - 1.8 - - - - intranda-public - https://nexus.intranda.com/repository/maven-public - - - - - intranda-releases - https://nexus.intranda.com/repository/maven-releases - - - intranda-snapshots - https://nexus.intranda.com/repository/maven-snapshots - - - - module-main - module-gui - - - - de.intranda.goobi.workflow - goobi-core-jar - ${goobi.version} - - - org.projectlombok - lombok - 1.18.6 - provided - - - - junit - junit - 4.13.1 - test - - - org.easymock - easymock - 4.3 - test - - - - org.powermock - powermock-api-easymock - 2.0.9 - test - - - - org.powermock - powermock-module-junit4 - 2.0.9 - test - - - diff --git a/plugin/src/test/resources/.gitignore b/plugin/src/test/resources/.gitignore deleted file mode 100644 index 496ee2c..0000000 --- a/plugin/src/test/resources/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.DS_Store \ No newline at end of file diff --git a/plugin/plugin_intranda_administration_archive_management.xml b/plugin_intranda_administration_archive_management.xml similarity index 100% rename from plugin/plugin_intranda_administration_archive_management.xml rename to plugin_intranda_administration_archive_management.xml diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..4c06971 --- /dev/null +++ b/pom.xml @@ -0,0 +1,30 @@ + + 4.0.0 + + io.goobi.workflow + workflow-base + 24.03-SNAPSHOT + + + io.goobi.workflow.plugin + plugin-administration-archive-management + pom + + module-base + module-gui + + + + intranda-public + https://nexus.intranda.com/repository/maven-public + + + + + io.goobi.workflow + workflow-core + ${project.version} + classes + + + \ No newline at end of file From 39baad1973e1e007a91174245de3a9970badad20 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Thu, 7 Mar 2024 14:31:42 +0100 Subject: [PATCH 02/20] added option to duplicate selected node --- ...ArchiveManagementAdministrationPlugin.java | 28 +- .../goobi/plugins/model/EadEntry.java | 63 +++- .../goobi/plugins/model/EadMetadataField.java | 13 + .../java/org/goobi/interfaces/IEadEntry.java | 2 + .../org/goobi/interfaces/IMetadataField.java | 4 +- ...in_administration_archive_management.xhtml | 343 ++++++++---------- 6 files changed, 256 insertions(+), 197 deletions(-) diff --git a/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java b/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java index 3b10be3..33aa734 100644 --- a/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java +++ b/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java @@ -286,15 +286,12 @@ public List getPossibleDatabases() { List databaseList = root.getChildren("database"); for (Element db : databaseList) { String dbName = db.getChildText("name"); - Element details = db.getChild("details"); for (Element resource : details.getChildren()) { databases.add(dbName + " - " + resource.getText()); } - } } - dbOK = true; } else { Helper.setFehlerMeldung("plugin_administration_archive_noConnectionToDatabase"); @@ -2397,4 +2394,29 @@ public List getProcessWithNodeIds(List lstNodesWithoutIds) { return processIds; } + /** + * duplicate selected node and insert it as the last sibling + */ + + public void duplicateNode() { + // abort if no node is selected + if (selectedEntry == null) { + return; + } + if (selectedEntry.getNodeType() == null) { + return; + } + + // abort if root node is selected + if (selectedEntry.getParentNode() == null) { + return; + } + + IEadEntry copy = selectedEntry.deepCopy(); + if (copy != null) { + selectedEntry.getParentNode().addSubEntry(copy); + } + + } + } diff --git a/module-base/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java b/module-base/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java index e06efc8..0538083 100644 --- a/module-base/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java +++ b/module-base/src/main/java/de/intranda/goobi/plugins/model/EadEntry.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.UUID; import org.goobi.interfaces.IEadEntry; import org.goobi.interfaces.IMetadataField; @@ -147,7 +148,7 @@ public List getMoveToDestinationList(IEadEntry entry) { List list = new LinkedList<>(); list.add(this); - if (entry.equals(this)) { + if (this.equals(entry)) { setSelectable(false); parentNode.setSelectable(false); } else if (subEntryList != null) { @@ -342,4 +343,64 @@ public boolean isDescriptionControlAreaVisible() { } return false; } + + @Override + public IEadEntry deepCopy() { + IEadEntry other = new EadEntry(orderNumber, hierarchy); + other.setNodeType(nodeType); + other.setDisplayChildren(true); + other.setLabel(label); + + // create new id + other.setId(String.valueOf(UUID.randomUUID())); + + // copy all metadata + for (IMetadataField field : identityStatementAreaList) { + IMetadataField otherField = field.copy(); + otherField.setEadEntry(other); + other.getIdentityStatementAreaList().add(otherField); + } + + for (IMetadataField field : contextAreaList) { + IMetadataField otherField = field.copy(); + otherField.setEadEntry(other); + other.getContextAreaList().add(otherField); + } + for (IMetadataField field : contentAndStructureAreaAreaList) { + IMetadataField otherField = field.copy(); + otherField.setEadEntry(other); + other.getContentAndStructureAreaAreaList().add(otherField); + } + + for (IMetadataField field : accessAndUseAreaList) { + IMetadataField otherField = field.copy(); + otherField.setEadEntry(other); + other.getAccessAndUseAreaList().add(otherField); + } + + for (IMetadataField field : alliedMaterialsAreaList) { + IMetadataField otherField = field.copy(); + otherField.setEadEntry(other); + other.getAlliedMaterialsAreaList().add(otherField); + } + + for (IMetadataField field : notesAreaList) { + IMetadataField otherField = field.copy(); + otherField.setEadEntry(other); + other.getNotesAreaList().add(otherField); + } + + for (IMetadataField field : descriptionControlAreaList) { + IMetadataField otherField = field.copy(); + otherField.setEadEntry(other); + other.getDescriptionControlAreaList().add(otherField); + } + + // copy all children + for (IEadEntry child : subEntryList) { + other.addSubEntry(child.deepCopy()); + } + + return other; + } } diff --git a/module-base/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java b/module-base/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java index 6322e45..8733ffe 100644 --- a/module-base/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java +++ b/module-base/src/main/java/de/intranda/goobi/plugins/model/EadMetadataField.java @@ -148,4 +148,17 @@ public void deleteValue(IFieldValue value) { } } + + @Override + public IMetadataField copy() { + IMetadataField field = new EadMetadataField(name, level, xpath, xpathType, repeatable, visible, showField, + fieldType, metadataName, importMetadataInChild, validationType, regularExpression); + field.setSelectItemList(selectItemList); + for (IFieldValue val : values) { + IFieldValue newValue = new FieldValue(this); + newValue.setValue(val.getValue()); + field.addFieldValue(newValue); + } + return field; + } } diff --git a/module-base/src/main/java/org/goobi/interfaces/IEadEntry.java b/module-base/src/main/java/org/goobi/interfaces/IEadEntry.java index 390cd95..c04c30a 100644 --- a/module-base/src/main/java/org/goobi/interfaces/IEadEntry.java +++ b/module-base/src/main/java/org/goobi/interfaces/IEadEntry.java @@ -122,4 +122,6 @@ public interface IEadEntry { public boolean isDescriptionControlAreaVisible(); + public IEadEntry deepCopy(); + } \ No newline at end of file diff --git a/module-base/src/main/java/org/goobi/interfaces/IMetadataField.java b/module-base/src/main/java/org/goobi/interfaces/IMetadataField.java index f5f6e95..c03b529 100644 --- a/module-base/src/main/java/org/goobi/interfaces/IMetadataField.java +++ b/module-base/src/main/java/org/goobi/interfaces/IMetadataField.java @@ -30,12 +30,12 @@ public interface IMetadataField { public boolean isVisible(); - public boolean isValid(); public void setVisible(boolean value); public boolean isShowField(); + public void setShowField(boolean value); public void setValid(boolean value); @@ -80,4 +80,6 @@ public interface IMetadataField { public void deleteValue(IFieldValue value); + public IMetadataField copy(); + } diff --git a/module-gui/src/main/webapp/resources/uii/plugin_administration_archive_management.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_administration_archive_management.xhtml index 4349524..ccab1bc 100644 --- a/module-gui/src/main/webapp/resources/uii/plugin_administration_archive_management.xhtml +++ b/module-gui/src/main/webapp/resources/uii/plugin_administration_archive_management.xhtml @@ -1,4 +1,5 @@ - - - + - +
-

- +

- + - -
-

#{msgs.plugin_administration_archive_selectionHeading}

-

#{msgs.plugin_administration_archive_selectionText}

+

#{msgs.plugin_administration_archive_selectionText}

- + - + - + - + - + - +
-

#{msgs.plugin_administration_archive_creationHeading}

-

#{msgs.plugin_administration_archive_creation_selectDatabase}

+

#{msgs.plugin_administration_archive_creation_selectDatabase}

- + -

#{msgs.plugin_administration_archive_creation_filename}

+

#{msgs.plugin_administration_archive_creation_filename}

- + - - + + - +
- - -

#{msgs.plugin_administration_archive_uploadHeading}

-

#{msgs.plugin_administration_archive_creation_selectDatabase}

+

#{msgs.plugin_administration_archive_creation_selectDatabase}

- + -

#{msgs.plugin_administration_archive_creation_uploadFile}

- +

#{msgs.plugin_administration_archive_creation_uploadFile}

+ - - + + - + - + - - + + @@ -541,8 +532,7 @@ div.no-element-selected { styleClass="btn btn-primary font-size-s pull-right margin-top-10" action="#{AdministrationForm.administrationPlugin.upload}" rendered="#{not AdministrationForm.administrationPlugin.fileToUploadExists}"> - + - +
- +
@@ -570,28 +559,30 @@ div.no-element-selected { - + id="ead-details" + prependId="false">
-
+
-

- +

-
-
+
-
+
- +
@@ -620,8 +609,7 @@ div.no-element-selected { action="#{AdministrationForm.administrationPlugin.search}" />
-
+
- + @@ -662,15 +649,13 @@ div.no-element-selected { value=" - " rendered="#{entry.label == null}" /> - +