diff --git a/.github/workflows/develop-build.yml b/.github/workflows/develop-build.yml new file mode 100644 index 0000000..78664d9 --- /dev/null +++ b/.github/workflows/develop-build.yml @@ -0,0 +1,47 @@ +name: Publish Development Build + +permissions: + contents: write + +on: + push: + branches: + - 'develop' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out source code + uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + - name: Set up Maven cache + uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven + run: mvn clean verify -U -P snapshot-build + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %Z')" + - name: Create tag name from date + id: tagdate + run: echo "::set-output name=tagdate::$(date +'%Y-%m-%d_%H-%M-%S_%Z')" + - name: Release + id: create_release + uses: softprops/action-gh-release@v2 + with: + name: ${{ steps.date.outputs.date }} + tag_name: ${{ steps.tagdate.outputs.tagdate }} + generate_release_notes: true + draft: false + prerelease: true + files: | + **/target/*.jar + install/* diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml new file mode 100644 index 0000000..e3a9552 --- /dev/null +++ b/.github/workflows/release-build.yml @@ -0,0 +1,40 @@ +name: Publish Release Build + +permissions: + contents: write + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out source code + uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + - name: Set up Maven cache + uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven + run: mvn clean verify -U -P release-build + - name: Release + id: create_release + uses: softprops/action-gh-release@v2 + with: + name: Release ${{ github.ref_name }} + generate_release_notes: true + draft: false + prerelease: false + files: | + **/target/*.jar + install/* diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 2bf9ae4..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: Build and upload to release - -on: - push: - branch: - - 'master' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Check out source code - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Set up Maven cache - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Build with Maven - run: mvn package --file plugin/pom.xml -DskipTests - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %Z')" - - name: Create tag name from date - id: tagdate - run: echo "::set-output name=tagdate::$(date +'%Y-%m-%d_%H-%M-%S_%Z')" - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ steps.tagdate.outputs.tagdate }} - release_name: ${{ steps.date.outputs.date }} - draft: false - prerelease: false - - name: Upload main asset - id: upload-main-asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: plugin/module-main/target/plugin_intranda_workflow_aeon_process_creation.jar - asset_name: plugin_intranda_workflow_aeon_process_creation.jar - asset_content_type: application/jar - - name: Upload GUI asset - id: upload-gui-asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: plugin/module-gui/target/plugin_intranda_workflow_aeon_process_creation-GUI.jar - asset_name: plugin_intranda_workflow_aeon_process_creation-GUI.jar - asset_content_type: application/jar - - name: Upload Config asset - id: upload-config-asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: plugin/plugin_intranda_workflow_aeon_process_creation.xml - asset_name: plugin_intranda_workflow_aeon_process_creation.xml - asset_content_type: text/xml \ No newline at end of file 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 2c41a74..13cb478 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,26 +15,119 @@ 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') { + stage('build-snapshot') { + when { + not { + anyOf { + branch 'master' + branch 'release_*' + allOf { + branch 'PR-*' + expression { env.CHANGE_BRANCH.startsWith("release_") } + } + } + } + } + steps { + sh 'mvn clean verify -U -P snapshot-build' + } + } + stage('build-release') { + when { + anyOf { + branch 'master' + branch 'release_*' + allOf { + branch 'PR-*' + expression { env.CHANGE_BRANCH.startsWith("release_") } + } + } + } + steps { + sh 'mvn clean verify -U -P release-build' + } + } + stage('sonarcloud') { + when { + anyOf { + branch 'master' + branch 'release_*' + branch 'sonar_*' + allOf { + branch 'PR-*' + expression { env.CHANGE_BRANCH.startsWith("release_") } + } + } + } steps { - sh 'mvn -f plugin/pom.xml deploy' - recordIssues enabledForFailure: true, aggregatingResults: true, tools: [java(), javaDoc()] + withCredentials([string(credentialsId: 'jenkins-sonarcloud', variable: 'TOKEN')]) { + sh 'mvn verify sonar:sonar -Dsonar.token=$TOKEN -U' + } + } + } + stage('deploy-libs') { + when { + anyOf { + branch 'master' + branch 'develop' + } + } + steps { + script { + if (fileExists('module-lib/pom.xml')) { + sh 'mvn -N deploy' + sh 'mvn -f module-lib/pom.xml deploy' + } + } + } + } + stage('tag release') { + when { branch 'master' } + steps { + withCredentials([gitUsernamePassword(credentialsId: '93f7e7d3-8f74-4744-a785-518fc4d55314', + gitToolName: 'git-tool')]) { + sh '''#!/bin/bash -xe + projectversion=$(mvn org.apache.maven.plugins:maven-help-plugin:3.4.0:evaluate -Dexpression=project.version -q -DforceStdout) + if [ $? != 0 ] + then + exit 1 + elif [[ "${projectversion}" =~ "SNAPSHOT" ]] + then + echo "This is a SNAPSHOT version" + exit 1 + fi + echo "${projectversion}" + git tag -a "v${projectversion}" -m "releasing v${projectversion}" && git push origin v"${projectversion}" + ''' + } } } } - + post { + always { + junit allowEmptyResults: true, testResults: "**/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 + archiveArtifacts artifacts: '**/target/*.jar, install/*', fingerprint: true, onlyIfSuccessful: true } changed { emailext( @@ -42,5 +139,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/docs/index_de.md b/docs/index_de.md deleted file mode 100644 index db60557..0000000 --- a/docs/index_de.md +++ /dev/null @@ -1,265 +0,0 @@ ---- -description: >- - Dies ist ein Workflow Plugin für den Goobi workflow. Es ermöglicht die Erstellung mehrerer Goobi Vorgäng auf der Grundlage einer ersten AEON-Anfrage. Es ermöglicht die manuelle Auswahl von Elementen aus der AEON-Antwort, um zu entscheiden, für welche Elemente ein Goobi Vorgang erzeugt werden soll. - ---- - -AEON Datenübernahme -=========================================================================== - - -Einführung ---------------------------------------------------------------------------- -Mit diesem Plugin können einzelne Datensätze aus AEON abgefragt werden. Nachdem ein Datensatz abgefragt wurde, werden alle Metadaten aus der sog. Metadata Cloud abgefragt und aufgelistet. Der Nutzer kann anschließend auswählen, welche Datensätze er als Goobi-Vorgang anlegen möchte. - - -Übersicht ---------------------------------------------------------------------------- - -Details | Erläuterung -------------------- | ----------------------------------------------------- -Identifier | intranda_workflow_aeon_process_creation -Source code | [https://github.com/intranda/goobi-plugin-workflow-aeon-process-creation](https://github.com/intranda/goobi-plugin-workflow-aeon-process-creation) -Lizenz | GPL 2.0 oder neuer -Dokumentationsdatum | 05.11.2021 - - -Arbeitsweise des Plugins ---------------------------------------------------------------------------- - -Wenn der Nutzer über die Berechtigung zur Nutzung des Plugins verfügt, kann Im Menüpunkt `Worklow` das Plugin `AEON Abfrage Plugin` geöffnet werden. - -![Geöffnetes Plugin ohne ausgeführte Suche](intranda_workflow_aeon_process_creation3_de.png) - -Hier kann nun ein Transaction identifier eingetragen werden, um die Suche nach einem AEON-Record zu starten. - -![Anzeige der Daten nach Ausführung einer Suche](intranda_workflow_aeon_process_creation4_de.png) - -Wenn eine erfolgreiche Suche durchgeführt wurde, wurde der Bereich `Abfragedetails` mit den Feldern gefüllt, die innerhalb der Konfiguration im Bereich `` festgelegt wurden. Im Bereich `Eigenschaften für alle Vorgänge` werden die frei definierbaren Eigenschaften aus dem Konfigurationsbereich `` angezeigt. - -Diese Felder lassen sich bearbeiten, sofern dies in der Konfigurationsdatei vorgesehen wurde. Verstöße gegen die Validierung werden unmittelbar bei den einzelnen Feldern angezeigt. - -Im rechten Bereich der Nutzeroberfläche werden die einzelnen ermittelten Datensätze aufgelistet, die innerhalb der Metadata Cloud zu dem Barcode des AEON-Records gefunden wurden. Jede Box stellt hierbei einen eigenständigen Datensatz dar. Mehr Details eines Datensatzes lassen sich anzeigen, indem weitere Felder der Boxen ausgeklappt werden. Über die entsprechenden Icons pro Box lassen sich diejenigen Datensätze auswählen, für die Vorgänge in Goobi erzeugt werden sollen. - -![Ausgeklappte Boxen mit weiteren angezeigten Feldern](intranda_workflow_aeon_process_creation5_de.png) - -Sofern mindestens ein Datensatz ausgewählt wurde und keine unerfüllten strikten Validierungen vorliegen, lassen sich mittels Klick auf den Button `Vorgänge anlegen` die einzelnen Goobi-Vorgänge für die ausgewählten Datensätze auf der Basis der konfigurierten Produktionsvorlage anlegen. Anschließend gelangt der Nutzer somit auf eine weitere Ansicht. - -![Zweite Seite mit der Möglichkeit einen Laufzettel herunterzuladen](intranda_workflow_aeon_process_creation6_de.png) - -Hier werden im linken Bereich noch einmal diejenigen Datensätze aufgeführt, für die Vorgänge in Goobi angelegt wurden. Im rechten Bereich steht die Möglichkeit zur Verfügung einen Laufzettel für alle erzeugten Vorgänge zu generieren und herunterzuladen, wo die zugehörigen Vorgänge alle innerhalb eines gemeinsamen Batches zusammengefasst aufgeführt werden. - - -Installation ---------------------------------------------------------------------------- -Das Plugin besteht insgesamt aus den folgenden zu installierenden Dateien: - -```text -plugin_intranda_workflow_aeon_process_creation.jar -plugin_intranda_workflow_aeon_process_creation-GUI.jar -plugin_intranda_workflow_aeon_process_creation.xml -``` - -Diese Dateien müssen in den richtigen Verzeichnissen installiert werden, so dass diese nach der Installation unter den folgenden Pfaden vorliegen: - -```bash -/opt/digiverso/goobi/plugins/workflow/plugin_intranda_workflow_aeon_process_creation.jar -/opt/digiverso/goobi/plugins/GUI/plugin_intranda_workflow_aeon_process_creation-GUI.jar -/opt/digiverso/goobi/config/plugin_intranda_workflow_aeon_process_creation.xml -``` - - -Konfiguration ---------------------------------------------------------------------------- -Die Konfiguration des Plugins erfolgt über die Konfigurationsdatei `plugin_intranda_workflow_aeon_process_creation.xml` und kann im laufenden Betrieb angepasst werden. Im folgenden ist eine beispielhafte Konfigurationsdatei aufgeführt: - -```xml - - - https://example.com/api - 1234567890 - username - password - - - - digitisation on demand - metadata cloud - - - - - Transaction Identifier - input - Transaction Identifier - This is my description for the field so that everyone gets some help. - \d+ - Your content does not follow our validation guidelines - - - - Creation Date - input - Creation date - This is my description for the field so that everyone gets some help. - Your content does not follow our validation guidelines - - - - Title - input - Main title - Transmission - This is my description for the field so that everyone gets some help. - - - - Document type - input - Doc type - This is my description for the field so that everyone gets some help. - - - - User Name - input - User - This is my description for the field so that everyone gets some help. - - - - - - Strict validation example - input - Strict field - no numeric value - This is my description for the field so that everyone gets some help. - \d+ - Value is no number - - - - Loose validation example - input - Loose field - no numeric value - This is my description for the field so that everyone gets some help. - \d+ - Value is no number - - - - no validation example - input - Text field - default value - This is my description for the field so that everyone gets some help. - Your content does not follow our validation guidelines - - - Dropdown example - select - CoWorker - Steffen - - - - This is my description for the field so that everyone gets some help. - - - - Vocabulary example - vocabulary - Vocabulary - Subject terms - type=Person - This is my description for the field so that everyone gets some help. - - - Boolean example - checkbox - Status - true - This is my description for the field so that everyone gets some help. - - - - - - Bib Identifier - input - Text field - This is my description for the field so that everyone gets some help. - - - Item Title - input - Text field - This is my description for the field so that everyone gets some help. - - - Item Identifier - input - Text field - This is my description for the field so that everyone gets some help. - - - Holding Identifier - input - Text field - This is my description for the field so that everyone gets some help. - - - Record type - select - publication - - - This is my description for the field so that everyone gets some help. - - - Collection - input - Text field - This is my description for the field so that everyone gets some help. - - - -``` - -Innerhalb des Bereiches `` werden die Zugangsdaten verwaltet. Hier müssen die URL zur RESTful API von AEON sowie Nutzername und Passwort hinterlegt werden. Soll alternativ ein Key für die Verwendung der API genutzt werden muss dieser angegeben werden. - -Im Block `` kann definiert werden, welche OPAC-Konfiguration zur Anfrage von Katalogdaten genutzt werden soll und auf Basis welcher Produktionsvorlage die einzelnen Vorgänge erzeugt werden sollen. - -Anschließend erfolgt die Konfiguration der angezeigten und importierbaren Felder. Dies ist in 3 Bereiche aufgeteilt. Der Bereich `` enthält diejenigen Felder, die aus dem AEON-Record gelesen werden. Der Bereich `` enthält frei definierbare Eigenschaften, die zu den zu erzeugenden Vorgängen gehören. Und der Bereich `` enthält die Felder, die bei der Abfrage der Daten aus der Metadata Cloud bezogen wurden. - -Die Konfiguration innerhalb der drei Bereiche ist annähernd identisch. Jedes Feld wird jeweils durch ein Element `` definiert. Innerhalb davon sind anschließend folgende Möglichkeiten vorgesehen: - -Parameter | Erläuterung -------------------- | ----------------------------------------------------- -`title` | Anzeigename des Feldes -`type` | Typ des Feldes, mögliche Werte sind `input`, `select`, `vocabulary`, `checkbox` -`readonly` | Die Werte `true` oder `false` definieren, ob der Inhalt des Feldes bearbeitet werden darf. -`aeon` | Name des json Elements, aus dem das Feld befüllt wird. Dieser Parameter wird für die frei definierbare Eigenschaften nicht ausgewertet. -`displayAlways` | Die Werte `true` oder `false` definieren, ob das Feld angezeigt wird, wenn nur ein minimierter Datensatz angezeigt wird. Dieser Parameter wird ausschließlich für die Felder aus der Metadata Cloud ausgewertet. -`displayInTitle` | Die Werte `true` oder `false` definieren, ob das Feld innerhalb der Kopfzeile der Box aufgeführt wird. Dieser Parameter wird ausschließlich für die Felder aus der Metadata Cloud ausgewertet. -`variable` | Dieser Parameter definiert den Namen der zu erstellenden Eigenschaft. Dieser Parameter wird für Daten aus der Metadata Cloud nicht ausgewertet. -`place` | Hier wird der Typ der Eigenschaft festgelegt. Mögliche Werte sind `work` (Werkstückeigenschaft), `process` (Vorgangseigenschaft), `template` (Vorlageneigenschaft). -`value` | Mit diesem Parameter kann ein Default Wert festgelegt werden. Falls ein AEON Element konfiguriert und durch die Abfrage erhalten wurde, wird der konfigurierte default Wert mit dem Inhalt aus AEON überschrieben. -`help` | Mit diesem Parameter läßt sich ein Hilfetext definieren der optional angezeigt werden kann. -`validation` | Dieser Parameter definiert einen regulären Ausdruck, gegen den der Feldinhalt validiert werden kann. -`strict` | Die Werte `true` oder `false` definieren, ob ein Verstoß gegen die Validierung zwingend behoben werden muss, bevor Vorgänge angelegt werden können. -`message` | Dieser Parameter legt eine Meldung fest, die im Falle von Validierungsfehlern angezeigt werden soll. -`vocabularyName` | Dieser Parameter definiert ein zu nutzendes Vokabular. -`vocabularyField` | Mit dem Parameter `fieldname=value` kann das Trefferset auf Werte eingeschränkt werden, die diese Definition erfüllen. Das Feld ist wiederholbar, um mehrere Einschränkungen gleichzeitig zu definieren. - -Einrichtung benötigter Berechtigungen ---------------------------------------------------------------------------- -Dieses Plugin verfügt über eine eigene Berechtigungsstufe für die Verwendung. Aus diesem Grund müssen Nutzer über die erforderlichen Rechte verfügen. Bitte weisen Sie daher der Benutzergruppe der entsprechenden Nutzer das folgende Recht zu: - -``` -Plugin_workflow_aeon_process_creation -``` - -![Korrekt zugewiesenes Recht für die Nutzer](intranda_workflow_aeon_process_creation2_de.png) \ No newline at end of file diff --git a/docs/index_en.md b/docs/index_en.md deleted file mode 100644 index 8b49de8..0000000 --- a/docs/index_en.md +++ /dev/null @@ -1,264 +0,0 @@ ---- -description: >- - This is a Workflow Plugin for Goobi workflow. It allows to create multiple Goobi processes based on an initial AEON request. It allows to manually select items from the AEON response to decide for which items a Goobi process shall be started. - ---- - -AEON data transfer -=========================================================================== - - -Introduction ---------------------------------------------------------------------------- -This plugin can be used to query individual data sets from AEON. After a record has been queried, all metadata from the so-called Metadata Cloud are retrieved and listed. The user can then select which data sets he or she would like to create as a Goobi operation. - - -Overview ---------------------------------------------------------------------------- - -Details | Explanation -------------------- | ----------------------------------------------------- -Identifier | intranda_workflow_aeon_process_creation -Source code | [https://github.com/intranda/goobi-plugin-workflow-aeon-process-creation](https://github.com/intranda/goobi-plugin-workflow-aeon-process-creation) -Licence | GPL 2.0 or neeer -Documentation date | 05.11.2021 - - -How the plugin works ---------------------------------------------------------------------------- - -If the user has the authorisation to use the plugin, the plugin `AEON Query Plugin` can be opened in the menu item `Worklow`. - -![Opened plugin without executed search](intranda_workflow_aeon_process_creation3_en.png) - -A transaction identifier can now be entered here to start the search for an AEON record. - -![Displaying the data after performing a search](intranda_workflow_aeon_process_creation4_en.png) - -If a successful search was performed, the `query details` area was filled with the fields that were defined within the configuration in the `` area. In the area `Properties for all transactions` the freely definable properties from the configuration area `` are displayed. - -These fields can be edited if this has been provided for in the configuration file. Violations of the validation are displayed directly next to the individual fields. - -In the right-hand area of the user interface, the individual data records found within the Metadata Cloud for the barcode of the AEON record are listed. Each box represents an independent data record. More details of a data record can be displayed by expanding further fields of the boxes. The corresponding icons per box can be used to select the data sets for which processes are to be generated in Goobi. - -![Expanded boxes with additional fields displayed](intranda_workflow_aeon_process_creation5_en.png) - -Provided at least one record has been selected and there are no unfulfilled strict validations, clicking on the `Create processes` button allows the user to create the individual Goobi processes for the selected records based on the configured process template. This then takes the user to another view. - -![Second page with the option of downloading a docket](intranda_workflow_aeon_process_creation6_en.png) - -The left-hand pane lists the records for which processes have been created in Goobi. The right-hand pane offers the option of generating and downloading a docket for all created processes, where the associated processes are all listed together within a common batch. - -Installation ---------------------------------------------------------------------------- -The plug-in consists of the following files to be installed: - -```text -plugin_intranda_workflow_aeon_process_creation.jar -plugin_intranda_workflow_aeon_process_creation-GUI.jar -plugin_intranda_workflow_aeon_process_creation.xml -``` - -These files must be installed in the correct directories so that they are available under the following paths after installation: - -```bash -/opt/digiverso/goobi/plugins/workflow/plugin_intranda_workflow_aeon_process_creation.jar -/opt/digiverso/goobi/plugins/GUI/plugin_intranda_workflow_aeon_process_creation-GUI.jar -/opt/digiverso/goobi/config/plugin_intranda_workflow_aeon_process_creation.xml -``` - - -Configuration ---------------------------------------------------------------------------- -The plugin is configured via the configuration file `plugin_intranda_workflow_aeon_process_creation.xml` and can be adapted during operation. The following is an example configuration file: - -```xml - - - https://example.com/api - 1234567890 - username - password - - - - digitisation on demand - metadata cloud - - - - - Transaction Identifier - input - Transaction Identifier - This is my description for the field so that everyone gets some help. - \d+ - Your content does not follow our validation guidelines - - - - Creation Date - input - Creation date - This is my description for the field so that everyone gets some help. - Your content does not follow our validation guidelines - - - - Title - input - Main title - Transmission - This is my description for the field so that everyone gets some help. - - - - Document type - input - Doc type - This is my description for the field so that everyone gets some help. - - - - User Name - input - User - This is my description for the field so that everyone gets some help. - - - - - - Strict validation example - input - Strict field - no numeric value - This is my description for the field so that everyone gets some help. - \d+ - Value is no number - - - - Loose validation example - input - Loose field - no numeric value - This is my description for the field so that everyone gets some help. - \d+ - Value is no number - - - - no validation example - input - Text field - default value - This is my description for the field so that everyone gets some help. - Your content does not follow our validation guidelines - - - Dropdown example - select - CoWorker - Steffen - - - - This is my description for the field so that everyone gets some help. - - - - Vocabulary example - vocabulary - Vocabulary - Subject terms - type=Person - This is my description for the field so that everyone gets some help. - - - Boolean example - checkbox - Status - true - This is my description for the field so that everyone gets some help. - - - - - - Bib Identifier - input - Text field - This is my description for the field so that everyone gets some help. - - - Item Title - input - Text field - This is my description for the field so that everyone gets some help. - - - Item Identifier - input - Text field - This is my description for the field so that everyone gets some help. - - - Holding Identifier - input - Text field - This is my description for the field so that everyone gets some help. - - - Record type - select - publication - - - This is my description for the field so that everyone gets some help. - - - Collection - input - Text field - This is my description for the field so that everyone gets some help. - - - -``` - -The access data is managed within the `` area. The URL to the RESTful API of AEON as well as the user name and password must be stored here. If, alternatively, a key is to be used for the use of the API, this must be specified. - -In the block `` it can be defined which OPAC configuration is to be used to request catalogue data and on the basis of which production template the individual processes are to be created. - -This is followed by the configuration of the fields that are displayed and can be imported. This is divided into 3 areas. The area `` contains those fields that are read from the AEON record. The area `` contains freely definable properties that belong to the transactions to be created. And the area `` contains the fields that were obtained from the Metadata Cloud when querying the data. - -The configuration within the three areas is almost identical. Each field is defined by a `` element. Within this, the following options are subsequently provided: - -Parameter | Explanation -------------------- | ----------------------------------------------------- -`title` | display name of the field -`type` | Type of the field, possible values are `input`, `select`, `vocabulary`, `checkbox`. -`readonly` | The values `true` or `false` define whether the content of the field may be edited. -`aeon` | Name of the json element from which the field is filled. This parameter is not evaluated for the freely definable properties. -`displayAlways` | The values `true` or `false` define whether the field is displayed when only a minimised record is displayed. This parameter is only evaluated for the fields from the Metadata Cloud. -`displayInTitle` | The values `true` or `false` define whether the field is listed within the header of the box. This parameter is only evaluated for the fields from the Metadata Cloud. -`variable` | This parameter defines the name of the property to be created. This parameter is not evaluated for data from the Metadata Cloud. -`place` | This parameter defines the type of the property. Possible values are `work` (workpiece property), `process` (process property), `template` (template property). -`value` | This parameter can be used to set a default value. If an AEON element is configured and obtained by the query, the configured default value is overwritten with the content from AEON. -`help` | This parameter can be used to define a help text that can optionally be displayed. -`validation` | This parameter defines a regular expression against which the field content can be validated. -`strict` | The values `true` or `false` define whether a validation violation must be resolved before operations can be created. -`message` | This parameter specifies a message to be displayed in case of validation errors. -`vocabularyName` | This parameter defines a vocabulary to be used. -`vocabularyField` | The parameter `fieldname=value` can be used to restrict the hit set to values that meet this definition. The field is repeatable to define several restrictions at the same time. - -Setting up required permissions ---------------------------------------------------------------------------- -This plugin has its own permission level for use. For this reason, users must have the required permissions. Therefore, please assign the following right to the user group of the corresponding users: - -``` -Plugin_workflow_aeon_process_creation -``` - -![Correctly assigned right for the users](intranda_workflow_aeon_process_creation2_en.png) \ No newline at end of file diff --git a/docs/intranda_workflow_aeon_process_creation1_de.png b/docs/intranda_workflow_aeon_process_creation1_de.png deleted file mode 100644 index c0b5608..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation1_de.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation1_en.png b/docs/intranda_workflow_aeon_process_creation1_en.png deleted file mode 100644 index ba3a183..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation1_en.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation2_de.png b/docs/intranda_workflow_aeon_process_creation2_de.png deleted file mode 100644 index 5cd3365..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation2_de.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation2_en.png b/docs/intranda_workflow_aeon_process_creation2_en.png deleted file mode 100644 index fb48737..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation2_en.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation3_de.png b/docs/intranda_workflow_aeon_process_creation3_de.png deleted file mode 100644 index e3797eb..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation3_de.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation3_en.png b/docs/intranda_workflow_aeon_process_creation3_en.png deleted file mode 100644 index 815d333..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation3_en.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation4_de.png b/docs/intranda_workflow_aeon_process_creation4_de.png deleted file mode 100644 index 36d0a56..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation4_de.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation4_en.png b/docs/intranda_workflow_aeon_process_creation4_en.png deleted file mode 100644 index 87726a3..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation4_en.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation5_de.png b/docs/intranda_workflow_aeon_process_creation5_de.png deleted file mode 100644 index 0aad54b..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation5_de.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation5_en.png b/docs/intranda_workflow_aeon_process_creation5_en.png deleted file mode 100644 index 2c13275..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation5_en.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation6_de.png b/docs/intranda_workflow_aeon_process_creation6_de.png deleted file mode 100644 index 0f1a21f..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation6_de.png and /dev/null differ diff --git a/docs/intranda_workflow_aeon_process_creation6_en.png b/docs/intranda_workflow_aeon_process_creation6_en.png deleted file mode 100644 index ada2473..0000000 Binary files a/docs/intranda_workflow_aeon_process_creation6_en.png and /dev/null differ diff --git a/plugin/plugin_intranda_workflow_aeon_process_creation.xml b/install/plugin_intranda_workflow_aeon_process_creation.xml similarity index 100% rename from plugin/plugin_intranda_workflow_aeon_process_creation.xml rename to install/plugin_intranda_workflow_aeon_process_creation.xml diff --git a/module-base/pom.xml b/module-base/pom.xml new file mode 100644 index 0000000..3a7b4d3 --- /dev/null +++ b/module-base/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + + io.goobi.workflow.plugin + plugin-workflow-aeon-process-creation + 24.04.2 + + plugin-workflow-aeon-process-creation-base + jar + + + io.goobi.workflow.plugin + plugin-workflow-aeon-process-creation-lib + 24.04.2 + compile + + + \ No newline at end of file diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/AeonProcessCreationWorkflowPlugin.java b/module-base/src/main/java/de/intranda/goobi/plugins/AeonProcessCreationWorkflowPlugin.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/AeonProcessCreationWorkflowPlugin.java rename to module-base/src/main/java/de/intranda/goobi/plugins/AeonProcessCreationWorkflowPlugin.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/aeon/AeonExistingProcess.java b/module-base/src/main/java/de/intranda/goobi/plugins/aeon/AeonExistingProcess.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/aeon/AeonExistingProcess.java rename to module-base/src/main/java/de/intranda/goobi/plugins/aeon/AeonExistingProcess.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/aeon/AeonProperty.java b/module-base/src/main/java/de/intranda/goobi/plugins/aeon/AeonProperty.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/aeon/AeonProperty.java rename to module-base/src/main/java/de/intranda/goobi/plugins/aeon/AeonProperty.java diff --git a/plugin/src/main/java/de/intranda/goobi/plugins/aeon/AeonRecord.java b/module-base/src/main/java/de/intranda/goobi/plugins/aeon/AeonRecord.java similarity index 100% rename from plugin/src/main/java/de/intranda/goobi/plugins/aeon/AeonRecord.java rename to module-base/src/main/java/de/intranda/goobi/plugins/aeon/AeonRecord.java diff --git a/plugin/src/test/java/de/intranda/goobi/plugins/AeonProcessCreationPluginTest.java b/module-base/src/test/java/de/intranda/goobi/plugins/AeonProcessCreationPluginTest.java similarity index 100% rename from plugin/src/test/java/de/intranda/goobi/plugins/AeonProcessCreationPluginTest.java rename to module-base/src/test/java/de/intranda/goobi/plugins/AeonProcessCreationPluginTest.java diff --git a/module-gui/pom.xml b/module-gui/pom.xml new file mode 100644 index 0000000..7dffc58 --- /dev/null +++ b/module-gui/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + + io.goobi.workflow.plugin + plugin-workflow-aeon-process-creation + 24.04.2 + + plugin-workflow-aeon-process-creation-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/resources/uii/plugin_workflow_aeon_include_checkbox.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_checkbox.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_checkbox.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_checkbox.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_input.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_input.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_input.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_input.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_multiselect.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_multiselect.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_multiselect.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_multiselect.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_radio.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_radio.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_radio.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_radio.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_select.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_select.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_select.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_select.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_selectAndText.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_selectAndText.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_selectAndText.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_selectAndText.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_validationAndHelp.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_validationAndHelp.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_include_validationAndHelp.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_include_validationAndHelp.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_created_objects_list.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_created_objects_list.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_created_objects_list.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_created_objects_list.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_objects_list.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_objects_list.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_objects_list.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_objects_list.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_properties.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_properties.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_properties.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_properties.xhtml diff --git a/plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_transaction_details.xhtml b/module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_transaction_details.xhtml similarity index 100% rename from plugin/src/main/resources/GUI/META-INF/resources/uii/plugin_workflow_aeon_process_creation_include_transaction_details.xhtml rename to module-gui/src/main/webapp/resources/uii/plugin_workflow_aeon_process_creation_include_transaction_details.xhtml diff --git a/module-lib/pom.xml b/module-lib/pom.xml new file mode 100644 index 0000000..289b818 --- /dev/null +++ b/module-lib/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + io.goobi.workflow.plugin + plugin-workflow-aeon-process-creation + 24.04.2 + + plugin-workflow-aeon-process-creation-lib + jar + \ No newline at end of file diff --git a/plugin/src/main/java/org/goobi/aeon/LoginResponse.java b/module-lib/src/main/java/org/goobi/aeon/LoginResponse.java similarity index 100% rename from plugin/src/main/java/org/goobi/aeon/LoginResponse.java rename to module-lib/src/main/java/org/goobi/aeon/LoginResponse.java diff --git a/plugin/src/main/java/org/goobi/aeon/User.java b/module-lib/src/main/java/org/goobi/aeon/User.java similarity index 100% rename from plugin/src/main/java/org/goobi/aeon/User.java rename to module-lib/src/main/java/org/goobi/aeon/User.java diff --git a/plugin/.classpath b/plugin/.classpath deleted file mode 100644 index f9d3200..0000000 --- a/plugin/.classpath +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plugin/.gitignore b/plugin/.gitignore deleted file mode 100644 index 7d4a1f0..0000000 --- a/plugin/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/bin/ -/target/ -.DS_Store -/module-gui/ -/module-main/ diff --git a/plugin/.project b/plugin/.project deleted file mode 100644 index 88e2ed8..0000000 --- a/plugin/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - goobi-plugin-workflow-aeon-process-creation - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.m2e.core.maven2Nature - org.eclipse.jdt.core.javanature - - diff --git a/plugin/.settings/org.eclipse.jdt.core.prefs b/plugin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 0fee6a9..0000000 --- a/plugin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,15 +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.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/RestTest.java b/plugin/RestTest.java deleted file mode 100644 index b1d6402..0000000 --- a/plugin/RestTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.goobi.api.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -/* - * Very simple rest api: returns JSON string with pseudo data - */ - -@Path("/testingRest") -public class RestTest { - @GET - @Produces(MediaType.APPLICATION_JSON) - @Path("aeon") - public String returnAeonJSON() { - return "{\"transactionNumber\":286670,\"creationDate\":\"2021-07-23T19:18:39\",\"photoduplicationStatus\":1162,\"photoduplicationDate\":\"2021-07-23T19:23:09.947\",\"transactionStatus\":28,\"transactionDate\":\"2022-02-15T14:41:37.17\",\"customFieldValues\":{\"UseRestrictionNote\":null,\"ExtentPhysicalDescription\":null,\"RestrictionCode\":null,\"DigitalObjectID\":null,\"TopContainerURI\":null,\"LocationURI\":null,\"CollectionTitle\":null,\"Copy\":null,\"RootRecordURL\":null,\"Folder\":null,\"ERENotes\":null},\"requestFor\":{\"type\":\"Activity\",\"reference\":\"3938\"},\"username\":\"YALE\\\\jam384\",\"appointmentID\":null,\"bundleID\":null,\"callNumber\":\"MSS 73\",\"documentType\":\"Manuscript\",\"eadNumber\":\"https://puitestarchivesspace.library.yale.edu/repositories/6/archival_objects/2544864\",\"format\":\"PDF (reference use)\",\"forPublication\":false,\"itemAuthor\":\"Weigl, Karl, 1881-1949\",\"itemCitation\":\"\",\"itemDate\":\"\",\"itemEdition\":\"Folders 833-834\",\"itemInfo1\":\"Y\",\"itemInfo2\":\"MUS\",\"itemInfo3\":null,\"itemInfo4\":null,\"itemInfo5\":\"This is restricted\",\"itemIssue\":\"Series 4\",\"itemISxN\":null,\"itemNumber\":null,\"itemPages\":\"1-10\",\"itemPlace\":null,\"itemPublisher\":null,\"itemSubTitle\":\"Publishers' works lists\",\"itemTitle\":\"The Karl Weigl Papers\",\"itemVolume\":\"Box 26\",\"location\":\"lsfmusr\",\"maxCost\":null,\"pageCount\":null,\"referenceNumber\":\"39002058721078\",\"scheduledDate\":\"2021-07-28T04:00:00\",\"serviceLevel\":\"Standard\",\"shippingOption\":\"(DRMS) Book & Paper\",\"site\":\"MUS\",\"specialRequest\":null,\"subLocation\":null,\"systemID\":\"ArchivesSpace\",\"webRequestForm\":\"GenericRequestManuscript\"}"; - } - - @Path("metadata") - @GET - @Produces(MediaType.APPLICATION_JSON) - public String returnMetadataJSON() { - return "[\n" - + " {\"title\": \"Marcheᅩチ de Saint-Pierre : meᅩチlodrame en cinq actes / par Benjamin Antier et Alexis de Comberousse. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=1848655\",\"bibId\": \"1848655\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Antier, Benjamin, 1787-1870. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Simplette la chevrieᅩタre; vaudeville en un acte ... \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2083565\",\"bibId\": \"2083565\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Cogniard, Theᅩチodore, 1806-1872. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Balochard, ou, Samedi, dimanche et lundi : vaudeville en trois actes / par MM. Depeuty et E. Vanderbuch. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2157244\",\"bibId\": \"2157244\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Dupeuty, M. (Charles), 1798-1865. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Bathilde; drame en trois actes ... Repreᅩチsenteᅩチ, pour la premieᅩタre fois, aᅩタ Paris, sur le Theᅩチaᅩツtre de la renaissance (Salle Ventadour) le 14 janvier 1839. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2509110\",\"bibId\": \"2509110\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Maquet, Auguste, 1813-1888. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1843\"\n" - + " },\n" - + " {\"title\": \"Maiᅩツtresse et la fianceᅩチe; drame en deux actes, meᅩツleᅩチ de chants, ... \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2785687\",\"bibId\": \"2785687\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Souvestre, Eᅩチmile. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Jeunesse de Goethe, comeᅩチdie en un acte, en vers, par Madame Louise Colet-Revoil. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2075761\",\"bibId\": \"2075761\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Colet, Louise, 1810-1876. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Faut que jeunesse se passe; comedie en trois actes, en prose, par m. de Rougemont, repreᅩチsenteᅩチ pour la premieᅩタre fois sur le Theᅩチatre-Francais, le ler juillet 1839. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2715653\",\"bibId\": \"2715653\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Rougemont, M. de (Michel-Nicholas Balisson), 1781-1840. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Trois bals : vaudeville en trois actes / par M. Bayard. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=1963934\",\"bibId\": \"1963934\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Bayard, Jean-Francᅩᄃois-Alfred, 1796-1853. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Rigobert; ou, Fais-mois rire; comeᅩチdie-drame, en trois actes ... \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2129285\",\"bibId\": \"2129285\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Deligny, Eugeᅩタne, 1816-1881. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Maurice, comeᅩチdie-vaudeville en deux actes, par MM. Meᅩチlesville [pseud.] et C. Duveyrier. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2158669\",\"bibId\": \"2158669\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Meᅩチlesville, M., 1787-1865. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Manoir de Montlouvier : drame en cinq actes, en prose / par M. Rosier. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2690141\",\"bibId\": \"2690141\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Rosier, Joseph-Bernard, 1804-1880. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Diane de Chivri : drame en cinq actes / par M. Freᅩチdeᅩチric Soulieᅩチ. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2772587\",\"bibId\": \"2772587\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Soulieᅩチ, Freᅩチdeᅩチric, 1800-1847. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Fils de la folle : drame en cinq actes / par M. Freᅩチdeᅩチric Soulieᅩチ. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2772588\",\"bibId\": \"2772588\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Soulieᅩチ, Freᅩチdeᅩチric, 1800-1847. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Pascal et Chambord : comeᅩチdie en deux actes, meᅩツleᅩチe de chant / par MM. Anicet Bourgeois et Edouard Brisebarre. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=1862527\",\"bibId\": \"1862527\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Anicet-Bourgeois, M. (Auguste), 1806-1871. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Dieu vous beᅩチnisse! : comeᅩチdie-vaudeville en un acte / par MM. Ancelot et Paul Duport. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=1862546\",\"bibId\": \"1862546\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Ancelot, Jacques-Arseᅩタne-Francᅩᄃois-Polycarpe, 1794-1854. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Lekain aᅩタ Draguignan, comeᅩチdie en deux actes, meᅩツleᅩチe de chant, par MM. De Forges et Paul Vermond, repreᅩチseneᅩチe pour la premieᅩタre fois, aᅩタ Paris, sur le Theᅩチaᅩツtre du Palais-Royal, le 23 janvier 1839. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2126526\",\"bibId\": \"2126526\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Forges, A. de (Auguste), 1805-1881. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1843\"\n" - + " },\n" - + " {\"title\": \"Marguerite d'Yorck; meᅩチlodrame historique en trois actes, avec un prologue, ... \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2198884\",\"bibId\": \"2198884\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Fournier, N. (Narcisse), 1803-1880. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Amandine : vaudeville en deux actes / par MM. de Rougemont et A. Monnier. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2711689\",\"bibId\": \"2711689\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Balisson de Rougemont, Michel-Nicolas, 1781-1840. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Alchimiste : drame en cinq actes, en vers / par Alexandre Dumas. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2153993\",\"bibId\": \"2153993\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Dumas, Alexandre, 1802-1870. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1843\"\n" - + " },\n" - + " {\"title\": \"Plastron : comeᅩチdie en deux actes, meᅩツleᅩチe du chant : repreᅩチsenteᅩチe, pour la premieᅩタre fois, aᅩタ Paris, sur le theᅩチaᅩツtre du Vaudeville, le 27 avril 1839 / par MM. Xavier, Duvert et Lauzanne. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2682778\",\"bibId\": \"2682778\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Xavier, M., 1798-1865. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Eᅩチmile; ou, Six teᅩツtes dans un chapeau; comeᅩチdie-vaudeville en un acte, ... \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=1965133\",\"bibId\": \"1965133\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Bayard, Jean-Francᅩᄃois-Alfred, 1796-1853. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Mademoiselle de Belle-Isle; drame en cinq actes, en prose ... Repreᅩチsenteᅩチ pour la premieᅩタre fois, aᅩタ Paris, sur le Theᅩチaᅩツtre Francᅩᄃais, le 2 avril 1839. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2162369\",\"bibId\": \"2162369\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Dumas, Alexandre, 1802-1870. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1843\"\n" - + " },\n" - + " {\"title\": \"Maria, drame en deux actes, meᅩツleᅩチ de chant, par MM. Paul Foucher et Laurencin. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2189911\",\"bibId\": \"2189911\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Foucher, Paul. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Deux jeunes femmes : drame en cinq actes et en prose / par V. de Saint-Hilaire ; repreᅩチsenteᅩチ, pour la premieᅩタre fois, aᅩタ Paris, sur le theᅩチaᅩツtre de la Renaissance, le 7 juin 1839. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2668718\",\"bibId\": \"2668718\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Saint-Hilaire, Amable Vilain de, b. 1795. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Gabrielle, ou, Les aides-de-camp : comeᅩチdie-vaudeville en deux actes / par MM. Ancelot et Paul Duport. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=1862545\",\"bibId\": \"1862545\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Ancelot, Jacques-Arseᅩタne-Francᅩᄃois-Polycarpe, 1794-1854. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Naufrage de la Meᅩチduse; drame en cinq actes ... \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2127636\",\"bibId\": \"2127636\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Desnoyer, Charles, 1806-1858. \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " },\n" - + " {\"title\": \"Vaudevilliste : comeᅩチdie en un acte, en prose / Par MM. T. Sauvage et Maurice Saint-Aguet. \",\"recordType\": \"ils\",\"barcode\": \"39002001054627\",\"uri\": \"/ils/item/4168081?bib=2716227\",\"bibId\": \"2716227\",\"itemId\": \"4168081\",\"holdingId\": \"3055899\",\"author\": \"Sauvage, T. (Thomas) \",\"callNumber\": \"Hf75 3 19-20\",\"volume\": \"19-20\",\"pubDate\": \"1839\"\n" - + " }\n" - + "]"; - } -} 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 97437e3..0000000 --- a/plugin/module-gui/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - 4.0.0 - de.intranda.goobi.plugins.workflow - aeon_process_creation-gui - 24.02.1 - - plugin_intranda_workflow_aeon_process_creation-GUI - /opt/digiverso/goobi/plugins/GUI/ - 1.8 - 1.8 - - - de.intranda.goobi.plugins.workflow - aeon_process_creation - 24.02.1 - - - ${jar.name} - ${project.basedir}/../src/main/java - - - ../src/main/resources/GUI - - - ../src/main/java - - **/*.java - - - **/org/goobi/aeon/*.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-workflow-aeon_process_creation.git - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-workflow-aeon_process_creation.git - - diff --git a/plugin/module-main/.gitignore b/plugin/module-main/.gitignore deleted file mode 100644 index 7326dd9..0000000 --- a/plugin/module-main/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target/ -.DS_Store \ No newline at end of file diff --git a/plugin/module-main/pom.xml b/plugin/module-main/pom.xml deleted file mode 100644 index 85e3430..0000000 --- a/plugin/module-main/pom.xml +++ /dev/null @@ -1,105 +0,0 @@ - - 4.0.0 - de.intranda.goobi.plugins.workflow - aeon_process_creation-main - 24.02.1 - - plugin_intranda_workflow_aeon_process_creation - /opt/digiverso/goobi/plugins/workflow/ - 1.8 - 1.8 - - - de.intranda.goobi.plugins.workflow - aeon_process_creation - 24.02.1 - - - ${jar.name} - ${project.basedir}/../src/main/java - - - src/main/java - - - - - maven-compiler-plugin - 3.7.0 - - - org.apache.maven.plugins - maven-surefire-plugin - 2.22.1 - - false - - - - 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/aeon/* - - - - ${maven.build.timestamp} - - - - Versions - - ${project.version} - ${buildNumber} - ${scmBranch} - ${goobi.version} - - - - - - - - - - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-workflow-aeon_process_creation.git - scm:git:ssh://git@gitea.intranda.com:goobi-workflow/goobi-plugin-workflow-aeon_process_creation.git - - diff --git a/plugin/pom.xml b/plugin/pom.xml deleted file mode 100644 index 9eb72c7..0000000 --- a/plugin/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - 4.0.0 - de.intranda.goobi.plugins.workflow - aeon_process_creation - 24.02.1 - pom - - 24.02.1 - 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} - - - de.intranda.goobi.plugins.opac - json-gui - 23.07.1 - provided - - - org.projectlombok - lombok - 1.18.6 - provided - - - - junit - junit - 4.12 - 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/pom.xml b/pom.xml new file mode 100644 index 0000000..f4a0781 --- /dev/null +++ b/pom.xml @@ -0,0 +1,37 @@ + + 4.0.0 + + io.goobi.workflow + workflow-base + 24.04.2 + + + io.goobi.workflow.plugin + plugin-workflow-aeon-process-creation + pom + + module-base + module-gui + module-lib + + + + intranda-public + https://nexus.intranda.com/repository/maven-public + + + + + io.goobi.workflow + workflow-core + ${project.version} + classes + + + io.goobi.workflow.plugin + plugin-opac-json-lib + 24.04.2 + compile + + + \ No newline at end of file