From 7a0f5a20d4c4a93d19ea986a8ed0d71d867725de Mon Sep 17 00:00:00 2001
From: Saurabh Parkhi <4743002+sparkhi@users.noreply.github.com>
Date: Wed, 26 Jun 2024 16:15:20 +0100
Subject: [PATCH] 6.8.x release (#1119)
* some documentation update
* [maven-release-plugin] prepare release droid-6.8.0-RC1
* [maven-release-plugin] prepare for next development iteration
* Export dialog minimum size reduced and tooltip made multiline (#1110)
* > not allowed in javadoc
* [maven-release-plugin] prepare release droid-6.8.0-RC2
* [maven-release-plugin] prepare for next development iteration
* Improved the validation error messages on export template parsing (#1113)
* Improved the validation error messages on export template parsing
* Updated documentation for csv columns in relation to export template
* Updated cxf version due to underlying vulnerability
* Updated changelog
* [maven-release-plugin] prepare release droid-6.8.0-RC3
* [maven-release-plugin] prepare for next development iteration
* Updated to latest JRE, increased max memory and updated docs to reflect the changes (#1115)
* Updated to latest JRE, increased max memory and updated docs to reflect the changes
* Case corrected for Megabytes
* Removed appveyor build status icon
* Minor text correction
* [maven-release-plugin] prepare release droid-6.8.0
* [maven-release-plugin] prepare for next development iteration
---------
Co-authored-by: Saurabh Parkhi
---
README.md | 9 +-
droid-api/pom.xml | 2 +-
droid-binary/bin/ChangeLog | 11 +
droid-binary/bin/droid.bat | 6 +-
droid-binary/bin/droid.sh | 2 +-
droid-binary/pom.xml | 8 +-
droid-build-tools/pom.xml | 2 +-
droid-command-line/pom.xml | 2 +-
droid-container/pom.xml | 2 +-
droid-core-interfaces/pom.xml | 2 +-
droid-core/pom.xml | 2 +-
droid-export-interfaces/pom.xml | 2 +-
.../export/interfaces/ExportTemplate.java | 4 +-
droid-export/pom.xml | 2 +-
.../template/ExportTemplateBuilder.java | 23 +-
.../template/ExportTemplateBuilderTest.java | 54 ++-
droid-help/pom.xml | 2 +-
.../Web pages/Exporting profiles.html | 401 ++++++++++--------
.../src/main/resources/Web pages/FAQ.html | 2 +-
.../Web pages/Startup configuration.html | 6 +-
.../main/resources/Web pages/Whats New.html | 23 +
droid-parent/pom.xml | 4 +-
droid-report-interfaces/pom.xml | 2 +-
droid-report/pom.xml | 2 +-
droid-results/pom.xml | 2 +-
droid-swing-ui/pom.xml | 2 +-
.../droid/gui/export/ExportDialog.form | 4 +-
.../droid/gui/export/ExportDialog.java | 4 +-
.../droid/gui/export/Bundle.properties | 2 +-
droid-tools/pom.xml | 2 +-
pom.xml | 2 +-
31 files changed, 355 insertions(+), 238 deletions(-)
diff --git a/README.md b/README.md
index eed77ae75..9d1d2218e 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
# DROID (Digital Record Object Identification)
[![CI](https://github.com/digital-preservation/droid/workflows/CI/badge.svg)](https://github.com/digital-preservation/droid/actions?query=workflow%3ACI)
-[![Build status](https://ci.appveyor.com/api/projects/status/hrr6c3ckbghjvd7h/branch/master?svg=true)](https://ci.appveyor.com/project/dpreservation/droid/branch/master)
[![Coverage Status](https://coveralls.io/repos/github/digital-preservation/droid/badge.svg?branch=master)](https://coveralls.io/github/digital-preservation/droid?branch=master)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/uk.gov.nationalarchives/droid/badge.svg)](https://search.maven.org/search?q=g:uk.gov.nationalarchives)
@@ -111,17 +110,17 @@ Once the code is cloned into a folder (e.g. `droid`), executing `mvn clean insta
### Linux / OSX users
-You will need JAVA 8 to 11 installed to run DROID.
+You will need JAVA 8 to 17 installed to run DROID.
-Unpack the archive `droid-binary-${VERSION}-bin-unix.zip`, then use the `droid.sh` script to run the application.
+Unpack the archive `droid-binary-${VERSION}-bin.zip`, then use the `droid.sh` script to run the application.
### Windows users
Archive `droid-binary-${VERSION}-bin-win64-with-jre.zip`
-You will need JAVA 8 to 11 installed to run DROID. For Windows users who might not be able to install JAVA, the provided bundle includes JAVA 11.
+You will need JAVA 8 to 17 installed to run DROID. For Windows users who might not be able to install JAVA, the provided bundle includes JAVA 17.
-Unpack the archive `droid-binary-${VERSION}-bin-win32-with-jre.zip`, then use the `droid.bat` script to run the application.
+Unpack the archive `droid-binary-${VERSION}-bin-win64-with-jre.zip`, then use the `droid.bat` script to run the application.
## Signatures
diff --git a/droid-api/pom.xml b/droid-api/pom.xml
index 70098f8be..bc52b5e39 100644
--- a/droid-api/pom.xml
+++ b/droid-api/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-binary/bin/ChangeLog b/droid-binary/bin/ChangeLog
index cff2f39b8..2d11fd232 100644
--- a/droid-binary/bin/ChangeLog
+++ b/droid-binary/bin/ChangeLog
@@ -1,3 +1,14 @@
+Version 6.8.0
+ * Feature: Export Templates - Ability to customise the Droid CSV export by defining templates
+ * #932 Improvement: Prompt for a new profile creation on closing the preferences dialog
+ * #938 Improvement: The Windows distributable now includes a 64 bit Java 17 JRE
+ * #1063 Improvement: Updated commons-httpclient dependecy used for signature download
+ * #561 Bugfix: On Windows, when a profile is closed, the associated profile folder is not deleted
+ * #1072 Bugfix: Empty columns are not populated with a blank when a file has more than one format identification
+ * #1011 Bugfix: Mismatch in the format name between GUI and API when identification method is 'Container'
+ * #1100 Bugfix: Cancelling the preferences dialog still makes changes to the preferences
+ * #1072 Bugfix: Fewer elements in data row when exporting profiles per file when some of them have more than one identification
+
Version 6.7.0
* #898 Improvement: Sigtool uses the version of java bundled with Droid on the Windows OS
* #938 Improvement: Internal API result includes whether there is an extension mismatch in identification
diff --git a/droid-binary/bin/droid.bat b/droid-binary/bin/droid.bat
index bb5926658..f35025a5a 100644
--- a/droid-binary/bin/droid.bat
+++ b/droid-binary/bin/droid.bat
@@ -94,14 +94,14 @@ REM ---------------
REM This is the maximum memory DROID can use in megabytes.
REM Remove the "REM " from the line below and set the maximum memory after the "=".
REM Also configure this property using the environment variable: droidMemory.
-REM SET droidMemory=512
+REM SET droidMemory=1024
REM Assemble options
REM ================
-REM Default to using 512 megabytes of memory if no other settings provided:
-SET DROID_OPTIONS="-Xmx512m"
+REM Default to using 1024 megabytes of memory if no other settings provided:
+SET DROID_OPTIONS="-Xmx1024m"
IF "%droidMemory%"=="" GOTO UserDir
SET DROID_OPTIONS="-Xmx%droidMemory%m"
diff --git a/droid-binary/bin/droid.sh b/droid-binary/bin/droid.sh
index 0185d51fd..d2965612b 100644
--- a/droid-binary/bin/droid.sh
+++ b/droid-binary/bin/droid.sh
@@ -86,7 +86,7 @@ logLevel=""
# Max memory: droidMemory
# -----------------------
# The maximum memory for DROID to use in megabytes.
-droidMemory="512m"
+droidMemory="1024m"
# Run DROID:
diff --git a/droid-binary/pom.xml b/droid-binary/pom.xml
index eeb1a5f0c..23d870fd3 100644
--- a/droid-binary/pom.xml
+++ b/droid-binary/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
@@ -34,7 +34,7 @@
- https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9.1/OpenJDK17U-jre_x64_windows_hotspot_17.0.9_9.zip
+ https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.11%2B9/OpenJDK17U-jre_x64_windows_hotspot_17.0.11_9.zip
false
${project.build.directory}
@@ -55,9 +55,9 @@
-
+
-
+
diff --git a/droid-build-tools/pom.xml b/droid-build-tools/pom.xml
index ab6a4c2e6..6042aef5a 100644
--- a/droid-build-tools/pom.xml
+++ b/droid-build-tools/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-command-line/pom.xml b/droid-command-line/pom.xml
index b287f52fc..e975bcf39 100644
--- a/droid-command-line/pom.xml
+++ b/droid-command-line/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-container/pom.xml b/droid-container/pom.xml
index 47f8ac863..41d1bcce2 100644
--- a/droid-container/pom.xml
+++ b/droid-container/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-core-interfaces/pom.xml b/droid-core-interfaces/pom.xml
index 20734fad5..ab3cb19ba 100644
--- a/droid-core-interfaces/pom.xml
+++ b/droid-core-interfaces/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-core/pom.xml b/droid-core/pom.xml
index 6dedd9de4..b8f525ea1 100644
--- a/droid-core/pom.xml
+++ b/droid-core/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-export-interfaces/pom.xml b/droid-export-interfaces/pom.xml
index ad22bbe82..f1dbe5793 100644
--- a/droid-export-interfaces/pom.xml
+++ b/droid-export-interfaces/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-export-interfaces/src/main/java/uk/gov/nationalarchives/droid/export/interfaces/ExportTemplate.java b/droid-export-interfaces/src/main/java/uk/gov/nationalarchives/droid/export/interfaces/ExportTemplate.java
index e8a052d92..b11a7d274 100644
--- a/droid-export-interfaces/src/main/java/uk/gov/nationalarchives/droid/export/interfaces/ExportTemplate.java
+++ b/droid-export-interfaces/src/main/java/uk/gov/nationalarchives/droid/export/interfaces/ExportTemplate.java
@@ -35,11 +35,11 @@
/**
* ExportTemplate interface.
- * There is only one method which returns a map of integer -> ExportTemplateColumnDef
+ * There is only one method which returns a map of integer - ExportTemplateColumnDef
*/
public interface ExportTemplate {
/**
- * Get the map of Integer -> ExportTemplateColumnDef representing column order.
+ * Get the map of Integer - ExportTemplateColumnDef representing column order.
* @return Map with keys as column order and values as column definition
*/
Map getColumnOrderMap() ;
diff --git a/droid-export/pom.xml b/droid-export/pom.xml
index a8293ad60..3721992c9 100644
--- a/droid-export/pom.xml
+++ b/droid-export/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-export/src/main/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilder.java b/droid-export/src/main/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilder.java
index 88f0c58e6..f9ff6b92b 100644
--- a/droid-export/src/main/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilder.java
+++ b/droid-export/src/main/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilder.java
@@ -111,15 +111,25 @@ private Map parseExportTemplateV1(List
if (token2.startsWith(DATA_COLUMN_PREFIX)) {
columnMap.put(i, createProfileNodeDef(header, token2));
- } else if ((token2.isEmpty()) || (token2.startsWith(DOUBLE_QUOTES))) {
- columnMap.put(i, createConstantStringDef(header, token2));
- } else {
+ } else if (isExpressionForDataModification(token2)) {
columnMap.put(i, createDataModifierDef(header, token2));
+ } else {
+ columnMap.put(i, createConstantStringDef(header, token2));
}
}
return columnMap;
}
+ private boolean isExpressionForDataModification(String expressionParam) {
+ List operations = Arrays.stream(
+ ExportTemplateColumnDef.DataModification.values()).map(v -> v.toString() + OPENING_BRACKET).
+ collect(Collectors.toList());
+ String expression = expressionParam.trim();
+
+ List possibleOperations = operations.stream().filter(op -> expression.startsWith(op)).collect(Collectors.toList());
+ return possibleOperations.size() > 0;
+ }
+
private ExportTemplateColumnDef createDataModifierDef(String header, String param2) {
assertDataModifierSyntaxValid(param2);
@@ -168,10 +178,11 @@ private ExportTemplateColumnDef createConstantStringDef(String header, String pa
if (param2.isEmpty()) {
return new ConstantStringColumnDef("", header);
} else {
- if (!param2.endsWith(DOUBLE_QUOTES)) {
- throw new ExportTemplateParseException("The line with a constant value ('" + param2 + "') in template definition does not have closing quotes");
+ if (param2.startsWith(DOUBLE_QUOTES) && param2.endsWith(DOUBLE_QUOTES)) {
+ return new ConstantStringColumnDef(param2.substring(1, param2.length() - 1), header);
+ } else {
+ throw new ExportTemplateParseException("The line with a constant value ('" + param2 + "') is not fully enclosed in quotes");
}
- return new ConstantStringColumnDef(param2.substring(1, param2.length() - 1), header);
}
}
diff --git a/droid-export/src/test/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilderTest.java b/droid-export/src/test/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilderTest.java
index 4a81d0836..6030cf247 100644
--- a/droid-export/src/test/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilderTest.java
+++ b/droid-export/src/test/java/uk/gov/nationalarchives/droid/export/template/ExportTemplateBuilderTest.java
@@ -109,6 +109,7 @@ public void should_treat_missing_value_as_empty_string_constant_in_export_templa
ExportTemplate template = builder.buildExportTemplate(tempFile.getAbsolutePath());
assertNotNull(template);
assertTrue(template.getColumnOrderMap().get(1) instanceof ConstantStringColumnDef);
+ assertEquals("", template.getColumnOrderMap().get(1).getDataValue());
assertTrue(template.getColumnOrderMap().get(2) instanceof DataModifierColumnDef);
assertEquals("FILE_PATH", template.getColumnOrderMap().get(2).getOriginalColumnName());
}
@@ -166,7 +167,37 @@ public void should_throw_an_exception_if_the_constant_string_value_does_not_have
Files.write(tempFile.toPath(), data, StandardOpenOption.WRITE);
ExportTemplateParseException ex = assertThrows(ExportTemplateParseException.class, () -> builder.buildExportTemplate(tempFile.getAbsolutePath()));
- assertEquals("The line with a constant value ('\"English') in template definition does not have closing quotes", ex.getMessage());
+ assertEquals("The line with a constant value ('\"English') is not fully enclosed in quotes", ex.getMessage());
+ }
+
+ @Test
+ public void should_throw_an_exception_if_the_constant_string_value_does_not_have_opening_double_quotes() throws IOException {
+ ExportTemplateBuilder builder = new ExportTemplateBuilder();
+ File tempFile = temporaryFolder.newFile("export-task-test-default-encoding");
+ List data = Arrays.asList(
+ "version 1.0",
+ "",
+ "Language: English\"",
+ "");
+ Files.write(tempFile.toPath(), data, StandardOpenOption.WRITE);
+
+ ExportTemplateParseException ex = assertThrows(ExportTemplateParseException.class, () -> builder.buildExportTemplate(tempFile.getAbsolutePath()));
+ assertEquals("The line with a constant value ('English\"') is not fully enclosed in quotes", ex.getMessage());
+ }
+
+ @Test
+ public void should_throw_an_exception_if_the_constant_string_value_does_not_have_fully_enclosing_quotes() throws IOException {
+ ExportTemplateBuilder builder = new ExportTemplateBuilder();
+ File tempFile = temporaryFolder.newFile("export-task-test-default-encoding");
+ List data = Arrays.asList(
+ "version 1.0",
+ "",
+ "Language: En\"gli\"sh",
+ "");
+ Files.write(tempFile.toPath(), data, StandardOpenOption.WRITE);
+
+ ExportTemplateParseException ex = assertThrows(ExportTemplateParseException.class, () -> builder.buildExportTemplate(tempFile.getAbsolutePath()));
+ assertEquals("The line with a constant value ('En\"gli\"sh') is not fully enclosed in quotes", ex.getMessage());
}
@Test
@@ -196,7 +227,7 @@ public void should_throw_an_exception_when_the_operation_is_unknown() throws IOE
Files.write(tempFile.toPath(), data, StandardOpenOption.WRITE);
ExportTemplateParseException ex = assertThrows(ExportTemplateParseException.class, () -> builder.buildExportTemplate(tempFile.getAbsolutePath()));
- assertEquals("Undefined operation 'Lower' encountered in export template", ex.getMessage());
+ assertEquals("The line with a constant value ('Lower($ID)') is not fully enclosed in quotes", ex.getMessage());
}
@Test
@@ -228,6 +259,21 @@ public void should_support_colon_in_the_constant_string_value() throws IOExcepti
assertEquals("http://www.knowingwhere.com", template.getColumnOrderMap().get(0).getDataValue());
}
+ @Test
+ public void should_support_constant_value_which_includes_operation_name() throws IOException {
+ ExportTemplateBuilder builder = new ExportTemplateBuilder();
+ File tempFile = temporaryFolder.newFile("export-task-test-default-encoding");
+ List data = Arrays.asList(
+ "version 1.0",
+ " MyWebsite : \"LCASE($ID)\"",
+ "");
+ Files.write(tempFile.toPath(), data, StandardOpenOption.WRITE);
+
+ ExportTemplate template = builder.buildExportTemplate(tempFile.getAbsolutePath());
+ assertEquals("MyWebsite", template.getColumnOrderMap().get(0).getHeaderLabel());
+ assertEquals("LCASE($ID)", template.getColumnOrderMap().get(0).getDataValue());
+ }
+
@Test
public void should_throw_an_exception_when_an_operation_cannot_be_located() throws IOException {
ExportTemplateBuilder builder = new ExportTemplateBuilder();
@@ -239,7 +285,7 @@ public void should_throw_an_exception_when_an_operation_cannot_be_located() thro
Files.write(tempFile.toPath(), data, StandardOpenOption.WRITE);
ExportTemplateParseException ex = assertThrows(ExportTemplateParseException.class, () -> builder.buildExportTemplate(tempFile.getAbsolutePath()));
- assertEquals("Invalid syntax in data modifier expression 'Crown Copyright (C)', expecting '$' after '('", ex.getMessage());
+ assertEquals("The line with a constant value ('Crown Copyright (C)') is not fully enclosed in quotes", ex.getMessage());
}
@Test
@@ -253,7 +299,7 @@ public void should_throw_an_exception_when_a_constant_is_not_enclosed_in_double_
Files.write(tempFile.toPath(), data, StandardOpenOption.WRITE);
ExportTemplateParseException ex = assertThrows(ExportTemplateParseException.class, () -> builder.buildExportTemplate(tempFile.getAbsolutePath()));
- assertEquals("Invalid syntax in data modifier expression 'Crown Copyright', expecting exactly one occurrence of '('", ex.getMessage());
+ assertEquals("The line with a constant value ('Crown Copyright') is not fully enclosed in quotes", ex.getMessage());
}
@Test
diff --git a/droid-help/pom.xml b/droid-help/pom.xml
index 36afff4d1..94cf9ffdd 100644
--- a/droid-help/pom.xml
+++ b/droid-help/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-help/src/main/resources/Web pages/Exporting profiles.html b/droid-help/src/main/resources/Web pages/Exporting profiles.html
index 4ab16af2d..c2bfcf34b 100644
--- a/droid-help/src/main/resources/Web pages/Exporting profiles.html
+++ b/droid-help/src/main/resources/Web pages/Exporting profiles.html
@@ -105,195 +105,207 @@
-
- ID
-
-
- This is a unique number assigned to each file, folder or archival file processed by DROID.
-
-
- PARENT_ID
-
-
- This is the id of the archival file or folder in which this file is contained.
-
-
- URI (Uniform Resource Identifier)
-
-
- This provides a standard, cross-platform way of describing where resources are located.
- URIs are described in more detail in "Information collected by DROID".
-
-
- File path
-
-
- The file system location of the resource being profiled, if the resource was directly
- in a file system. Some files are not on the file system - for example, files inside a
- zip file. In this case, the file paths are written relative to the parent file which
- exists on the file system. Such paths also include the type of archive as a prefix.
-
-
- Please note that file paths are platform dependent (they are different on Windows and unix).
- DROID will write out file paths for the system on which it is currently running.
- This means that if you profile files on a unix machine, then export the profiles on a
- Windows machine, the file paths will be written out as if they were Windows file paths, and
- vice versa.
-
-
- Name
-
-
- The file name of the resource being profiled.
-
-
-
- This field gives the method by which a resource identification has been made. DROID
- can recognise resources by several methods:
-
-
- -
- Extension - the file format was identified only by its filename extension. This method may not be very reliable, as the filename
- extension may be wrong. It is only used when DROID cannot identify a resource by
- another method, and cannot usually identify what the version of a file format is, only its
- broad type.
-
- -
- Signature - the file format was identified by finding a file format signature inside
- the file itself. This method is more reliable than filename extensions, and can
- identify the precise version of a file format.
-
- -
- Container - the file format was identified by finding embedded files and patterns
- within them. This method is as reliable as signature identifications, and can be more
- reliable.
-
-
-
-
- This field gives the identification status of a resource. It can have several values:
-
-
- -
- Not done - the resource has not yet been profiled.
-
- -
- Done - the resource was processed with no errors.
-
- -
- Access denied - the operating system refused to give DROID read permissions to the
- resource.
-
- -
- Not found - the resource was moved or deleted before DROID could read it.
-
- -
- Error - an error occurred while trying to profile a resource. For example, if
- DROID is prevented from reading a file due to the user not having read permissions to it,
- this will result in a profiling error for that file.
-
-
-
-
- The size in bytes of a file. Only files have a size - folders do not. However,
- note that some files can contain other files inside them, for example zip files.
- In this case, the zip file has a size (as it is a file), and so do the files inside it.
- The size reported in all cases is the uncompressed size of each file, as it would
- appear if extracted from the container file.
-
-
- Type
-
-
- DROID categorises the files and folders it profiles as being one of three types:
-
-
- -
-
- File
-
- -
-
- Folder
-
- -
- Archival file (e.g. zip)
-
-
-
-
- The filename extension of a file, which is the last part of a filename following a full
- stop. Only files have extensions, as they indicate the type of the file.
- Even if a folder has a full stop in its name, it will not be assigned an extension.
-
-
-
- The date and time on which a resource was last modified.
-
-
- MD5, SHA1, SHA256 or SHA512 hash
-
-
- If you have enabled hash generation in
- the preferences, then this column will contain the MD5, SHA1, SHA256 or SHA512 hash for each file and archival file
- processed. See "Detecting duplicate files"
- for more information on hashes.
-
-
-
- The PRONOM Unique IDentifier (PUID) identifies the precise file format of a profiled
- file. When a resource has been identified, it is assigned a PUID. A unique
- identifier exists for every file format that DROID can recognise, and these identifiers are
- maintained in the PRONOM technical registry database, hosted at the UK
- National Archives.
-
-
-
- The mime-type of an identified file format is a high level format identifier assigned by the
- Internet Assigned Numbers. It is widely used in email and other internet
- protocols to identify the type of resource. Not all file formats identified by DROID
- have an assigned mime-type, and different PUIDs assigned by DROID can
- have the same mime-type
-
-
+
- The name of an identified file format, as listed in the PRONOM technical registry against its PUID.
-
-
+ The following table describes the columns which can be exported from DROID.
- The version of an identified file format, as listed in the PRONOM technical registry against its PUID. Not all file formats have a defined version, so this field can be
- blank even when a file has a PUID.
+
+
+ Column Name |
+ Description |
+ Notes |
+
+
+ ID |
+ This is a unique number assigned to each file, folder or archival file processed by DROID. |
+ |
+
+
+ PARENT_ID |
+ This is the id of the archival file or folder in which this file is contained. |
+ |
+
+
+ URI |
+ Uniform Resource Identifier: This provides a standard, cross-platform way of describing where resources are located.
+ URIs are described in more detail in "Information collected by DROID |
+
+
+ FILE_PATH |
+ The file system location of the resource being profiled, if the resource was directly
+ in a file system. Some files are not on the file system - for example, files inside a
+ zip file. In this case, the file paths are written relative to the parent file which
+ exists on the file system. Such paths also include the type of archive as a prefix. |
+ file paths are platform dependent (they are different on Windows and unix).
+ DROID will write out file paths for the system on which it is currently running.
+ This means that if you profile files on a unix machine, then export the profiles on a
+ Windows machine, the file paths will be written out as if they were Windows file paths, and
+ vice versa.
+ |
+
+
+ NAME |
+ The file name of the resource being profiled. |
+
+
+ METHOD |
+ This field gives the method by which a resource identification has been made. |
+
+ Possible values:
+
+ -
+ Extension - the file format was identified only by its filename extension. This method may not be very reliable, as the filename
+ extension may be wrong. It is only used when DROID cannot identify a resource by
+ another method, and cannot usually identify what the version of a file format is, only its
+ broad type.
+
+ -
+ Signature - the file format was identified by finding a file format signature inside
+ the file itself. This method is more reliable than filename extensions, and can
+ identify the precise version of a file format.
+
+ -
+ Container - the file format was identified by finding embedded files and patterns
+ within them. This method is as reliable as signature identifications, and can be more
+ reliable.
+
+
+ |
+
+
+ STATUS |
+ This field gives the identification status of a resource. |
+
+ Possible values:
+
+ -
+ Not done - the resource has not yet been profiled.
+
+ -
+ Done - the resource was processed with no errors.
+
+ -
+ Access denied - the operating system refused to give DROID read permissions to the
+ resource.
+
+ -
+ Not found - the resource was moved or deleted before DROID could read it.
+
+ -
+ Error - an error occurred while trying to profile a resource. For example, if
+ DROID is prevented from reading a file due to the user not having read permissions to it,
+ this will result in a profiling error for that file.
+
+
+ |
+
+
+ SIZE |
+ The size in bytes of a file. |
+ Only files have a size, folders do not have a size. However, some files can contain other files inside them, for example zip files. In this case, the zip file has a size (as it is a file), and so do the files inside it. The size reported in all cases is the uncompressed size of each file, as it would appear if extracted from the container file. |
+
+
+ TYPE |
+ The type of the resource |
+
+ DROID categorises the files and folders it profiles as being one of three types:
+
+
+ -
+
+ File
+
+ -
+
+ Folder
+
+ -
+ Archival file (e.g. zip)
+
+
+ |
+
+
+ EXT |
+ The file extension of the resource |
+ Extension is the last part of a filename following a full stop. Only files have extensions, as they indicate the type of the file. Even if a folder has a full stop in its name, it will not be assigned an extension. |
+
+
+ LAST_MODIFIED |
+ The date and time on which a resource was last modified. |
+ |
+
+
+ EXTENSION_MISMATCH |
+ Whether there is a mismatch between the extension of the resource and its identification by signature |
+
+ Possible values:
+
+ -
+ true - the extension of the file is different from the expected extension as identified by DROID.
+
+ -
+ false - the extension of the file matches the expected extension as identified by DROID.
+
+
+ |
+
+
+ HASH |
+ Hash is a fixed-size string of characters that is generated by running the contents of a file through a mathematical algorithm. DROID supports MD%, SHA1, SHA256 and SHA512 algorithms |
+
+ If you have enabled hash generation in
+ the preferences, then this column will contain the MD5, SHA1, SHA256 or SHA512 hash for each file and archival file
+ processed. See "Detecting duplicate files"
+ for more information on hashes.
+ |
+
+
+ FORMAT_COUNT |
+ The number of identifications made to the resource. |
+ |
+
+
+ PUID |
+ The PRONOM Unique Identifier of the resource, which identifies the format |
+
+ The PRONOM Unique IDentifier (PUID) identifies the precise file format of a profiled
+ file. When a resource has been identified, it is assigned a PUID. A unique
+ identifier exists for every file format that DROID can recognise, and these identifiers are
+ maintained in the PRONOM technical registry database, hosted at the UK National Archives.
+ |
+
+
+ MIME_TYPE |
+ The mime type of the resource where known. |
+
+ The mime-type of an identified file format is a high level format identifier assigned by the
+ Internet Assigned Numbers. It is widely used in email and other internet protocols to identify the type of resource. Not all file formats identified by DROID
+ have an assigned mime-type, and different PUIDs assigned by DROID can have the same mime-type
+ |
+
+
+ FORMAT_NAME |
+
+ The name of an identified file format, as listed in the PRONOM
+ technical registry against its
+ PUID.
+ |
+
+
+ FORMAT_VERSION |
+
+ The version of an identified file format, as listed in the PRONOM
+ technical registry against its PUID.
+ Not all file formats have a defined version, so this field can be blank even when a file has a PUID.
+ |
+
+
+
Selecting a predefined Export Template for export
@@ -312,9 +324,10 @@
columns to be exported. Using a template, you can customise headers for the data columns, add new columns
to the export, convert the data in a column to be uppercase / lowercase and change the order in which columns
appear in the export. You can make an export template available to Droid by copying it into the
- ".droid6\export_templates" folder. An example template is shown below:
+ ".droid6\export_templates" folder. You can customise the columns listed in the CSV Columns section.
+ An example template is shown below:
version 1.0
Identifier: $ID
@@ -325,7 +338,7 @@
The above template indicates:
-
+
- The template is defined in version 1.0 of template syntax
- There are 4 columns to be exported in the order Identifier, LowerName, Language and Submitter
- Values in the column "Identifier" are populated using values in the "ID" column
@@ -334,6 +347,20 @@
- There is a non-profile column called "Submitter" and the values are left empty
+
+
+ Following table describes the operations currently supported by DROID for data modifications.
+ These operations can be applied to data columns listed in the CSV Columns table.
+
+
+
+ Operation |
+ Description |
+
+ LCASE | Converts the data from specified column to lower case e.g. LCASE($TYPE) |
+ UCASE | Converts the data from specified column to upper case e.g. UCASE($FORMAT_NAME) |
+
+
Other options
diff --git a/droid-help/src/main/resources/Web pages/FAQ.html b/droid-help/src/main/resources/Web pages/FAQ.html
index a373abd84..f7a21a564 100644
--- a/droid-help/src/main/resources/Web pages/FAQ.html
+++ b/droid-help/src/main/resources/Web pages/FAQ.html
@@ -125,7 +125,7 @@
What version of Java do I need?
- If you are on Windows, a package is provided which also includes JRE with the droid binary. To use the version without Java bundled, you will need to have Java 8 to 12 installed on your machine in order to run DROID.
+ If you are on Windows, a package is provided which also includes JRE with the droid binary. To use the version without Java bundled, you will need to have Java 8 to 17 installed on your machine in order to run DROID.
The latest JAVA updates can be obtained from oracle.com/technetwork/java/index.html.
diff --git a/droid-help/src/main/resources/Web pages/Startup configuration.html b/droid-help/src/main/resources/Web pages/Startup configuration.html
index 30e4277c0..1ed0e3958 100644
--- a/droid-help/src/main/resources/Web pages/Startup configuration.html
+++ b/droid-help/src/main/resources/Web pages/Startup configuration.html
@@ -136,8 +136,8 @@
Java programs can only use as much memory as the Java Runtime Environment sets aside
- for them. By default, this value is often quite low. We recommend that DROID runs
- with up to 512Mb of memory potentially available, which is the default when DROID runs if no
+ for them. By default, this value is often quite low. We recommend that DROID runs
+ with up to 1024MB of memory potentially available, which is the default when DROID runs if no
further configuration is done.
@@ -148,7 +148,7 @@
-
Default value (running through scripts and the DROID.exe file): 512Mb
+ "Monospaced, Courier New, Courier, mono">1024MB
-
Environment variable:
+
+ Droid 6.8.0 offers the following features, improvements and bugfixes:
+
+
+ - Feature: Export Templates - Ability to customise the Droid CSV export by defining templates
+ - #932 Improvement: Prompt for a new profile creation on closing the preferences dialog
+ - #938 Improvement: The Windows distributable now includes a 64 bit JRE
+ - #1063 Improvement: Updated commons-httpclient dependecy used for signature download
+ - #561 Bugfix: On Windows, when a profile is closed, the associated profile folder is not deleted
+ - #1072 Bugfix: Empty columns are not populated with a blank when a file has more than one format identification
+ - #1011 Bugfix: Mismatch in the format name between GUI and API when identification method is 'Container'
+ - #1100 Bugfix: Cancelling the preferences dialog still makes changes to the preferences
+ - #1072 Bugfix: Fewer elements in data row when exporting profiles per file when some of them have more than one identification
+
+
+ For a full list of the included changes with this version, please check the changelog
+ on github
+
Droid 6.7.0 offers the following fixes and improvements:
@@ -76,6 +94,11 @@
- Improvement: Moved to using a different zip library for opening the zip archives
- #953 Bugfix: On CLI, -At and -Wt options without any arguments do not analyse archives or web archives
+
+ For a full list of the included changes with this version, please check the changelog
+ on github
+
+
Droid 6.6.1 offers the following fixes and improvements:
diff --git a/droid-parent/pom.xml b/droid-parent/pom.xml
index 0417785f5..2660d2f69 100644
--- a/droid-parent/pom.xml
+++ b/droid-parent/pom.xml
@@ -11,7 +11,7 @@
uk.gov.nationalarchives
droid-parent
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
pom
droid-parent
@@ -92,7 +92,7 @@
5.3.27
5.4.1.Final
10.13.1.1
- 3.5.5
+ 3.5.8
2.1.0
2.3.1
9.1.22
diff --git a/droid-report-interfaces/pom.xml b/droid-report-interfaces/pom.xml
index 721f73c55..a8e377c0c 100644
--- a/droid-report-interfaces/pom.xml
+++ b/droid-report-interfaces/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-report/pom.xml b/droid-report/pom.xml
index d16ea9ae1..1107603fb 100644
--- a/droid-report/pom.xml
+++ b/droid-report/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-results/pom.xml b/droid-results/pom.xml
index 5ba59edb1..efde09eeb 100644
--- a/droid-results/pom.xml
+++ b/droid-results/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-swing-ui/pom.xml b/droid-swing-ui/pom.xml
index 4e816ec5c..338d4ad23 100644
--- a/droid-swing-ui/pom.xml
+++ b/droid-swing-ui/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.form b/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.form
index d0a0736a6..4b4d2633d 100644
--- a/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.form
+++ b/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.form
@@ -11,11 +11,11 @@
-
+
-
+
diff --git a/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.java b/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.java
index dbb5a8f6a..29cc701c7 100644
--- a/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.java
+++ b/droid-swing-ui/src/main/java/uk/gov/nationalarchives/droid/gui/export/ExportDialog.java
@@ -327,9 +327,9 @@ private void initComponents() {
setTitle(NbBundle.getMessage(ExportDialog.class, "ExportDialog.title_1")); // NOI18N
setAlwaysOnTop(true);
- setMinimumSize(new Dimension(1155, 835));
+ setMinimumSize(new Dimension(730, 520));
setName("exportDialog"); // NOI18N
- setPreferredSize(new Dimension(1055, 760));
+ setPreferredSize(new Dimension(730, 520));
profileSelectLabel.setText(NbBundle.getMessage(ExportDialog.class, "ExportDialog.profileSelectLabel.text_1")); // NOI18N
diff --git a/droid-swing-ui/src/main/resources/uk/gov/nationalarchives/droid/gui/export/Bundle.properties b/droid-swing-ui/src/main/resources/uk/gov/nationalarchives/droid/gui/export/Bundle.properties
index 0cf305b6a..b4202e739 100644
--- a/droid-swing-ui/src/main/resources/uk/gov/nationalarchives/droid/gui/export/Bundle.properties
+++ b/droid-swing-ui/src/main/resources/uk/gov/nationalarchives/droid/gui/export/Bundle.properties
@@ -73,4 +73,4 @@ ExportDialog.jButtonSetAllColumns.text=Set all columns
ExportDialog.jButtonSetAllColumns.toolTipText=Sets all columns for export
ExportDialog.jLabel2.text=Select an export template:
ExportDialog.jCheckBoxUseTemplate.text=Use export template
-ExportDialog.jCheckBoxUseTemplate.toolTipText=If selected, you can choose a template configured in ".droid6/export_templates" folder. If not selected, you can choose columns.
+ExportDialog.jCheckBoxUseTemplate.toolTipText=If selected, you can choose a template configured in ".droid6/export_templates" folder.
If not selected, you can choose one or more columns.
diff --git a/droid-tools/pom.xml b/droid-tools/pom.xml
index 833427ba1..54b6a06c4 100644
--- a/droid-tools/pom.xml
+++ b/droid-tools/pom.xml
@@ -5,7 +5,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
../droid-parent
diff --git a/pom.xml b/pom.xml
index 876184059..8306b045d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
droid-parent
uk.gov.nationalarchives
- 6.8.0-SNAPSHOT
+ 6.8.1-SNAPSHOT
droid-parent