mirror of
https://github.com/ilri/cgspace-java-helpers.git
synced 2025-07-21 21:43:04 +02:00
Compare commits
14 Commits
v6.0
...
3aa1503163
Author | SHA1 | Date | |
---|---|---|---|
3aa1503163
|
|||
26597e2f8f
|
|||
1497ebb476
|
|||
b2027e3e44
|
|||
26eaa2d94f
|
|||
e3b95f6a30 | |||
5e545e37e2
|
|||
3f711db1b2
|
|||
112cb8a133
|
|||
4d59c1a00d
|
|||
2e779efb14
|
|||
735e759033
|
|||
271a9ce970
|
|||
6b72ddefc1
|
24
.github/workflows/maven.yml
vendored
Normal file
24
.github/workflows/maven.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# This workflow will build a Java project with Maven
|
||||||
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
||||||
|
|
||||||
|
name: Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ dspace6 ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ dspace6 ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up JDK 1.8
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 1.8
|
||||||
|
- name: Build with Maven
|
||||||
|
run: mvn -B package --file pom.xml
|
@ -1,8 +0,0 @@
|
|||||||
dist: bionic
|
|
||||||
language: java
|
|
||||||
jdk:
|
|
||||||
- openjdk8
|
|
||||||
script:
|
|
||||||
- mvn package -B
|
|
||||||
|
|
||||||
# vim: ts=2 sw=2 et
|
|
44
README.md
44
README.md
@ -1,4 +1,4 @@
|
|||||||
# CGSpace Java Helpers [](https://travis-ci.org/ilri/cgspace-java-helpers)
|
# CGSpace Java Helpers [](https://github.com/ilri/cgspace-java-helpers/actions)
|
||||||
DSpace curation tasks and other Java-based helpers used on the [CGSpace](https://cgspace.cgiar.org) institutional repository:
|
DSpace curation tasks and other Java-based helpers used on the [CGSpace](https://cgspace.cgiar.org) institutional repository:
|
||||||
|
|
||||||
- **CountryCodeTagger**: add ISO 3166-1 Alpha2 country codes to items based on their existing country metadata
|
- **CountryCodeTagger**: add ISO 3166-1 Alpha2 country codes to items based on their existing country metadata
|
||||||
@ -15,7 +15,7 @@ To use these curation tasks in a DSpace project add the following dependency to
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.github.ilri.cgspace</groupId>
|
<groupId>io.github.ilri.cgspace</groupId>
|
||||||
<artifactId>cgspace-java-helpers</artifactId>
|
<artifactId>cgspace-java-helpers</artifactId>
|
||||||
<version>6.0</version>
|
<version>6.1-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -31,40 +31,18 @@ $ mvn package
|
|||||||
Copy the resulting jar to the DSpace `lib` directory:
|
Copy the resulting jar to the DSpace `lib` directory:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cp target/cgspace-java-helpers-6.0.jar ~/dspace/lib/
|
$ cp target/cgspace-java-helpers-6.1-SNAPSHOT.jar ~/dspace/lib/
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
Add the curation task to DSpace's `config/modules/curate.cfg`:
|
Please refer to the appropriate README.md file:
|
||||||
|
|
||||||
```
|
- Curation Tasks: [src/main/java/io/github/ilri/cgspace/ctasks/README.md](https://github.com/ilri/cgspace-java-helpers/blob/dspace6/src/main/java/io/github/ilri/cgspace/ctasks/README.md)
|
||||||
plugin.named.org.dspace.curate.CurationTask = io.github.ilri.cgspace.ctasks.CountryCodeTagger = countrycodetagger
|
- Scripts: [src/main/java/io/github/ilri/cgspace/scripts/README.md](https://github.com/ilri/cgspace-java-helpers/blob/dspace6/src/main/java/io/github/ilri/cgspace/scripts/README.md)
|
||||||
plugin.named.org.dspace.curate.CurationTask = io.github.ilri.cgspace.ctasks.CountryCodeTagger = countrycodetagger.force
|
|
||||||
```
|
|
||||||
|
|
||||||
And then add the following variables to your `local.cfg` or some other [configuration file that is included](https://wiki.lyrasis.org/display/DSDOC6x/Configuration+Reference#ConfigurationReference-IncludingotherPropertyFiles):
|
## Todo
|
||||||
|
|
||||||
```
|
- Add a curation task to normalize DOIs to "https://doi.org" format
|
||||||
# name of the field containing ISO 3166-1 country names
|
|
||||||
countrycodetagger.iso3166.field = cg.coverage.country
|
|
||||||
|
|
||||||
# name of the field containing ISO 3166-1 Alpha2 country codes
|
|
||||||
countrycodetagger.iso3166-alpha2.field = cg.coverage.iso3166-alpha2
|
|
||||||
|
|
||||||
# only add country codes if an item doesn't have any (default false)
|
|
||||||
#countrycodetagger.forceupdate = false
|
|
||||||
```
|
|
||||||
|
|
||||||
*Note*: DSpace's curation system supports "profiles" where you can use the same task with different options, for example above I have a normal country code tagger task and a "force" variant. The "force" variant is the same task, but it looks for configuration variables using the `countrycodetagger.force` instead. To use the "force" variant you simply need to add these new variables with the `forceupdate` parameter overridden to the same configuration file where you put the other variables. The "force" profile clears all existing country codes and updates everything.
|
|
||||||
|
|
||||||
## Invocation
|
|
||||||
Once the jar is installed and you have added appropriate configuration in `~/dspace/config/modules`:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ ~/dspace/bin/dspace curate -t countrycodetagger -i 10568/3 -r - -l 500 -s object
|
|
||||||
```
|
|
||||||
|
|
||||||
*Note*: it is very important to set the cache limit (`-l`) and the database transaction scope to something sensible (`object`) if you're curating a community or collection with more than a few hundred items.
|
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
This project was initially created according to the [Maven Getting Started Guide](https://maven.apache.org/guides/getting-started/):
|
This project was initially created according to the [Maven Getting Started Guide](https://maven.apache.org/guides/getting-started/):
|
||||||
@ -73,12 +51,6 @@ This project was initially created according to the [Maven Getting Started Guide
|
|||||||
$ mvn -B archetype:generate -DgroupId=io.github.ilri.cgspace -DartifactId=cgspace-java-helpers -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4
|
$ mvn -B archetype:generate -DgroupId=io.github.ilri.cgspace -DartifactId=cgspace-java-helpers -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4
|
||||||
```
|
```
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
- Make sure this doesn't work on items in the workflow
|
|
||||||
- Check for existence of metadata field before trying to add metadata
|
|
||||||
- Add tests
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
This work is licensed under the [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html).
|
This work is licensed under the [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html).
|
||||||
|
|
||||||
|
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>io.github.ilri.cgspace</groupId>
|
<groupId>io.github.ilri.cgspace</groupId>
|
||||||
<artifactId>cgspace-java-helpers</artifactId>
|
<artifactId>cgspace-java-helpers</artifactId>
|
||||||
<version>6.0</version>
|
<version>6.1-SNAPSHOT</version>
|
||||||
|
|
||||||
<name>cgspace-java-helpers</name>
|
<name>cgspace-java-helpers</name>
|
||||||
<url>https://github.com/ilri/cgspace-java-helpers</url>
|
<url>https://github.com/ilri/cgspace-java-helpers</url>
|
||||||
|
72
src/main/java/io/github/ilri/cgspace/ctasks/README.md
Normal file
72
src/main/java/io/github/ilri/cgspace/ctasks/README.md
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# Curation Tasks
|
||||||
|
DSpace curation tasks used on the [CGSpace](https://cgspace.cgiar.org) institutional repository:
|
||||||
|
|
||||||
|
- **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).
|
||||||
|
|
||||||
|
## Build and Install
|
||||||
|
|
||||||
|
### Integrate into DSpace Build
|
||||||
|
To use these curation tasks in a DSpace project add the following dependency to `dspace/modules/additions/pom.xml`:
|
||||||
|
|
||||||
|
```
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.github.ilri.cgspace</groupId>
|
||||||
|
<artifactId>cgspace-java-helpers</artifactId>
|
||||||
|
<version>6.1-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
The jar will be copied to all DSpace applications.
|
||||||
|
|
||||||
|
### Manual Build and Install
|
||||||
|
To build the standalone jar:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ mvn package
|
||||||
|
```
|
||||||
|
|
||||||
|
Copy the resulting jar to the DSpace `lib` directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cp target/cgspace-java-helpers-6.1-SNAPSHOT.jar ~/dspace/lib/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
Add the curation task to DSpace's `config/modules/curate.cfg`:
|
||||||
|
|
||||||
|
```
|
||||||
|
plugin.named.org.dspace.curate.CurationTask = io.github.ilri.cgspace.ctasks.CountryCodeTagger = countrycodetagger
|
||||||
|
plugin.named.org.dspace.curate.CurationTask = io.github.ilri.cgspace.ctasks.CountryCodeTagger = countrycodetagger.force
|
||||||
|
```
|
||||||
|
|
||||||
|
And then add the following variables to your `local.cfg` or some other [configuration file that is included](https://wiki.lyrasis.org/display/DSDOC6x/Configuration+Reference#ConfigurationReference-IncludingotherPropertyFiles):
|
||||||
|
|
||||||
|
```
|
||||||
|
# name of the field containing ISO 3166-1 country names
|
||||||
|
countrycodetagger.iso3166.field = cg.coverage.country
|
||||||
|
|
||||||
|
# name of the field containing ISO 3166-1 Alpha2 country codes
|
||||||
|
countrycodetagger.iso3166-alpha2.field = cg.coverage.iso3166-alpha2
|
||||||
|
|
||||||
|
# only add country codes if an item doesn't have any (default false)
|
||||||
|
#countrycodetagger.forceupdate = false
|
||||||
|
```
|
||||||
|
|
||||||
|
*Note*: DSpace's curation system supports "profiles" where you can use the same task with different options, for example above I have a normal country code tagger task and a "force" variant. The "force" variant is the same task, but it looks for configuration variables using the `countrycodetagger.force` instead. To use the "force" variant you simply need to add these new variables with the `forceupdate` parameter overridden to the same configuration file where you put the other variables. The "force" profile clears all existing country codes and updates everything.
|
||||||
|
|
||||||
|
## Invocation
|
||||||
|
Once the jar is installed and you have added appropriate configuration in `~/dspace/config/modules`:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ~/dspace/bin/dspace curate -t countrycodetagger -i 10568/3 -r - -s object
|
||||||
|
```
|
||||||
|
|
||||||
|
*Note*: it is very important to set the database transaction scope to something sensible (`object`) if you're curating a community or collection with more than a few hundred items.
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
- Make sure this doesn't work on items in the workflow
|
||||||
|
- Check for existence of metadata field before trying to add metadata
|
||||||
|
- Add tests
|
@ -19,7 +19,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* @author Andrea Schweer schweer@waikato.ac.nz for the LCoNZ Institutional Research Repositories
|
* @author Andrea Schweer schweer@waikato.ac.nz for the LCoNZ Institutional Research Repositories
|
||||||
* @author Alan Orth for the International Livestock Research Institute
|
* @author Alan Orth for the International Livestock Research Institute
|
||||||
* @version 6.0
|
* @version 6.1
|
||||||
* @since 5.1
|
* @since 5.1
|
||||||
*/
|
*/
|
||||||
public class FixJpgJpgThumbnails {
|
public class FixJpgJpgThumbnails {
|
||||||
@ -84,7 +84,7 @@ public class FixJpgJpgThumbnails {
|
|||||||
private static void processItem(Context context, Item item) throws SQLException, AuthorizeException, IOException {
|
private static void processItem(Context context, Item item) throws SQLException, AuthorizeException, IOException {
|
||||||
// Some bitstreams like Infographics are large JPGs and put in the ORIGINAL bundle on purpose so we shouldn't
|
// Some bitstreams like Infographics are large JPGs and put in the ORIGINAL bundle on purpose so we shouldn't
|
||||||
// swap them.
|
// swap them.
|
||||||
List<MetadataValue> itemTypes = itemService.getMetadataByMetadataString(item, "dc.type");
|
List<MetadataValue> itemTypes = itemService.getMetadataByMetadataString(item, "dcterms.type");
|
||||||
boolean itemHasInfographic = false;
|
boolean itemHasInfographic = false;
|
||||||
for (MetadataValue itemType: itemTypes) {
|
for (MetadataValue itemType: itemTypes) {
|
||||||
if (itemType.getValue().equals("Infographic")) {
|
if (itemType.getValue().equals("Infographic")) {
|
||||||
|
41
src/main/java/io/github/ilri/cgspace/scripts/README.md
Normal file
41
src/main/java/io/github/ilri/cgspace/scripts/README.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Scripts
|
||||||
|
Java-based helpers used on the [CGSpace](https://cgspace.cgiar.org) institutional repository:
|
||||||
|
|
||||||
|
- **FixJpgJpgThumbnails**: Fix low-quality ".jpg.jpg" thumbnails by replacing them with their originals
|
||||||
|
|
||||||
|
Tested on DSpace 6.3. Read more about the [DSpace curation system](https://wiki.lyrasis.org/display/DSDOC5x/Curation+System).
|
||||||
|
|
||||||
|
## Build and Install
|
||||||
|
|
||||||
|
### Integrate into DSpace Build
|
||||||
|
To use these curation tasks in a DSpace project add the following dependency to `dspace/modules/additions/pom.xml`:
|
||||||
|
|
||||||
|
```
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.github.ilri.cgspace</groupId>
|
||||||
|
<artifactId>cgspace-java-helpers</artifactId>
|
||||||
|
<version>6.1-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
The jar will be copied to all DSpace applications.
|
||||||
|
|
||||||
|
### Manual Build and Install
|
||||||
|
To build the standalone jar:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ mvn package
|
||||||
|
```
|
||||||
|
|
||||||
|
Copy the resulting jar to the DSpace `lib` directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cp target/cgspace-java-helpers-6.1-SNAPSHOT.jar ~/dspace/lib/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Invocation
|
||||||
|
The script only takes one argument, which is a community, collection, or item:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ dspace dsrun io.github.ilri.cgspace.scripts.FixJpgJpgThumbnails 10568/83389
|
||||||
|
```
|
Reference in New Issue
Block a user