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 @@

- CSV File Columns + CSV File Columns

-

- 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. -

-

- Method -

-

- 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. -
  • -
-

- Job status -

-

- 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. -
  • -
-

- Size (bytes) -

-

- 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) -
  • -
-

- Extension -

-

- 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. -

-

- Last modified -

-

- 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. -

-

- PUID -

-

- 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 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 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 NameDescriptionNotes
IDThis is a unique number assigned to each file, folder or archival file processed by DROID.
PARENT_IDThis is the id of the archival file or folder in which this file is contained.
URIUniform 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_PATHThe 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. +
NAMEThe file name of the resource being profiled.
METHODThis 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. +
  • +
+
STATUSThis 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. +
  • +
+
SIZEThe 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.
TYPEThe 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) +
  • +
+
EXTThe file extension of the resourceExtension 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_MODIFIEDThe date and time on which a resource was last modified.
EXTENSION_MISMATCHWhether 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. +
  • +
+
HASHHash 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_COUNTThe number of identifications made to the resource.
PUIDThe 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_TYPEThe 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: -

    +
    1. The template is defined in version 1.0 of template syntax
    2. There are 4 columns to be exported in the order Identifier, LowerName, Language and Submitter
    3. Values in the column "Identifier" are populated using values in the "ID" column
    4. @@ -334,6 +347,20 @@

    5. 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. +

    + + + + + + + +
    OperationDescription
    LCASEConverts the data from specified column to lower case e.g. LCASE($TYPE)
    UCASEConverts 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