mirror of
https://github.com/ilri/cgspace-java-helpers.git
synced 2025-05-11 15:46:09 +02:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
ee6518035e
|
|||
14051984f3
|
|||
9faf657c59
|
|||
7fb78c2722
|
|||
6ef9f521bf
|
|||
1a345de36a
|
|||
eb66ccbd0d
|
|||
62138540ae
|
|||
c0d0e40321
|
|||
f2a637f0a8
|
|||
6e38a2f7e1
|
|||
f9d7e5f6a2
|
|||
9e965afdb7
|
|||
408a0e1c19
|
|||
ea9f669e9c
|
12
.github/workflows/maven.yml
vendored
12
.github/workflows/maven.yml
vendored
@ -5,9 +5,9 @@ name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ dspace6 ]
|
||||
branches: [ dspace7 ]
|
||||
pull_request:
|
||||
branches: [ dspace6 ]
|
||||
branches: [ dspace7 ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@ -15,11 +15,11 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up JDK 8
|
||||
uses: actions/setup-java@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: 8
|
||||
java-version: 17
|
||||
distribution: 'temurin'
|
||||
cache: 'maven'
|
||||
- name: Build with Maven
|
||||
|
4
.idea/misc.xml
generated
4
.idea/misc.xml
generated
@ -1,11 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="workspaceImportForciblyTurnedOn" value="true" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="17" project-jdk-type="JavaSDK" />
|
||||
</project>
|
@ -4,9 +4,14 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## Unreleased
|
||||
## [7.6.1] - 2024-01-02
|
||||
### Changed
|
||||
- Pin gson dependency to 2.9.0 to avoid dependency convergence issues with DSpace
|
||||
|
||||
## [7.6] - 2024-01-02
|
||||
### Updated
|
||||
- `iso_3166-1.json` from iso-codes 4.13.0-SNAPSHOT, which [adds common names for Iran, Laos, and Syria](https://salsa.debian.org/iso-codes-team/iso-codes/-/merge_requests/32)
|
||||
- DSpace 7.6 compatibility
|
||||
|
||||
## [6.2] - 2023-02-20
|
||||
### Updated
|
||||
|
@ -5,7 +5,7 @@ DSpace curation tasks and other Java-based helpers used on the [CGSpace](https:/
|
||||
- **FixJpgJpgThumbnails**: fix low-quality ".jpg.jpg" thumbnails by replacing them with their originals
|
||||
- **FixLowQualityThumbnails**: remove low-quality thumbnails when PDF bitstreams are present
|
||||
|
||||
Tested on DSpace 6.3. Read more about the [DSpace curation system](https://wiki.lyrasis.org/display/DSDOC6x/Curation+System).
|
||||
Tested on DSpace 7.6. Read more about the [DSpace curation system](https://wiki.lyrasis.org/display/DSDOC7x/Curation+System).
|
||||
|
||||
## Build and Install
|
||||
|
||||
@ -16,7 +16,7 @@ To use these curation tasks in a DSpace project add the following dependency to
|
||||
<dependency>
|
||||
<groupId>io.github.ilri.cgspace</groupId>
|
||||
<artifactId>cgspace-java-helpers</artifactId>
|
||||
<version>6.2-SNAPSHOT</version>
|
||||
<version>7.6.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@ -32,7 +32,7 @@ $ mvn package
|
||||
Copy the resulting jar to the DSpace `lib` directory:
|
||||
|
||||
```console
|
||||
$ cp target/cgspace-java-helpers-6.2-SNAPSHOT.jar ~/dspace/lib/
|
||||
$ cp target/cgspace-java-helpers-7.6.1-SNAPSHOT.jar ~/dspace/lib/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
33
pom.xml
33
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>io.github.ilri.cgspace</groupId>
|
||||
<artifactId>cgspace-java-helpers</artifactId>
|
||||
<version>6.2-SNAPSHOT</version>
|
||||
<version>7.6.1-SNAPSHOT</version>
|
||||
|
||||
<name>cgspace-java-helpers</name>
|
||||
<url>https://github.com/ilri/cgspace-java-helpers</url>
|
||||
@ -36,12 +36,12 @@
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.9.1</version>
|
||||
<version>2.9.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-api</artifactId>
|
||||
<version>6.3</version>
|
||||
<version>7.6.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
@ -69,20 +69,20 @@
|
||||
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<version>3.3.2</version>
|
||||
</plugin>
|
||||
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<version>3.3.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.10.1</version>
|
||||
<version>3.12.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.0.0-M7</version>
|
||||
<version>3.2.3</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
@ -90,11 +90,11 @@
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<version>3.1.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<version>3.1.1</version>
|
||||
</plugin>
|
||||
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
|
||||
<plugin>
|
||||
@ -103,9 +103,22 @@
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<version>3.4.1</version>
|
||||
<version>3.5.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<!-- Check Maven Central first (before other repos below) -->
|
||||
<repository>
|
||||
<id>maven-central</id>
|
||||
<url>https://repo.maven.apache.org/maven2</url>
|
||||
</repository>
|
||||
<!-- For Handle Server -->
|
||||
<repository>
|
||||
<id>handle.net</id>
|
||||
<url>https://handle.net/maven</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</project>
|
||||
|
@ -10,14 +10,14 @@ import javax.annotation.Nullable;
|
||||
|
||||
public class CountriesVocabulary {
|
||||
|
||||
class Country {
|
||||
private String name; // required
|
||||
private String common_name; // optional
|
||||
private String official_name; // optional
|
||||
private String cgspace_name; // optional
|
||||
private String numeric; // required Hmmmm need to cast this...
|
||||
private String alpha_2; // required
|
||||
private String alpha_3; // required
|
||||
static class Country {
|
||||
private final String name; // required
|
||||
private final String common_name; // optional
|
||||
private final String official_name; // optional
|
||||
private final String cgspace_name; // optional
|
||||
private final String numeric; // required Hmmmm need to cast this...
|
||||
private final String alpha_2; // required
|
||||
private final String alpha_3; // required
|
||||
|
||||
public Country(
|
||||
String name,
|
||||
|
@ -8,7 +8,8 @@ package io.github.ilri.cgspace.ctasks;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.dspace.authorize.AuthorizeException;
|
||||
import org.dspace.content.DSpaceObject;
|
||||
import org.dspace.content.Item;
|
||||
@ -23,6 +24,7 @@ import java.io.InputStreamReader;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class CountryCodeTagger extends AbstractCurationTask {
|
||||
public class CountryCodeTaggerConfig {
|
||||
@ -33,10 +35,10 @@ public class CountryCodeTagger extends AbstractCurationTask {
|
||||
private final String iso3166Alpha2Field = taskProperty("iso3166-alpha2.field");
|
||||
private final boolean forceupdate = taskBooleanProperty("forceupdate", false);
|
||||
|
||||
private Logger log = Logger.getLogger(CountryCodeTagger.class);
|
||||
private final Logger log = LogManager.getLogger();
|
||||
}
|
||||
|
||||
public class CountryCodeTaggerResult {
|
||||
public static class CountryCodeTaggerResult {
|
||||
private int status = Curator.CURATE_UNSET;
|
||||
private String result = null;
|
||||
|
||||
@ -90,7 +92,7 @@ public class CountryCodeTagger extends AbstractCurationTask {
|
||||
itemService.getMetadataByMetadataString(item, config.iso3166Field);
|
||||
|
||||
// skip items that don't have country metadata
|
||||
if (itemCountries.size() == 0) {
|
||||
if (itemCountries.isEmpty()) {
|
||||
alpha2Result.setResult(itemHandle + ": no countries, skipping.");
|
||||
alpha2Result.setStatus(Curator.CURATE_SKIP);
|
||||
} else {
|
||||
@ -101,7 +103,7 @@ public class CountryCodeTagger extends AbstractCurationTask {
|
||||
BufferedReader reader =
|
||||
new BufferedReader(
|
||||
new InputStreamReader(
|
||||
this.getClass().getResourceAsStream(config.isocodesJsonPath)));
|
||||
Objects.requireNonNull(this.getClass().getResourceAsStream(config.isocodesJsonPath))));
|
||||
ISO3166CountriesVocabulary isocodesCountriesJson =
|
||||
gson.fromJson(reader, ISO3166CountriesVocabulary.class);
|
||||
reader.close();
|
||||
@ -109,8 +111,8 @@ public class CountryCodeTagger extends AbstractCurationTask {
|
||||
reader =
|
||||
new BufferedReader(
|
||||
new InputStreamReader(
|
||||
this.getClass()
|
||||
.getResourceAsStream(config.cgspaceCountriesJsonPath)));
|
||||
Objects.requireNonNull(this.getClass()
|
||||
.getResourceAsStream(config.cgspaceCountriesJsonPath))));
|
||||
CGSpaceCountriesVocabulary cgspaceCountriesJson =
|
||||
gson.fromJson(reader, CGSpaceCountriesVocabulary.class);
|
||||
reader.close();
|
||||
@ -133,7 +135,7 @@ public class CountryCodeTagger extends AbstractCurationTask {
|
||||
List<MetadataValue> itemAlpha2CountryCodes =
|
||||
itemService.getMetadataByMetadataString(item, config.iso3166Alpha2Field);
|
||||
|
||||
if (itemAlpha2CountryCodes.size() == 0) {
|
||||
if (itemAlpha2CountryCodes.isEmpty()) {
|
||||
List<String> newAlpha2Codes = new ArrayList<String>();
|
||||
for (MetadataValue itemCountry : itemCountries) {
|
||||
// check ISO 3166-1 countries
|
||||
@ -157,7 +159,7 @@ public class CountryCodeTagger extends AbstractCurationTask {
|
||||
}
|
||||
}
|
||||
|
||||
if (newAlpha2Codes.size() > 0) {
|
||||
if (!newAlpha2Codes.isEmpty()) {
|
||||
try {
|
||||
itemService.addMetadata(
|
||||
Curator.curationContext(),
|
||||
|
@ -3,7 +3,7 @@ DSpace curation tasks used on the [CGSpace](https://cgspace.cgiar.org) instituti
|
||||
|
||||
- **CountryCodeTagger**: add ISO 3166-1 Alpha2 country codes to items based on their existing country metadata
|
||||
|
||||
Tested on DSpace 6.3. Read more about the [DSpace curation system](https://wiki.lyrasis.org/display/DSDOC5x/Curation+System).
|
||||
Tested on DSpace 7.6. Read more about the [DSpace curation system](https://wiki.lyrasis.org/display/DSDOC5x/Curation+System).
|
||||
|
||||
## Build and Install
|
||||
|
||||
@ -14,7 +14,7 @@ To use these curation tasks in a DSpace project add the following dependency to
|
||||
<dependency>
|
||||
<groupId>io.github.ilri.cgspace</groupId>
|
||||
<artifactId>cgspace-java-helpers</artifactId>
|
||||
<version>6.2-SNAPSHOT</version>
|
||||
<version>7.6.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@ -30,7 +30,7 @@ $ mvn package
|
||||
Copy the resulting jar to the DSpace `lib` directory:
|
||||
|
||||
```
|
||||
$ cp target/cgspace-java-helpers-6.2-SNAPSHOT.jar ~/dspace/lib/
|
||||
$ cp target/cgspace-java-helpers-7.6.1-SNAPSHOT.jar ~/dspace/lib/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
@ -138,7 +138,7 @@ public class FixJpgJpgThumbnails {
|
||||
for (Bitstream originalBitstream : originalBundleBitstreams) {
|
||||
String originalName = originalBitstream.getName();
|
||||
|
||||
long originalBitstreamBytes = originalBitstream.getSize();
|
||||
long originalBitstreamBytes = originalBitstream.getSizeBytes();
|
||||
|
||||
/*
|
||||
- check if the original file name is the same as the thumbnail name minus the extra ".jpg"
|
||||
|
@ -4,7 +4,7 @@ Java-based helpers used on the [CGSpace](https://cgspace.cgiar.org) institutiona
|
||||
- **FixJpgJpgThumbnails**: fix low-quality ".jpg.jpg" thumbnails by replacing them with their originals
|
||||
- **FixLowQualityThumbnails**: remove low-quality thumbnails when PDF bitstreams are present
|
||||
|
||||
Tested on DSpace 6.3. Read more about the [DSpace curation system](https://wiki.lyrasis.org/display/DSDOC6x/Curation+System).
|
||||
Tested on DSpace 7.6. Read more about the [DSpace curation system](https://wiki.lyrasis.org/display/DSDOC6x/Curation+System).
|
||||
|
||||
## Build and Install
|
||||
|
||||
@ -15,7 +15,7 @@ To use these curation tasks in a DSpace project add the following dependency to
|
||||
<dependency>
|
||||
<groupId>io.github.ilri.cgspace</groupId>
|
||||
<artifactId>cgspace-java-helpers</artifactId>
|
||||
<version>6.2-SNAPSHOT</version>
|
||||
<version>7.6.1-SNAPSHOT</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@ -31,7 +31,7 @@ $ mvn package
|
||||
Copy the resulting jar to the DSpace `lib` directory:
|
||||
|
||||
```console
|
||||
$ cp target/cgspace-java-helpers-6.2-SNAPSHOT.jar ~/dspace/lib/
|
||||
$ cp target/cgspace-java-helpers-7.6.1-SNAPSHOT.jar ~/dspace/lib/
|
||||
```
|
||||
|
||||
## Invocation
|
||||
|
@ -39,6 +39,6 @@
|
||||
"name": "Russian Federation",
|
||||
"cgspace_name": "Russia",
|
||||
"numeric": "643"
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Reference in New Issue
Block a user