diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
index ec9905d5ea72fb46043564a934c4811e111aa173..cfb9c324fd4af8eca171f50b6cb450c315ff7422 100644
--- a/META-INF/MANIFEST.MF
+++ b/META-INF/MANIFEST.MF
@@ -1,2 +1,2 @@
-Main-Class: org.slub.rosetta.dps.repository.plugin.SLUBTechnicalMetadataExtractorCheckItTiffPlugin
+Main-Class: org.slub.rosetta.dps.repository.plugin.SLUBRetroMonographieTIFFFormatValidationPlugin
 
diff --git a/Makefile b/Makefile
index 1c699f29b34792b67fe42c4e3a7f51bae27013d9..3872367923537e2fd00710b456a1d64446e7b0ad 100644
--- a/Makefile
+++ b/Makefile
@@ -2,12 +2,12 @@
 # Andreas Romeyke, SLUB Dresden
 # Plugin, welches TIFFs via checkit_tiff validiert
 
-# Pfad zu Java 11
-JAVAPATH=/usr/lib/jvm/java-11-*/bin
-JAVARELEASE=11
+# Pfad zu Java
+JAVAPATH=/usr/lib/jvm/java-1.17.0-openjdk-*/bin/
+JAVARELEASE=17
 
 # Verwendete Rosetta-Version
-ROSETTAVERSION=7.1.0
+ROSETTAVERSION=7.3.0
 
 # Pfad zum Rosetta-SDK
 ROSETTASDK=/exlibris/dps/d4_1/system.dir/dps-sdk-${ROSETTAVERSION}/lib/
@@ -20,12 +20,12 @@ ROSETTASDKPLUGINS=${ROSETTASDK}/../../bundled_plugins/
 JUNITCLASSPATH=/usr/share/java/junit4.jar
 #SOURCESCLASSPATH=org/slub/rosetta/dps/repository/plugin/storage/nfs
 CLASSPATH=${ROSETTASDKDEPOSIT}/dps-sdk-${ROSETTAVERSION}.jar
+#BUILDPATH=$(CLASSPATH)
 
 # sources
-
-SOURCES=java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorCheckItTiffPlugin.java
+SOURCES=java/org/slub/rosetta/dps/repository/plugin/SLUBRetroMonographieTIFFFormatValidationPlugin.java
 OBJS=$(SOURCES:.java=.class)
-JAR=SLUBTechnicalMetadataExtractorCheckItTiffPlugin.jar
+JAR=SLUBRetroMonographieTIFFFormatValidationPlugin.jar
 BUILD=build/
 
 all: $(BUILD) $(JAR)
diff --git a/PLUGIN-INF/metadata_SLUBTechnicalMetadataExtractorCheckItTiffPlugin.xml b/PLUGIN-INF/metadata_SLUBRetroMonographieTIFFFormatValidationPlugin.xml
similarity index 83%
rename from PLUGIN-INF/metadata_SLUBTechnicalMetadataExtractorCheckItTiffPlugin.xml
rename to PLUGIN-INF/metadata_SLUBRetroMonographieTIFFFormatValidationPlugin.xml
index 6286785320ffbfa06880b951724e6228999380ea..5686b5a6672bc9230dc2c3d2d10a6d796df42d74 100644
--- a/PLUGIN-INF/metadata_SLUBTechnicalMetadataExtractorCheckItTiffPlugin.xml
+++ b/PLUGIN-INF/metadata_SLUBRetroMonographieTIFFFormatValidationPlugin.xml
@@ -1,12 +1,12 @@
 <pl:metadata-config xmlns:pl="http://www.exlibrisgroup.com/Plugins/1.0/"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <pl:pluginTypeName>MDExtractorPlugin</pl:pluginTypeName>
-  <pl:deployName>SLUBTechnicalMetadataExtractorCheckItTiffPlugin</pl:deployName>
-  <pl:className>org.slub.rosetta.dps.repository.plugin.SLUBTechnicalMetadataExtractorCheckItTiffPlugin</pl:className>
+  <pl:pluginTypeName>FormatValidationPlugin</pl:pluginTypeName>
+  <pl:deployName>SLUBRetroMonographieTIFFFormatValidationPlugin</pl:deployName>
+  <pl:className>org.slub.rosetta.dps.repository.plugin.SLUBRetroMonographieTIFFFormatValidationPlugin</pl:className>
   <pl:initParameters>
     <fr:x_form xmlns:fr="http://com/exlibris/digitool/common/forms/xmlbeans">
-      <form_name>SLUBTechnicalMetadataExtractorCheckItTiffPlugin_Params</form_name>
-      <description>SLUBTechnicalMetadataExtractorCheckItTiffPlugin_parameters_form</description>
+      <form_name>SLUBRetromonographieTIFFFormatValidationPlugin_Params</form_name>
+      <description>SLUBRetromonographieTIFFFormatValidationPlugin_parameters_form</description>
       <version>0.1</version>
       <grid_x>1</grid_x>
       <md_format>1</md_format>
@@ -69,9 +69,9 @@
       </x_fields>
     </fr:x_form>
   </pl:initParameters>
-  <pl:description>SLUB Technical Metadata Extractor Plugin, using check_it_tiff to validate
-    tiff-files</pl:description>
-  <pl:version>1.105</pl:version>
+  <pl:description>SLUB TIFF Validation Plugin, using check_it_tiff to validate
+    tiff-files from retrodigitized monographs</pl:description>
+  <pl:version>1.0</pl:version>
   <pl:materialType>DIGITAL</pl:materialType>
   <pl:module>Preservation</pl:module>
   <pl:generalType>TASK</pl:generalType>
@@ -84,8 +84,8 @@
       <lastName>SLUB Dresden</lastName>
       <telephone1/>
       <telephone2/>
-      <email>rosetta@slub-dresden.de</email>
-      <address1>Zellescher Weg 17</address1>
+      <email>langzeitarchiv@slub-dresden.de</email>
+      <address1>Zellescher Weg 18</address1>
       <address2/>
       <city>Dresden</city>
       <zipCode>01069</zipCode>
diff --git a/README.md b/README.md
index 9817ebf39fc7c15551bf5c2b43a8b3e5f7c4361d..6f15d6d98f990753493d35e35a3f7077aa1a1ad6 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,9 @@ Install
 -------
 
 * copy jar-file to /operational_shared/plugins/custom/
+* check API https://exlibrisgroup.github.io/Rosetta.dps-sdk-projects/current/javadoc/com/exlibris/dps/sdk/techmd/FormatValidationPlugin.html
 
 Configuration
 -------------
-
 You should double check the paths in the plugin configuration.
 
diff --git a/deploy_checkit_tiff/add_dnx_mappings/README.txt b/deploy_checkit_tiff/add_dnx_mappings/README.txt
deleted file mode 100644
index 66b6d9e26a9f85a8544969390c8930c86281dd2c..0000000000000000000000000000000000000000
--- a/deploy_checkit_tiff/add_dnx_mappings/README.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-How to automatically add Mappings between extracted Technical Metadata and DNX Significant Properties in Rosetta
-================================================================================================================
-
-:lang: en
-:encoding: utf-8
-:author: Jörg Sachse
-
-== Prerequisites
-
-* Desktop environment
-* Perl programming language
-* Selenium Perl module (download at https://metacpan.org/pod/Selenium::Remote::Driver)
-* Chrome browser (download at https://www.google.com/intl/de_de/chrome/)
-* Chrome driver compatible with the installed Chrome browser (download at https://sites.google.com/chromium.org/driver/)
-
-== How to install on Debian 11 (Buster)
-* sudo apt install perl chromium cpanminus unzip
-* cpanm Selenium::Remote::Driver
-* check Chromium version (i.e. "91.x.xxxx.xxx") --> download coresponding 'chromedriver_linux64.zip' from https://sites.google.com/chromium.org/driver/ (Downloads)
-* unzip chromedriver_linux64.zip
-
-== How to build
-
-* You don't have to do anything, just run the script.
-
-== How to run
-
-* general invocation
-** $# perl -I path/to/perl/modules ./add_dnx_mappings.pl --rosetta_host="Rosetta-Host.Domain.tld" --protocol="https" --ui_port="Port-Number" --user="Rosetta-User" --password="Rosetta-Password" --institution="Institution-Name" --plugin_name="Plugin-Name" --classification_group="Classification-Group"
-
-* example invocation:
-** $# perl -I path/to/perl/modules ./add_dnx_mappings.pl --rosetta_host="sdvrosetta-test.slub-dresden.de" --protocol="https" --ui_port="8443" --user="su-user" --password="Sw0rdF!$h" --institution="SLUB" --plugin_name="SLUBTechnicalMetadataExtractorCheckItTiffPlugin" --classification_group="Image (Mix)"
-
diff --git a/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl b/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl
deleted file mode 100644
index d1a6df54a8b21722e0de5da1bbae9d62fe633149..0000000000000000000000000000000000000000
--- a/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl
+++ /dev/null
@@ -1,265 +0,0 @@
-#!/usr/bin/env perl
-# adds all dnx properties
-#
-# usage:   perl add_dnx_mappings.pl rosetta-host rosetta-user rosetta-user-password rosetta-institution rosetta-login-port
-# example: perl add_dnx_mappings.pl rosetta.my-archive.domain user1 12345 MYINSTITUTE 8443
-#
-# needs a geckodriver and the Selenium::Remote::Driver module
-# see http://www.seleniumhq.org/
-#
-# tested against Rosetta 7.1 using ChromeDriver 98.0.4758.102 and Chrome 98 in Debian 11
-#
-# ensure, that the plugin is assigned to a classification, for example to "Image (Mix)"
-
-use strict;
-use warnings;
-use utf8;
-use feature qw(say signatures);
-no warnings qw(experimental::signatures);
-use Selenium::Remote::Driver;
-use Selenium::Chrome;
-use Term::ANSIColor; # colored print
-use Getopt::Long;
-
-
-my $host;
-my $protocol = 'https';
-my $ui_port = "8443";
-my $user;
-my $passwd;
-my $institution;
-my $plugin_name = 'SLUBTechnicalMetadataExtractorCheckItTiffPlugin';
-my $classification_group = 'Image (Mix)';
-my $driver;
-my $step;
-
-GetOptions(
-    "rosetta_host=s{1}"         => \$host,
-    "protocol:s{1}"             => \$protocol,
-    "ui_port:s{1}"              => \$ui_port,
-    "user=s{1}"                 => \$user,
-    "password=s{1}"             => \$passwd,
-    "institution=s{1}"          => \$institution,
-    "plugin_name:s{1}"          => \$plugin_name,
-    "classification_group:s{1}" => \$classification_group,
-    "step=i"                    => \$step,
-) or die("Error in command line arguments\n");
-die("invalid/missing argument: --rosetta_host")         unless $host;
-die("invalid/missing argument: --protocol")             unless $protocol;
-die("invalid/missing argument: --ui_port")              unless $ui_port;
-die("invalid/missing argument: --user")                 unless $user;
-die("invalid/missing argument: --password")             unless $passwd;
-die("invalid/missing argument: --institution")          unless $institution;
-die("invalid/missing argument: --plugin_name")          unless $plugin_name;
-die("invalid/missing argument: --classification_group") unless $classification_group;
-
-my %exiftool2dnx = (
-    "ICC-header:ColorSpaceData"       => "icc.colorspacedata",
-    "ICC-header:DeviceModel"          => "icc.devicemodel",
-    "ICC-header:PrimaryPlatform"      => "icc.primaryplatform",
-    "ICC-header:ProfileCMMType"       => "icc.profilecmmtype",
-    "ICC-header:ProfileCreator"       => "icc.profilecreator",
-    "ICC-header:ProfileDateTime"      => "icc.profiledatetime",
-    "ICC-header:ProfileVersion"       => "icc.profileversion",
-    "ICC_Profile:CalibrationDateTime" => "icc.profilecalibrationdatetime",
-    "ICC_Profile:MakeAndModel"        => "icc.makeandmodel",
-    "ICC_Profile:ProfileCopyright"    => "icc.profilecopyright",
-    "ICC_Profile:ProfileDescription"  => "icc.profiledescription",
-    "IFD0:BitsPerSample"              => "tiff.bitspersample",             # TIFF-Tag 258 BitsPerSample
-    "IFD0:Compression"                => "tiff.compression",               # TIFF-Tag 259 Compression
-    "IFD0:Copyright"                  => "tiff.copyright",                 # TIFF-Tag 33432 Copyright
-    "IFD0:DocumentName"               => "tiff.documentname",              # TIFF-Tag 269 DocumentName
-    "ExifIFD:GrayResponseCurve"       => "tiff.grayresponsecurve",         # TIFF-Tag 291 GrayResponseCurve
-    "IFD0:GrayResponseUnit"           => "tiff.grayresponseunit",          # TIFF-Tag 290 GrayResponseUnit
-    "IFD0:ImageDescription"           => "tiff.imagedescription",          # TIFF-Tag 270 ImageDescription
-    "IFD0:ImageHeight"                => "image.height",                   # TIFF-Tag 257 ImageLength
-    "IFD0:ImageWidth"                 => "image.width",                    # TIFF-Tag 256 ImageWidth
-    "IFD0:Make"                       => "tiff.make",                      # TIFF-Tag 271 Make
-    "IFD0:MaxSampleValue"             => "tiff.maxsamplevalue",            # TIFF-Tag 281 MaxSampleValue
-    "IFD0:MinSampleValue"             => "tiff.minsamplevalue",            # TIFF-Tag 280 MinSampleValue
-    "IFD0:Model"                      => "tiff.model",                     # TIFF-Tag 272 Model
-    "IFD0:ModifyDate"                 => "tiff.datetime",                  # TIFF-Tag 306 DateTime
-    "IFD0:PageNumber"                 => "tiff.pagenumber",                # TIFF-Tag 297 PageNumber
-    "IFD0:PhotometricInterpretation"  => "tiff.photometricinterpretation", # TIFF-Tag 262 PhotometricInterpretation
-    "IFD0:PrimaryChromaticities"      => "tiff.primarychromaticities",     # TIFF-Tag 319 PrimaryChromaticities
-    "IFD0:SamplesPerPixel"            => "tiff.samplesperpixel",           # TIFF-Tag 277 SamplesPerPixel
-    "IFD0:Software"                   => "tiff.software",                  # TIFF-Tag 305 Software
-    "IFD0:WhitePoint"                 => "tiff.whitepoint",                # TIFF-Tag 318 WhitePoint
-    "IFD0:XResolution"                => "image.xresolution",              # TIFF-Tag 282 XResolution
-    "IFD0:YResolution"                => "image.yresolution",              # TIFF-Tag 283 YResolution
-);
-
-sub login {
-    $driver->get("$protocol://$host:${ui_port}/mng?auth=local");
-    my $ele_institute = $driver->find_element("institution", "id");
-    $driver->find_child_element($ele_institute, "./option[\@value='$institution']", "xpath")->click;
-    $driver->find_element("userName", "id")->clear;
-    $driver->find_element("userName", "id")->send_keys($user);
-    $driver->find_element("password", "id")->clear;
-    $driver->find_element("password", "id")->send_keys($passwd);
-    $driver->find_element("login", "id")->click;
-}
-
-sub logout {
-    $driver->get("$protocol://$host:${ui_port}/mng/action/menus.do?first_time_key=com.exlibris.dps.wrk.general.menu");
-    my $ele = $driver->find_element("user", "id")->click;
-    $driver->pause();
-    $ele = $driver->find_element("Logout", "link")->click;
-}
-
-sub _change_to_xxx_format_library {
-    $driver->get("$protocol://$host:${ui_port}/mng/action/menus.do?first_time_key=com.exlibris.dps.wrk.general.menu");
-    $driver->find_element("//a[\@title='Administer the system']", "xpath")->click;
-    $driver->find_element("General Parameters", "link")->click;
-    $driver->find_element("modules_button", "id")->click;
-    $driver->find_element("//li[\@title='format_library']", "xpath")->click;
-    my $tr = $driver->find_element("//tr[starts-with(td,'format_library_is_global')]", "xpath");
-    my $td = $driver->find_child_element($tr, "./td[\@class='form-inline']", "xpath");
-    $driver->find_element("generalParameters_model_parameters_2__value_button", "id")->click;
-    say "click combobox button";
-    return $td;
-}
-
-sub change_to_global_format_library {
-    my $td = _change_to_xxx_format_library();
-    $driver->find_child_element($td, "descendant::li[text()='true']", "xpath")->click;
-    say "select true";
-    $driver->find_element("//button[\@value='Update']", "xpath")->click;
-    say "click update button";
-}
-
-sub change_to_local_format_library {
-    my $td = _change_to_xxx_format_library();
-    $driver->find_child_element($td, "descendant::li[text()='false']", "xpath")->click;
-    say "select false";
-    $driver->find_element("//button[\@value='Update']", "xpath")->click;
-    say "click update button";
-    $driver->pause();
-}
-
-sub add_dnx_property ($dnx_property, $dnx_description) {
-    my $dow = localtime;
-    $driver->get("$protocol://$host:${ui_port}/mng/action/pageAction.page_xml.page_sig_prop_list.xml.do?pageViewMode=Edit&pageBean.currentUserMode=GLOBAL&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryGLOBAL.mngLibraryHeader.SigProps.InnerMenu&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryGLOBAL.mngLibraryHeader.SigProps.InnerMenu&backUrl=");
-    $driver->pause();
-    $driver->find_element("Add Significant Property", "link")->click;
-    $driver->find_element("selectedSigPropname", "id")->clear;
-    $driver->find_element("selectedSigPropname", "id")->send_keys("$dnx_property");
-    $driver->find_element("selectedSigPropdescription", "id")->clear;
-    $driver->find_element("selectedSigPropdescription", "id")->send_keys("$dnx_description (automatically added by ${0}, $dow)");
-    $driver->find_element("SaveSigPropGenDetails", "name")->click;
-}
-
-sub join_dnx_property_to_classification_group ($dnx_property) {
-    say "try to join dnx property";
-    $driver->get("$protocol://$host:${ui_port}/mng/action/pageAction.page_xml.page_classification_list.xml.do?pageViewMode=Edit&pageBean.currentUserMode=GLOBAL&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryGLOBAL.mngLibraryHeader.Classifications.InnerMenu&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryGLOBAL.mngLibraryHeader.Classifications.InnerMenu&backUrl=");
-    $driver->pause();
-    $driver->find_element("find0.0", "id")->clear;
-    $driver->find_element("find0.0", "id")->send_keys($classification_group);
-    $driver->find_element("go", "name")->click;
-    $driver->find_element("Edit", "link")->click;
-    $driver->find_element("Related Properties", "link")->click;
-    $driver->find_element("//form[\@id='classificationDetails']//div[\@class='available']//div//input", "xpath")->clear;
-    $driver->find_element("//form[\@id='classificationDetails']//div[\@class='available']//div//input", "xpath")->send_keys($dnx_property);
-    $driver->pause();
-    $driver->find_element("Add all", "link")->click;
-    $driver->find_element("SaveClassificationGenDetails", "name")->click;
-    $driver->pause();
-}
-
-sub extractors_add_mapping ($dnx_property, $exiftool_property) {
-    say "try to add extractor mapping";
-    # go to custom extractor page (local format library)
-    $driver->get("$protocol://$host:${ui_port}/mng/action/pageAction.page_xml.page_extractors_list.xml.do?pageBean.deploymentMode=BUNDLED&pageViewMode=Edit&pageBean.currentUserMode=LOCAL&RenewBean=true&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryLOCAL.mngLibraryHeader.Extractors.InnerMenu&menuKey=com.exlibris.dps.wrk.general.menu.Preservation.AdvancedPreservationActivities.mngLibraryLOCAL.mngLibraryHeader.Extractors.InnerMenu");
-    $driver->pause();
-    $driver->find_element("Custom", "link")->click;
-    # filter by plugin name
-    $driver->find_element("find1.0", "id")->clear;
-    $driver->find_element("find1.0", "id")->send_keys($plugin_name);
-    $driver->find_element("pagesections1widgetList0hdListsearchValue2_button", "id")->click;
-    $driver->find_element("//li[contains(.,'Name')]")->click;
-    $driver->find_element("go", "name")->click;
-    # add 1 plugin mapping
-    $driver->find_element("Edit", "link")->click;
-    $driver->find_element("Add Mapping", "link")->click;
-    $driver->find_element("pageBeancurrentMappingextractorProperty_input", "id")->clear;
-    $driver->find_element("pageBeancurrentMappingextractorProperty_button", "id")->click;
-    $driver->pause();
-    $driver->find_element("//li[\@title='$exiftool_property']", "xpath")->click;
-    $driver->pause();
-    $driver->find_element("pageBeancurrentMappingclassificationProperty_input", "id")->clear;
-    $driver->find_element("pageBeancurrentMappingclassificationProperty_button", "id")->click;
-    $driver->pause();
-    $driver->find_element("//li[\@title='$dnx_property']", "xpath")->click;
-    $driver->pause();
-    $driver->find_element("pageBeancurrentMappingnormalizer_input", "id")->click;
-    $driver->find_element("pageBeancurrentMappingnormalizer_input", "id")->click;
-    $driver->find_element("pageBeancurrentMappingnormalizer_input", "id")->clear;
-    $driver->pause();
-    $driver->find_element("page.buttons.operation", "name")->click;
-    $driver->pause();
-}
-
-# startup info
-printf colored("Trying to mechanize adding DNX mappings using:
-  rosetta host         = '$host'
-  ui port              = '$ui_port'
-  user                 = '$user'
-  institution          = '$institution'
-  plugin name          = '$plugin_name'
-  classification group = '$classification_group'\n\n", 'bold white');
-
-# startup driver
-$driver = Selenium::Chrome->new();
-$driver->debug_on;
-$driver->set_implicit_wait_timeout(1000);
-$driver->set_timeout('script', 1000);
-
-# Rosetta login
-printf colored("Step 1 of 7: login \n", 'bold green');
-login();
-
-# change to global format library
-printf colored("Step 2 of 7: change to global format library \n", 'bold green');
-change_to_global_format_library();
-
-# add dnx property
-if (!defined $step or $step == 3) {
-    printf colored("Step 3 of 7: add dnx property \n", 'bold green');
-    foreach my $exiftool_property (sort keys %exiftool2dnx) {
-        my $dnx_property = $exiftool2dnx{ $exiftool_property };
-        add_dnx_property($dnx_property, "$dnx_property <- Exiftool '$exiftool_property'");
-    }
-}
-
-# include dnx property to classification group
-if (!defined $step or $step == 4) {
-    printf colored("Step 4 of 7: join dnx property to classification group \n", 'bold green');
-    foreach my $exiftool_property (sort keys %exiftool2dnx) {
-        my $dnx_property = $exiftool2dnx{ $exiftool_property };
-        join_dnx_property_to_classification_group($dnx_property);
-    }
-}
-
-# add mapping
-if (!defined $step or $step == 5) {
-    printf colored("Step 5 of 7: extractors add mapping \n", 'bold green');
-    foreach my $exiftool_property (sort keys %exiftool2dnx) {
-        my $dnx_property = $exiftool2dnx{ $exiftool_property };
-        extractors_add_mapping($dnx_property, $exiftool_property);
-    }
-}
-
-# change to local format library
-printf colored("Step 6 of 7: change to local format library \n", 'bold green');
-change_to_local_format_library();
-
-# logout
-printf colored("Step 7 of 7: logout \n", 'bold green');
-logout();
-
-# stop driver
-$driver->quit();
-$driver->shutdown_binary();
-
-# stop info
-printf colored("Finished! \n", 'bold green');
diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBRetroMonographieTIFFFormatValidationPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBRetroMonographieTIFFFormatValidationPlugin.java
new file mode 100644
index 0000000000000000000000000000000000000000..40340fe5f4c89ed115c1b604af0cc7f1cdf15b05
--- /dev/null
+++ b/java/org/slub/rosetta/dps/repository/plugin/SLUBRetroMonographieTIFFFormatValidationPlugin.java
@@ -0,0 +1,295 @@
+/* 
+2014-2022 by Andreas Romeyke (SLUB Dresden)
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Hint: works only with checkit_tiff version 1.0.0 or higher
+*/
+
+package org.slub.rosetta.dps.repository.plugin;
+
+import com.exlibris.core.infra.common.exceptions.logging.ExLogger;
+import com.exlibris.core.sdk.strings.StringUtils;
+import com.exlibris.dps.sdk.techmd.FormatValidationPlugin;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.math.BigInteger;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.security.MessageDigest;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * SLUBTechnicalMetadataExtractorCheckItTiffPlugin
+ *
+ * @author andreas.romeyke@slub-dresden.de (Andreas Romeyke)
+ * @see com.exlibris.dps.sdk.techmd.FormatValidationPlugin
+ */
+/*public class SLUBTechnicalMetadataExtractorCheckItTiffPlugin implements MDExtractorPlugin { */
+public class SLUBRetroMonographieTIFFFormatValidationPlugin implements FormatValidationPlugin {
+    private static final ExLogger log = ExLogger.getExLogger(SLUBRetroMonographieTIFFFormatValidationPlugin.class);
+    private enum Checkit_tiff_versions {
+        current, upcoming
+    }
+    private final Map<Checkit_tiff_versions, String> checkit_tiff_binary_path = new HashMap<>();
+    private final Map<Checkit_tiff_versions, String> checkit_tiff_config_path = new HashMap<>();
+    private final List<String> validationLog = new ArrayList<>();
+    private boolean isvalid = false;
+    private boolean iswellformed = false;
+    private final Map<Checkit_tiff_versions, String> md5Profile = new HashMap<>();
+    private final Map<Checkit_tiff_versions, String> md5CheckitTiff = new HashMap<>();
+    private boolean isDifferentProfile = true;
+    private final boolean isDifferentCheckItTiff = true;
+    private final Map<Checkit_tiff_versions, Boolean> is_checkit_tiff_valid = new HashMap<>();
+
+
+    /** constructor */
+    public SLUBRetroMonographieTIFFFormatValidationPlugin() {
+        log.info("SLUBTechnicalMetadataExtractorCheckItTiffPlugin instantiated");
+        for (Checkit_tiff_versions v: Checkit_tiff_versions.values()) {
+            is_checkit_tiff_valid.put(v, false);
+        }
+    }
+
+    /** init params to configure the plugin via xml forms
+     * @param initp parameter map
+     */
+    public final void initParams(Map<String, String> initp) {
+        this.checkit_tiff_binary_path.put(Checkit_tiff_versions.current, initp.get("current_checkit_tiff").trim());
+        this.checkit_tiff_binary_path.put(Checkit_tiff_versions.upcoming, initp.get("upcoming_checkit_tiff").trim());
+        this.checkit_tiff_config_path.put(Checkit_tiff_versions.current, initp.get("current_config_file").trim());
+        this.checkit_tiff_config_path.put(Checkit_tiff_versions.upcoming, initp.get("upcoming_config_file").trim());
+       
+        try {
+            for (Checkit_tiff_versions v: Checkit_tiff_versions.values()) {
+                check_path(checkit_tiff_binary_path.get(v), "path for checkit_tiff binary " + v, true);
+                check_path(checkit_tiff_config_path.get(v), "path for checkit_tiff config " + v, false);
+                md5CheckitTiff.put(v, md5SumOfFile(checkit_tiff_binary_path.get(v)));
+                md5Profile.put(v,md5SumOfFile(checkit_tiff_config_path.get(v)));
+            }
+            this.isDifferentProfile = ! this.md5Profile.get(Checkit_tiff_versions.current).equals(this.md5Profile.get(Checkit_tiff_versions.upcoming));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        log.info("SLUBTechnicalMetadataExtractorCheckItTiffPlugin instantiated with "
+                + "(current: "
+                + " checkit_tiff_binary_path=" + checkit_tiff_binary_path.get(Checkit_tiff_versions.current)
+                + " cfg=" + checkit_tiff_config_path.get(Checkit_tiff_versions.current)
+                + ") | (upcoming: "
+                + " checkit_tiff_binary_path=" + checkit_tiff_binary_path.get(Checkit_tiff_versions.upcoming)
+                + " cfg=" + checkit_tiff_config_path.get(Checkit_tiff_versions.upcoming)
+                + ")"
+        );
+    }
+
+    @Override
+    public final String getProfile() {
+        /* there is no documentation in ExL API, therefore we use it to document the profile versions in a light way */
+        StringBuilder returnvalue = new StringBuilder();
+        for (Checkit_tiff_versions v: Checkit_tiff_versions.values()) {
+            String modificationdate = modificationDateOfFile(this.checkit_tiff_config_path.get(v));
+            returnvalue.append(v).append("profile:\n").append("  path=").append(this.checkit_tiff_config_path.get(v)).append("\n").append("  md5sum=").append(this.md5CheckitTiff.get(v)).append("\n").append("  modification date=").append(modificationdate).append("\n");
+        }
+        return returnvalue.toString();
+    }
+
+    private void check_path(String filePath, String msgPath, boolean is_executable) throws Exception {
+        if (StringUtils.isEmptyString(filePath)) {
+            throw new Exception(msgPath + " is empty");
+        }
+        Path path = Paths.get(filePath);
+        if (! Files.exists( path ) || !Files.isRegularFile(path)) {
+            throw new Exception(msgPath + " does not exist (" + filePath + ")");
+        }
+        if (is_executable && ! Files.isExecutable(path)) {
+            throw new Exception(msgPath + " not executable (" + filePath + ")");
+        }
+    }
+
+    private void validate_tiff_by_checkit_tiff_version(String filePath, Checkit_tiff_versions version) {
+        String execstring = this.checkit_tiff_binary_path.get(version) + " -q " + this.checkit_tiff_config_path.get(version) + " " + filePath ;
+        log.info("executing: " + execstring);
+        InputStreamReader process_out;
+        try {
+            Process p = Runtime.getRuntime().exec(execstring);
+            p.waitFor();
+            process_out = new InputStreamReader(p.getInputStream());
+            if (p.exitValue() == 0) {
+                is_checkit_tiff_valid.put(version,true);
+            } else { // something wrong
+                is_checkit_tiff_valid.put(version, false);
+            }
+            BufferedReader reader = new BufferedReader(process_out);
+            String line = reader.readLine();
+            while (line != null) {
+                System.out.println(line);
+                validationLog.add(line + System.lineSeparator());
+                log.info( line );
+                line = reader.readLine();
+            }
+            reader.close();
+            log.info(
+                    "file " + filePath + " is "
+                            + (is_checkit_tiff_valid.get(version) ? "valid" : "invalid")
+                            + " using checkit_tiff version " + version
+                            + " (binary: " + this.checkit_tiff_binary_path.get(version)
+                            + " profile: " + this.checkit_tiff_config_path.get(version)
+                            + " )"
+            );
+        } catch (IOException e) {
+            log.error("ERROR: ("+version.name()+") checkit_tiff not available, path=" + this.checkit_tiff_binary_path.get(version) + ", " + e.getMessage());
+        } catch (InterruptedException e) {
+            log.error("ERROR: ("+version.name()+") checkit_tiff interruption, " + e.getMessage());
+        }
+    }
+    private void validate_tiff_by_current_checkit_tiff(String filePath) {
+        // checkit_tiff (current)
+        validate_tiff_by_checkit_tiff_version(filePath, Checkit_tiff_versions.current);
+    }
+
+    private void validate_tiff_by_upcoming_checkit_tiff(String filePath) {
+        // checkit_tiff validation (upcoming)
+        validate_tiff_by_checkit_tiff_version(filePath, Checkit_tiff_versions.upcoming);
+    }
+    public final boolean validateFormat(String filePath) {
+        validate_tiff_by_upcoming_checkit_tiff(filePath);
+        /* only check against current checkit_tiff if upcoming fails */
+        if ((this.isDifferentCheckItTiff || this.isDifferentProfile) && !is_checkit_tiff_valid.get(Checkit_tiff_versions.upcoming)) {
+            validate_tiff_by_current_checkit_tiff(filePath);
+        }
+
+        /* If upcoming was true, only report a is valid, if current was true. report log of upcoming, if all fail, report log for all */
+        if (is_checkit_tiff_valid.get(Checkit_tiff_versions.upcoming)) {
+            isvalid = true;
+            iswellformed = true;
+        } else if (is_checkit_tiff_valid.get(Checkit_tiff_versions.current)) {
+            isvalid = true;
+            iswellformed=true;
+        } else {
+            isvalid = false;
+            iswellformed = false;
+        }
+        return (isvalid && iswellformed);
+    }
+
+    /** get agent version and signature version calling command VERSION
+     *
+     * @return string with version
+     */
+    public final String getAgent() {
+        log.debug("getAgent() called");
+        StringBuilder response= new StringBuilder();
+        InputStreamReader process_out;
+        for (Checkit_tiff_versions version : Checkit_tiff_versions.values()) {
+            response.append(version.name()).append(" checkit_tiff:\n");
+            try {
+                String execstring = this.checkit_tiff_binary_path.get(version);
+                Process p = Runtime.getRuntime().exec(execstring);
+                p.waitFor();
+                process_out = new InputStreamReader(p.getInputStream());
+                BufferedReader reader = new BufferedReader(process_out);
+                String line = reader.readLine();
+                while (line != null) {
+                    if (line.trim().startsWith("call it with:")) { break; }
+                    log.debug(line);
+                    response.append(line);
+                    line = reader.readLine();
+                }
+                reader.close();
+            } catch (IOException e) {
+                log.error(e);
+            } catch (InterruptedException e) {
+                log.error(e);
+                e.printStackTrace();
+            }
+        }
+        return response.toString().trim();
+    }
+
+    @Override
+    public final boolean isWellFormed() {
+      return this.iswellformed;
+    }
+
+    @Override
+    public final List<String> getErrors() {
+        return List.copyOf(this.validationLog);
+    }
+
+    @Override
+    public final boolean isValid() {
+        log.debug("is valid=" + this.isvalid);
+        return this.isvalid;
+    }
+
+    private void checkFileExists (String filename) throws Exception {
+        File f = new File(filename);
+        if (! f.exists() ) {
+            log.error("path=" + filename + " not available");
+            throw new Exception("ERROR: path=" + filename + " not available");
+        }
+    }
+
+    private String md5SumOfFile(String filename ) {
+        try {
+            MessageDigest md = MessageDigest.getInstance("MD5");
+            byte[] b = Files.readAllBytes(Paths.get(filename));
+            byte[] digest = md.digest(b);
+            return new BigInteger(1, digest).toString(16);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    private String modificationDateOfFile(String filename ) {
+        try {
+            return Files.getLastModifiedTime(Paths.get(filename)).toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    /** stand-alone check, main file
+     * @param args list of files which should be scanned
+     */
+    public static void main(String[] args) {
+        SLUBRetroMonographieTIFFFormatValidationPlugin plugin = new SLUBRetroMonographieTIFFFormatValidationPlugin();
+        Map<String, String> initp = new HashMap<>();
+        initp.put( "current_checkit_tiff", "/operational_shared/software/checkit_tiff_current");
+        initp.put( "current_config_file", "/operational_shared/software/cit_tiff6_baseline_SLUB_current.cfg");
+        initp.put( "upcoming_checkit_tiff", "/operational_shared/software/checkit_tiff_upcoming");
+        initp.put( "upcoming_config_file", "/operational_shared/software/cit_tiff6_baseline_SLUB_current.cfg");
+        plugin.initParams( initp );
+        System.out.println("----------------------------------");
+        System.out.println("Agent: '" + plugin.getAgent() + "'");
+        System.out.println();
+        System.out.println("RESULT: " + plugin.isValid());
+        System.out.println("----------------------------------");
+        System.out.println("getAgent:");
+        System.out.println( plugin.getAgent());
+        System.out.println("----------------------------------");
+        System.out.println("getProfile:");
+        System.out.println( plugin.getProfile());
+        System.out.println("----------------------------------");
+    }
+}
diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorCheckItTiffPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorCheckItTiffPlugin.java
deleted file mode 100644
index b2d0cfba49d09e2093e1630f79309c3d9f4b8949..0000000000000000000000000000000000000000
--- a/java/org/slub/rosetta/dps/repository/plugin/SLUBTechnicalMetadataExtractorCheckItTiffPlugin.java
+++ /dev/null
@@ -1,1209 +0,0 @@
-/* 
-2014-2022 by Andreas Romeyke (SLUB Dresden)
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Hint: works only with checkit_tiff version 1.0.0 or higher
-*/
-
-package org.slub.rosetta.dps.repository.plugin;
-
-import com.exlibris.core.infra.common.exceptions.logging.ExLogger;
-import com.exlibris.core.sdk.strings.StringUtils;
-import com.exlibris.dps.sdk.techmd.MDExtractorPlugin;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.math.BigInteger;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.security.MessageDigest;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-
-/**
- * SLUBTechnicalMetadataExtractorCheckItTiffPlugin
- *
- * @author andreas.romeyke@slub-dresden.de (Andreas Romeyke)
- * @see com.exlibris.dps.sdk.techmd.MDExtractorPlugin 
- */
-/*public class SLUBTechnicalMetadataExtractorCheckItTiffPlugin implements MDExtractorPlugin { */
-public class SLUBTechnicalMetadataExtractorCheckItTiffPlugin implements MDExtractorPlugin {
-    private static final ExLogger log = ExLogger.getExLogger(SLUBTechnicalMetadataExtractorCheckItTiffPlugin.class);
-    private enum Checkit_tiff_versions {
-        current, upcoming
-    }
-    private final Map<Checkit_tiff_versions, String> checkit_tiff_binary_path = new HashMap<>();
-    private final Map<Checkit_tiff_versions, String> checkit_tiff_config_path = new HashMap<>();
-    private String exiftool_binary_path = null;
-    private List<String> extractionErrors = new ArrayList<>();
-    private final List<String> validationLog = new ArrayList<>();
-    private Boolean isvalid = false;
-    private Boolean iswellformed = false;
-    private final Map<String,String> attributes = new HashMap<>();
-    private final Map<Checkit_tiff_versions, String> md5Profile = new HashMap<>();
-    private final Map<Checkit_tiff_versions, String> md5CheckitTiff = new HashMap<>();
-    private boolean isDifferentProfile = true;
-    private final boolean isDifferentCheckItTiff = true;
-    private final Map<Checkit_tiff_versions, Boolean> is_checkit_tiff_valid = new HashMap<>();
-
-
-    /** constructor */
-    public SLUBTechnicalMetadataExtractorCheckItTiffPlugin() {
-        log.info("SLUBTechnicalMetadataExtractorCheckItTiffPlugin instantiated");
-        for (Checkit_tiff_versions v: Checkit_tiff_versions.values()) {
-            is_checkit_tiff_valid.put(v, false);
-        }
-    }
-
-    /** init params to configure the plugin via xml forms
-     * @param initp parameter map
-     */
-    public final void initParams(Map<String, String> initp) {
-        this.checkit_tiff_binary_path.put(Checkit_tiff_versions.current, initp.get("current_checkit_tiff").trim());
-        this.checkit_tiff_binary_path.put(Checkit_tiff_versions.upcoming, initp.get("upcoming_checkit_tiff").trim());
-        this.checkit_tiff_config_path.put(Checkit_tiff_versions.current, initp.get("current_config_file").trim());
-        this.checkit_tiff_config_path.put(Checkit_tiff_versions.upcoming, initp.get("upcoming_config_file").trim());
-       
-        this.exiftool_binary_path = initp.get("exiftool").trim();
-        try {
-            check_path(exiftool_binary_path, "path for exiftool_binary", true);
-            for (Checkit_tiff_versions v: Checkit_tiff_versions.values()) {
-                check_path(checkit_tiff_binary_path.get(v), "path for checkit_tiff binary " + v, true);
-                check_path(checkit_tiff_config_path.get(v), "path for checkit_tiff config " + v, false);
-                md5CheckitTiff.put(v, md5SumOfFile(checkit_tiff_binary_path.get(v)));
-                md5Profile.put(v,md5SumOfFile(checkit_tiff_config_path.get(v)));
-            }
-            this.isDifferentProfile = ! this.md5Profile.get(Checkit_tiff_versions.current).equals(this.md5Profile.get(Checkit_tiff_versions.upcoming));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        log.info("SLUBTechnicalMetadataExtractorCheckItTiffPlugin instantiated with "
-                + "(current: "
-                + " checkit_tiff_binary_path=" + checkit_tiff_binary_path.get(Checkit_tiff_versions.current)
-                + " cfg=" + checkit_tiff_config_path.get(Checkit_tiff_versions.current)
-                + ") | (upcoming: "
-                + " checkit_tiff_binary_path=" + checkit_tiff_binary_path.get(Checkit_tiff_versions.upcoming)
-                + " cfg=" + checkit_tiff_config_path.get(Checkit_tiff_versions.upcoming)
-                + ")"
-                + " and exiftool_binary_path=" + exiftool_binary_path
-        );
-    }
-
-    private void parse_exiftool_output( String exiftoolxml ) {
-        // see output of exiftool -X, alternatively check http://ns.exiftool.ca/ExifTool/1.0/
-        Pattern p = Pattern.compile("^\\s*<([^>]+)>([^<]+)</\\1>");
-        log.debug("Orig string is: '" + exiftoolxml);
-        Matcher m = p.matcher(exiftoolxml);
-        if (m.matches()) {
-            String key = m.group(1);
-            String value = m.group(2);
-            log.debug("matcher: key=" + key + " value=" + value);
-            attributes.put(key, value);
-        }
-    }
-
-    private void check_path(String filePath, String msgPath, boolean is_executable) throws Exception {
-        if (StringUtils.isEmptyString(filePath)) {
-            throw new Exception(msgPath + " is empty");
-        }
-        Path path = Paths.get(filePath);
-        if (! Files.exists( path ) || !Files.isRegularFile(path)) {
-            throw new Exception(msgPath + " does not exist (" + filePath + ")");
-        }
-        if (is_executable && ! Files.isExecutable(path)) {
-            throw new Exception(msgPath + " not executable (" + filePath + ")");
-        }
-    }
-
-    @Override
-    public final void extract(String filePath) throws Exception {
-        validate_tiff_by_upcoming_checkit_tiff(filePath);
-        /* only check against current checkit_tiff if upcoming fails */
-        if ((this.isDifferentCheckItTiff || isDifferentProfile) && is_checkit_tiff_valid.get(Checkit_tiff_versions.upcoming) == false) {
-            validate_tiff_by_current_checkit_tiff(filePath);
-        }
-
-        /* If upcoming was true, only report a is valid, if current was true. report log of upcoming, if all fail, report log for all */
-        if (true == is_checkit_tiff_valid.get(Checkit_tiff_versions.upcoming)) {
-            isvalid = true;
-            iswellformed = true;
-            extractionErrors.clear();
-        } else if (true == is_checkit_tiff_valid.get(Checkit_tiff_versions.current)) {
-            isvalid = true;
-            iswellformed=true;
-            extractionErrors.clear();
-        } else {
-            isvalid = false;
-            iswellformed = false;
-            extractionErrors = validationLog;
-        }
-
-        // exiftool output of metadata
-        try {
-            String execstring = this.exiftool_binary_path + " -X " + filePath;
-            log.info("executing: " + execstring);
-            Process p = Runtime.getRuntime().exec(execstring);
-            p.waitFor();
-            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-            String line=reader.readLine();
-            StringBuilder response= new StringBuilder();
-            while (line != null) {
-                log.debug(line);
-                parse_exiftool_output(line.trim());
-                response.append(line);
-                line = reader.readLine();
-            }
-            attributes.put("exiftool-log", response.toString().trim());
-
-        } catch (IOException e) {
-            log.error(e);
-        } catch (InterruptedException e) {
-            log.error(e);
-            e.printStackTrace();
-
-        }
-        attributes.put("checkit-tiff-log", validationLog.toString());
-
-    }
-    private void validate_tiff_by_checkit_tiff_version(String filePath, Checkit_tiff_versions version) throws Exception {
-        try {
-            String execstring = this.checkit_tiff_binary_path.get(version) + " -q " + this.checkit_tiff_config_path.get(version) + " " + filePath ;
-            log.debug("executing: " + execstring);
-            Process p = Runtime.getRuntime().exec(execstring);
-            p.waitFor();
-            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-            String line = reader.readLine();
-
-            while (line != null) {
-                System.out.println(line);
-                validationLog.add(line + System.lineSeparator());
-                line = reader.readLine();
-            }
-            if (p.exitValue() == 0) {
-                is_checkit_tiff_valid.put(version,true);
-            } else { // something wrong
-                is_checkit_tiff_valid.put(version, false);
-            }
-        } catch (IOException e) {
-            //log.error("exception creation socket, clamd not available at host=" + host + "port=" + port, e);
-            //log.error("ERROR: ("+version.name()+") checkit_tiff not available, path=" + this.checkit_tiff_binary_path.get(version) + ", " + e.getMessage());
-            throw new Exception("ERROR: ("+version.name()+") checkit_tiff not available, path=" + this.checkit_tiff_binary_path.get(version) + ", " + e.getMessage());
-        }
-    }
-    private void validate_tiff_by_current_checkit_tiff(String filePath) throws Exception {
-        // checkit_tiff (current)
-        validate_tiff_by_checkit_tiff_version(filePath, Checkit_tiff_versions.current);
-    }
-
-    private void validate_tiff_by_upcoming_checkit_tiff(String filePath) throws Exception {
-        // checkit_tiff validation (upcoming)
-        validate_tiff_by_checkit_tiff_version(filePath, Checkit_tiff_versions.upcoming);
-    }
-
-    public final String getAgentName() {
-        log.debug("getAgentName() called");
-        return "checkit_tiff";
-    }
-
-    /** get agent version and signature version calling command VERSION
-     *
-     * @return string with version
-     */
-    public final String getAgent() {
-        log.debug("getAgent() called");
-        StringBuilder response= new StringBuilder();
-        for (Checkit_tiff_versions version : Checkit_tiff_versions.values()) {
-            response.append(version.name()).append(" checkit_tiff:\n");
-            try {
-                String execstring = this.checkit_tiff_binary_path.get(version);
-                Process p = Runtime.getRuntime().exec(execstring);
-                p.waitFor();
-                BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
-                String line = reader.readLine();
-                while (line != null) {
-                    if (line.trim().startsWith("call it with:")) { break; }
-                    log.debug(line);
-                    response.append(line);
-                    line = reader.readLine();
-                }
-            } catch (IOException e) {
-                log.error(e);
-            } catch (InterruptedException e) {
-                log.error(e);
-                e.printStackTrace();
-            }
-        }
-        return response.toString().trim();
-    }
-
-    @Override
-    public final String getAttributeByName(String attribute) {
-      if (attributes.containsKey(attribute)) {
-          return attributes.get(attribute);
-      }
-        return "not found";
-    }
-
-    @Override
-    public final List<String> getExtractionErrors() {
-      return this.extractionErrors;
-    }
-    /* processed using:
-     * exiftool -lang de -listx -s > /tmp/exif.xml
-     * then using 
-     * - XPath "/taginfo/table[@name='Exif::Main']/tag[not(@g1)]/@name" to find IFD0-tags
-     * - XPath "/taginfo/table[@name='Exif::Main']/tag[@g1='ExifIFD']/@name" to find EXIF-tags
-     *
-     * exiftool -lang de -listx -s | xpath -q -e "/taginfo/table[@name='Exif::Main']/tag[not(@g1)]/@name" | sed -e "s/name=\"\(.*\)\"/available.add(\"IFD0:\1\");/"
-     * exiftool -lang de -listx -s | xpath -q -e "/taginfo/table[@name='Exif::Main']/tag[@g1='ExifIFD']/@name" | sed -e "s/name=\"\(.*\)\"/available.add(\"ExifIFD:\1\");/"
-     * exiftool -lang de -listx -s | xpath -q -e "/taginfo/table[@name='ICC_Profile::Main']/tag/@name" | sed -e "s/name=\"\(.*\)\"/available.add(\"ICC_Profile:\1\");/"
-     * exiftool -lang de -listx -s | xpath -q -e "/taginfo/table[@name='ICC_Profile::Header']/tag/@name" | sed -e "s/name=\"\(.*\)\"/available.add(\"ICC-Header:\1\");/"
-     *
-     * */
-    @Override
-    public final List<String> getSupportedAttributeNames() {
-      //return new ArrayList<String>(attributes.keySet());
-        List<String> available = new ArrayList<>();
-        //available.add("checkit-tiff-conf");
-        available.add("checkit-tiff-log");
-        //available.add("checkit-tiff-path");
-
-        available.add("Composite:Aperture");
-        available.add("Composite:CircleOfConfusion");
-        available.add("Composite:DateTimeCreated");
-        available.add("Composite:DigitalCreationDateTime");
-        available.add("Composite:Flash");
-        available.add("Composite:FocalLength35efl");
-        available.add("Composite:FOV");
-        available.add("Composite:HyperfocalDistance");
-        available.add("Composite:ImageSize");
-        available.add("Composite:LensID");
-        available.add("Composite:LightValue");
-        available.add("Composite:ScaleFactor35efl");
-        available.add("Composite:ShutterSpeed");
-        available.add("Composite:SubSecCreateDate");
-        available.add("Composite:SubSecDateTimeOriginal");
-        available.add("ExifIFD:A100DataOffset");
-        available.add("ExifIFD:Acceleration");
-        available.add("ExifIFD:AdventRevision");
-        available.add("ExifIFD:AdventScale");
-        available.add("ExifIFD:AffineTransformMat");
-        available.add("ExifIFD:AliasLayerMetadata");
-        available.add("ExifIFD:AlphaByteCount");
-        available.add("ExifIFD:AlphaDataDiscard");
-        available.add("ExifIFD:AlphaOffset");
-        available.add("ExifIFD:AmbientTemperature");
-        available.add("ExifIFD:Annotations");
-        available.add("ExifIFD:ApertureValue");
-        available.add("ExifIFD:ApplicationNotes");
-        available.add("ExifIFD:BackgroundColorIndicator");
-        available.add("ExifIFD:BackgroundColorValue");
-        available.add("ExifIFD:BadFaxLines");
-        available.add("ExifIFD:BatteryLevel");
-        available.add("ExifIFD:BitsPerExtendedRunLength");
-        available.add("ExifIFD:BitsPerRunLength");
-        available.add("ExifIFD:Brightness");
-        available.add("ExifIFD:BrightnessValue");
-        available.add("ExifIFD:CameraElevationAngle");
-        available.add("ExifIFD:CFALayout");
-        available.add("ExifIFD:CFAPattern");
-        available.add("ExifIFD:CFAPlaneColor");
-        available.add("ExifIFD:CIP3DataFile");
-        available.add("ExifIFD:CIP3Sheet");
-        available.add("ExifIFD:CIP3Side");
-        available.add("ExifIFD:CleanFaxData");
-        available.add("ExifIFD:ClipPath");
-        available.add("ExifIFD:CMYKEquivalent");
-        available.add("ExifIFD:CodingMethods");
-        available.add("ExifIFD:ColorCharacterization");
-        available.add("ExifIFD:ColorMap");
-        available.add("ExifIFD:ColorResponseUnit");
-        available.add("ExifIFD:ColorSequence");
-        available.add("ExifIFD:ColorSpace");
-        available.add("ExifIFD:ColorTable");
-        available.add("ExifIFD:ComponentsConfiguration");
-        available.add("ExifIFD:CompressedBitsPerPixel");
-        available.add("ExifIFD:ConsecutiveBadFaxLines");
-        available.add("ExifIFD:Contrast");
-        available.add("ExifIFD:Converter");
-        available.add("ExifIFD:CreateDate");
-        available.add("ExifIFD:CustomRendered");
-        available.add("ExifIFD:DataType");
-        available.add("ExifIFD:DateTimeOriginal");
-        available.add("ExifIFD:Decode");
-        available.add("ExifIFD:DefaultImageColor");
-        available.add("ExifIFD:DeviceSettingDescription");
-        available.add("ExifIFD:DigitalZoomRatio");
-        available.add("ExifIFD:DotRange");
-        available.add("ExifIFD:ExifImageHeight");
-        available.add("ExifIFD:ExifImageWidth");
-        available.add("ExifIFD:ExifVersion");
-        available.add("ExifIFD:ExpandFilm");
-        available.add("ExifIFD:ExpandFilterLens");
-        available.add("ExifIFD:ExpandFlashLamp");
-        available.add("ExifIFD:ExpandLens");
-        available.add("ExifIFD:ExpandScanner");
-        available.add("ExifIFD:ExpandSoftware");
-        available.add("ExifIFD:Exposure");
-        available.add("ExifIFD:ExposureCompensation");
-        available.add("ExifIFD:ExposureIndex");
-        available.add("ExifIFD:ExposureMode");
-        available.add("ExifIFD:ExposureProgram");
-        available.add("ExifIFD:ExposureTime");
-        available.add("ExifIFD:ExtraSamples");
-        available.add("ExifIFD:FaxProfile");
-        available.add("ExifIFD:FaxRecvParams");
-        available.add("ExifIFD:FaxRecvTime");
-        available.add("ExifIFD:FaxSubAddress");
-        available.add("ExifIFD:FedexEDR");
-        available.add("ExifIFD:FileSource");
-        available.add("ExifIFD:Flash");
-        available.add("ExifIFD:FlashEnergy");
-        available.add("ExifIFD:FlashpixVersion");
-        available.add("ExifIFD:FNumber");
-        available.add("ExifIFD:FocalLength");
-        available.add("ExifIFD:FocalLengthIn35mmFormat");
-        available.add("ExifIFD:FocalPlaneResolutionUnit");
-        available.add("ExifIFD:FocalPlaneXResolution");
-        available.add("ExifIFD:FocalPlaneYResolution");
-        available.add("ExifIFD:FovCot");
-        available.add("ExifIFD:FreeByteCounts");
-        available.add("ExifIFD:FreeOffsets");
-        available.add("ExifIFD:GainControl");
-        available.add("ExifIFD:Gamma");
-        available.add("ExifIFD:GDALMetadata");
-        available.add("ExifIFD:GDALNoData");
-        available.add("ExifIFD:GooglePlusUploadCode");
-        available.add("ExifIFD:GrayResponseCurve");
-        available.add("ExifIFD:HCUsage");
-        available.add("ExifIFD:HeightResolution");
-        available.add("ExifIFD:Humidity");
-        available.add("ExifIFD:ImageByteCount");
-        available.add("ExifIFD:ImageColorIndicator");
-        available.add("ExifIFD:ImageColorValue");
-        available.add("ExifIFD:ImageDataDiscard");
-        available.add("ExifIFD:ImageDepth");
-        available.add("ExifIFD:ImageFullHeight");
-        available.add("ExifIFD:ImageFullWidth");
-        available.add("ExifIFD:ImageHeight");
-        available.add("ExifIFD:ImageHistory");
-        available.add("ExifIFD:ImageID");
-        available.add("ExifIFD:ImageLayer");
-        available.add("ExifIFD:ImageNumber");
-        available.add("ExifIFD:ImageOffset");
-        available.add("ExifIFD:ImageReferencePoints");
-        available.add("ExifIFD:ImageType");
-        available.add("ExifIFD:ImageUniqueID");
-        available.add("ExifIFD:ImageWidth");
-        available.add("ExifIFD:Indexed");
-        available.add("ExifIFD:INGRReserved");
-        available.add("ExifIFD:InkNames");
-        available.add("ExifIFD:IntergraphFlagRegisters");
-        available.add("ExifIFD:IntergraphMatrix");
-        available.add("ExifIFD:IntergraphPacketData");
-        available.add("ExifIFD:Interlace");
-        available.add("ExifIFD:ISO");
-        available.add("ExifIFD:ISOSpeed");
-        available.add("ExifIFD:ISOSpeedLatitudeyyy");
-        available.add("ExifIFD:ISOSpeedLatitudezzz");
-        available.add("ExifIFD:IT8Header");
-        available.add("ExifIFD:JBIGOptions");
-        available.add("ExifIFD:JPEGACTables");
-        available.add("ExifIFD:JPEGDCTables");
-        available.add("ExifIFD:JPEGLosslessPredictors");
-        available.add("ExifIFD:JPEGPointTransforms");
-        available.add("ExifIFD:JPEGProc");
-        available.add("ExifIFD:JPEGQTables");
-        available.add("ExifIFD:JPEGRestartInterval");
-        available.add("ExifIFD:JPEGTables");
-        available.add("ExifIFD:JPLCartoIFD");
-        available.add("ExifIFD:Lens");
-        available.add("ExifIFD:LensInfo");
-        available.add("ExifIFD:LensMake");
-        available.add("ExifIFD:LensModel");
-        available.add("ExifIFD:LensSerialNumber");
-        available.add("ExifIFD:LightSource");
-        available.add("ExifIFD:MakerNoteApple");
-        available.add("ExifIFD:MakerNoteCanon");
-        available.add("ExifIFD:MakerNoteCasio");
-        available.add("ExifIFD:MakerNoteCasio2");
-        available.add("ExifIFD:MakerNoteDJI");
-        available.add("ExifIFD:MakerNoteFLIR");
-        available.add("ExifIFD:MakerNoteFujiFilm");
-        available.add("ExifIFD:MakerNoteGE");
-        available.add("ExifIFD:MakerNoteGE2");
-        available.add("ExifIFD:MakerNoteHasselblad");
-        available.add("ExifIFD:MakerNoteHP");
-        available.add("ExifIFD:MakerNoteHP2");
-        available.add("ExifIFD:MakerNoteHP4");
-        available.add("ExifIFD:MakerNoteHP6");
-        available.add("ExifIFD:MakerNoteISL");
-        available.add("ExifIFD:MakerNoteJVC");
-        available.add("ExifIFD:MakerNoteJVCText");
-        available.add("ExifIFD:MakerNoteKodak10");
-        available.add("ExifIFD:MakerNoteKodak11");
-        available.add("ExifIFD:MakerNoteKodak1a");
-        available.add("ExifIFD:MakerNoteKodak1b");
-        available.add("ExifIFD:MakerNoteKodak2");
-        available.add("ExifIFD:MakerNoteKodak3");
-        available.add("ExifIFD:MakerNoteKodak4");
-        available.add("ExifIFD:MakerNoteKodak5");
-        available.add("ExifIFD:MakerNoteKodak6a");
-        available.add("ExifIFD:MakerNoteKodak6b");
-        available.add("ExifIFD:MakerNoteKodak7");
-        available.add("ExifIFD:MakerNoteKodak8a");
-        available.add("ExifIFD:MakerNoteKodak8b");
-        available.add("ExifIFD:MakerNoteKodak8c");
-        available.add("ExifIFD:MakerNoteKodak9");
-        available.add("ExifIFD:MakerNoteKodakUnknown");
-        available.add("ExifIFD:MakerNoteKyocera");
-        available.add("ExifIFD:MakerNoteLeica");
-        available.add("ExifIFD:MakerNoteLeica2");
-        available.add("ExifIFD:MakerNoteLeica3");
-        available.add("ExifIFD:MakerNoteLeica4");
-        available.add("ExifIFD:MakerNoteLeica5");
-        available.add("ExifIFD:MakerNoteLeica6");
-        available.add("ExifIFD:MakerNoteLeica7");
-        available.add("ExifIFD:MakerNoteLeica8");
-        available.add("ExifIFD:MakerNoteLeica9");
-        available.add("ExifIFD:MakerNoteMinolta");
-        available.add("ExifIFD:MakerNoteMinolta2");
-        available.add("ExifIFD:MakerNoteMinolta3");
-        available.add("ExifIFD:MakerNoteMotorola");
-        available.add("ExifIFD:MakerNoteNikon");
-        available.add("ExifIFD:MakerNoteNikon2");
-        available.add("ExifIFD:MakerNoteNikon3");
-        available.add("ExifIFD:MakerNoteNintendo");
-        available.add("ExifIFD:MakerNoteOlympus");
-        available.add("ExifIFD:MakerNoteOlympus2");
-        available.add("ExifIFD:MakerNotePanasonic");
-        available.add("ExifIFD:MakerNotePanasonic2");
-        available.add("ExifIFD:MakerNotePentax");
-        available.add("ExifIFD:MakerNotePentax2");
-        available.add("ExifIFD:MakerNotePentax3");
-        available.add("ExifIFD:MakerNotePentax4");
-        available.add("ExifIFD:MakerNotePentax5");
-        available.add("ExifIFD:MakerNotePentax6");
-        available.add("ExifIFD:MakerNotePhaseOne");
-        available.add("ExifIFD:MakerNoteReconyx");
-        available.add("ExifIFD:MakerNoteRicoh");
-        available.add("ExifIFD:MakerNoteRicoh2");
-        available.add("ExifIFD:MakerNoteRicohText");
-        available.add("ExifIFD:MakerNoteSamsung1a");
-        available.add("ExifIFD:MakerNoteSamsung1b");
-        available.add("ExifIFD:MakerNoteSamsung2");
-        available.add("ExifIFD:MakerNoteSanyo");
-        available.add("ExifIFD:MakerNoteSanyoC4");
-        available.add("ExifIFD:MakerNoteSanyoPatch");
-        available.add("ExifIFD:MakerNoteSigma");
-        available.add("ExifIFD:MakerNoteSony");
-        available.add("ExifIFD:MakerNoteSony2");
-        available.add("ExifIFD:MakerNoteSony3");
-        available.add("ExifIFD:MakerNoteSony4");
-        available.add("ExifIFD:MakerNoteSony5");
-        available.add("ExifIFD:MakerNoteSonyEricsson");
-        available.add("ExifIFD:MakerNoteSonySRF");
-        available.add("ExifIFD:MakerNoteUnknown");
-        available.add("ExifIFD:MakerNoteUnknownBinary");
-        available.add("ExifIFD:MakerNoteUnknownText");
-        available.add("ExifIFD:MatrixWorldToCamera");
-        available.add("ExifIFD:MatrixWorldToScreen");
-        available.add("ExifIFD:Matteing");
-        available.add("ExifIFD:MaxApertureValue");
-        available.add("ExifIFD:MDColorTable");
-        available.add("ExifIFD:MDFileTag");
-        available.add("ExifIFD:MDFileUnits");
-        available.add("ExifIFD:MDLabName");
-        available.add("ExifIFD:MDPrepDate");
-        available.add("ExifIFD:MDPrepTime");
-        available.add("ExifIFD:MDSampleInfo");
-        available.add("ExifIFD:MDScalePixel");
-        available.add("ExifIFD:MeteringMode");
-        available.add("ExifIFD:Model2");
-        available.add("ExifIFD:ModelTiePoint");
-        available.add("ExifIFD:ModelTransform");
-        available.add("ExifIFD:ModeNumber");
-        available.add("ExifIFD:MoireFilter");
-        available.add("ExifIFD:MSDocumentText");
-        available.add("ExifIFD:MSDocumentTextPosition");
-        available.add("ExifIFD:MSPropertySetStorage");
-        available.add("ExifIFD:MultiProfiles");
-        available.add("ExifIFD:Noise");
-        available.add("ExifIFD:NumberofInks");
-        available.add("ExifIFD:OceApplicationSelector");
-        available.add("ExifIFD:OceIDNumber");
-        available.add("ExifIFD:OceImageLogic");
-        available.add("ExifIFD:OceScanjobDesc");
-        available.add("ExifIFD:OffsetSchema");
-        available.add("ExifIFD:OffsetTime");
-        available.add("ExifIFD:OffsetTimeDigitized");
-        available.add("ExifIFD:OffsetTimeOriginal");
-        available.add("ExifIFD:OPIProxy");
-        available.add("ExifIFD:Opto-ElectricConvFactor");
-        available.add("ExifIFD:OriginalFileName");
-        available.add("ExifIFD:OtherImageLength");
-        available.add("ExifIFD:OtherImageStart");
-        available.add("ExifIFD:OwnerName");
-        available.add("ExifIFD:Padding");
-        available.add("ExifIFD:PixelFormat");
-        available.add("ExifIFD:PixelIntensityRange");
-        available.add("ExifIFD:PixelMagicJBIGOptions");
-        available.add("ExifIFD:PixelScale");
-        available.add("ExifIFD:Pressure");
-        available.add("ExifIFD:ProfileType");
-        available.add("ExifIFD:RasterPadding");
-        available.add("ExifIFD:RawFile");
-        available.add("ExifIFD:RawImageSegmentation");
-        available.add("ExifIFD:RecommendedExposureIndex");
-        available.add("ExifIFD:RegionXformTackPoint");
-        available.add("ExifIFD:RelatedSoundFile");
-        available.add("ExifIFD:RowInterleaveFactor");
-        available.add("ExifIFD:SampleFormat");
-        available.add("ExifIFD:SamsungRawByteOrder");
-        available.add("ExifIFD:SamsungRawPointersLength");
-        available.add("ExifIFD:SamsungRawPointersOffset");
-        available.add("ExifIFD:SamsungRawUnknown");
-        available.add("ExifIFD:Saturation");
-        available.add("ExifIFD:SceneCaptureType");
-        available.add("ExifIFD:SceneType");
-        available.add("ExifIFD:SecurityClassification");
-        available.add("ExifIFD:SelfTimerMode");
-        available.add("ExifIFD:SensingMethod");
-        available.add("ExifIFD:SensitivityType");
-        available.add("ExifIFD:SerialNumber");
-        available.add("ExifIFD:Shadows");
-        available.add("ExifIFD:SharedData");
-        available.add("ExifIFD:Sharpness");
-        available.add("ExifIFD:ShutterSpeedValue");
-        available.add("ExifIFD:Site");
-        available.add("ExifIFD:SMaxSampleValue");
-        available.add("ExifIFD:SMinSampleValue");
-        available.add("ExifIFD:Smoothness");
-        available.add("ExifIFD:SonyRawFileType");
-        available.add("ExifIFD:SpatialFrequencyResponse");
-        available.add("ExifIFD:SpectralSensitivity");
-        available.add("ExifIFD:SRawType");
-        available.add("ExifIFD:StandardOutputSensitivity");
-        available.add("ExifIFD:StoNits");
-        available.add("ExifIFD:StripByteCounts");
-        available.add("ExifIFD:StripOffsets");
-        available.add("ExifIFD:StripRowCounts");
-        available.add("ExifIFD:SubjectArea");
-        available.add("ExifIFD:SubjectDistance");
-        available.add("ExifIFD:SubjectDistanceRange");
-        available.add("ExifIFD:SubjectLocation");
-        available.add("ExifIFD:SubSecTime");
-        available.add("ExifIFD:SubSecTimeDigitized");
-        available.add("ExifIFD:SubSecTimeOriginal");
-        available.add("ExifIFD:SubTileBlockSize");
-        available.add("ExifIFD:T4Options");
-        available.add("ExifIFD:T6Options");
-        available.add("ExifIFD:T82Options");
-        available.add("ExifIFD:T88Options");
-        available.add("ExifIFD:TextureFormat");
-        available.add("ExifIFD:TIFF-EPStandardID");
-        available.add("ExifIFD:TIFF_FXExtensions");
-        available.add("ExifIFD:TileByteCounts");
-        available.add("ExifIFD:TileDepth");
-        available.add("ExifIFD:TileOffsets");
-        available.add("ExifIFD:TimeZoneOffset");
-        available.add("ExifIFD:TransferRange");
-        available.add("ExifIFD:Transformation");
-        available.add("ExifIFD:TransparencyIndicator");
-        available.add("ExifIFD:TrapIndicator");
-        available.add("ExifIFD:UIC1Tag");
-        available.add("ExifIFD:UIC2Tag");
-        available.add("ExifIFD:UIC3Tag");
-        available.add("ExifIFD:UIC4Tag");
-        available.add("ExifIFD:Uncompressed");
-        available.add("ExifIFD:UserComment");
-        available.add("ExifIFD:USPTOMiscellaneous");
-        available.add("ExifIFD:USPTOOriginalContentType");
-        available.add("ExifIFD:VersionYear");
-        available.add("ExifIFD:WangAnnotation");
-        available.add("ExifIFD:WangTag1");
-        available.add("ExifIFD:WangTag3");
-        available.add("ExifIFD:WangTag4");
-        available.add("ExifIFD:WarpQuadrilateral");
-        available.add("ExifIFD:WaterDepth");
-        available.add("ExifIFD:WB_GRGBLevels");
-        available.add("ExifIFD:WhiteBalance");
-        available.add("ExifIFD:WidthResolution");
-        available.add("ExifIFD:WrapModes");
-        available.add("ExifIFD:XClipPathUnits");
-        available.add("ExifIFD:XP_DIP_XML");
-        available.add("ExifIFD:YClipPathUnits");
-        available.add("ExifTool:ExifToolVersion");
-        available.add("exiftool-log");
-        available.add("File:CurrentIPTCDigest");
-        available.add("File:ExifByteOrder");
-        available.add("File:FileType");
-        available.add("File:MIMEType");
-        available.add("ICC-header:CMMFlags");
-        available.add("ICC-header:ColorSpaceData");
-        available.add("ICC-header:ConnectionSpaceIlluminant");
-        available.add("ICC-header:DeviceAttributes");
-        available.add("ICC-header:DeviceManufacturer");
-        available.add("ICC-header:DeviceModel");
-        available.add("ICC-header:PrimaryPlatform");
-        available.add("ICC-header:ProfileClass");
-        available.add("ICC-header:ProfileCMMType");
-        available.add("ICC-header:ProfileConnectionSpace");
-        available.add("ICC-header:ProfileCreator");
-        available.add("ICC-header:ProfileDateTime");
-        available.add("ICC-header:ProfileFileSignature");
-        available.add("ICC-header:ProfileID");
-        available.add("ICC-header:ProfileVersion");
-        available.add("ICC-header:RenderingIntent");
-        available.add("ICC_Profile:AToB0");
-        available.add("ICC_Profile:AToB1");
-        available.add("ICC_Profile:AToB2");
-        available.add("ICC_Profile:BlueMatrixColumn");
-        available.add("ICC_Profile:BlueTRC");
-        available.add("ICC_Profile:BToA0");
-        available.add("ICC_Profile:BToA1");
-        available.add("ICC_Profile:BToA2");
-        available.add("ICC_Profile:BToD0");
-        available.add("ICC_Profile:BToD1");
-        available.add("ICC_Profile:BToD2");
-        available.add("ICC_Profile:BToD3");
-        available.add("ICC_Profile:CalibrationDateTime");
-        available.add("ICC_Profile:CharTarget");
-        available.add("ICC_Profile:ChromaticAdaptation");
-        available.add("ICC_Profile:ColorantOrder");
-        available.add("ICC_Profile:ColorantTableOut");
-        available.add("ICC_Profile:ColorimetricIntentImageState");
-        available.add("ICC_Profile:CRDInfo");
-        available.add("ICC_Profile:DeviceMfgDesc");
-        available.add("ICC_Profile:DeviceModelDesc");
-        available.add("ICC_Profile:DeviceSettings");
-        available.add("ICC_Profile:DToB0");
-        available.add("ICC_Profile:DToB1");
-        available.add("ICC_Profile:DToB2");
-        available.add("ICC_Profile:DToB3");
-        available.add("ICC_Profile:FocalPlaneColorimetryEstimates");
-        available.add("ICC_Profile:Gamut");
-        available.add("ICC_Profile:GrayTRC");
-        available.add("ICC_Profile:GreenMatrixColumn");
-        available.add("ICC_Profile:GreenTRC");
-        available.add("ICC_Profile:Luminance");
-        available.add("ICC_Profile:MakeAndModel");
-        available.add("ICC_Profile:MediaBlackPoint");
-        available.add("ICC_Profile:MediaWhitePoint");
-        available.add("ICC_Profile:NamedColor");
-        available.add("ICC_Profile:NamedColor2");
-        available.add("ICC_Profile:NativeDisplayInfo");
-        available.add("ICC_Profile:OutputResponse");
-        available.add("ICC_Profile:PerceptualRenderingIntentGamut");
-        available.add("ICC_Profile:PostScript2CRD0");
-        available.add("ICC_Profile:PostScript2CRD1");
-        available.add("ICC_Profile:PostScript2CRD2");
-        available.add("ICC_Profile:PostScript2CSA");
-        available.add("ICC_Profile:Preview0");
-        available.add("ICC_Profile:Preview1");
-        available.add("ICC_Profile:Preview2");
-        available.add("ICC_Profile:ProfileCopyright");
-        available.add("ICC_Profile:ProfileDescription");
-        available.add("ICC_Profile:ProfileDescriptionML");
-        available.add("ICC_Profile:ProfileSequenceDesc");
-        available.add("ICC_Profile:ProfileSequenceIdentifier");
-        available.add("ICC_Profile:PS2CRDVMSize");
-        available.add("ICC_Profile:PS2RenderingIntent");
-        available.add("ICC_Profile:RedMatrixColumn");
-        available.add("ICC_Profile:RedTRC");
-        available.add("ICC_Profile:ReflectionHardcopyOrigColorimetry");
-        available.add("ICC_Profile:ReflectionPrintOutputColorimetry");
-        available.add("ICC_Profile:SaturationRenderingIntentGamut");
-        available.add("ICC_Profile:SceneAppearanceEstimates");
-        available.add("ICC_Profile:SceneColorimetryEstimates");
-        available.add("ICC_Profile:Screening");
-        available.add("ICC_Profile:ScreeningDesc");
-        available.add("ICC_Profile:Technology");
-        available.add("ICC_Profile:UCRBG");
-        available.add("ICC_Profile:VideoCardGamma");
-        available.add("ICC_Profile:ViewingCondDesc");
-        available.add("ICC_Profile:WCSProfiles");
-        available.add("IFD0:AnalogBalance");
-        available.add("IFD0:Artist");
-        available.add("IFD0:AsShotICCProfile");
-        available.add("IFD0:AsShotNeutral");
-        available.add("IFD0:AsShotPreProfileMatrix");
-        available.add("IFD0:AsShotProfileName");
-        available.add("IFD0:AsShotWhiteXY");
-        available.add("IFD0:BaselineExposure");
-        available.add("IFD0:BaselineExposureOffset");
-        available.add("IFD0:BaselineNoise");
-        available.add("IFD0:BaselineSharpness");
-        available.add("IFD0:BitsPerSample");
-        available.add("IFD0:CalibrationIlluminant1");
-        available.add("IFD0:CalibrationIlluminant2");
-        available.add("IFD0:CameraCalibration1");
-        available.add("IFD0:CameraCalibration2");
-        available.add("IFD0:CameraCalibrationSig");
-        available.add("IFD0:CameraLabel");
-        available.add("IFD0:CameraSerialNumber");
-        available.add("IFD0:CellLength");
-        available.add("IFD0:CellWidth");
-        available.add("IFD0:ColorimetricReference");
-        available.add("IFD0:ColorMatrix1");
-        available.add("IFD0:ColorMatrix2");
-        available.add("IFD0:Compression");
-        available.add("IFD0:Copyright");
-        available.add("IFD0:CurrentICCProfile");
-        available.add("IFD0:CurrentPreProfileMatrix");
-        available.add("IFD0:DefaultBlackRender");
-        available.add("IFD0:DNGAdobeData");
-        available.add("IFD0:DNGBackwardVersion");
-        available.add("IFD0:DNGLensInfo");
-        available.add("IFD0:DNGPrivateData");
-        available.add("IFD0:DNGVersion");
-        available.add("IFD0:DocumentName");
-        available.add("IFD0:FillOrder");
-        available.add("IFD0:ForwardMatrix1");
-        available.add("IFD0:ForwardMatrix2");
-        available.add("IFD0:FrameRate");
-        available.add("IFD0:GeoTiffAsciiParams");
-        available.add("IFD0:GeoTiffDirectory");
-        available.add("IFD0:GeoTiffDoubleParams");
-        available.add("IFD0:GrayResponseUnit");
-        available.add("IFD0:HalftoneHints");
-        available.add("IFD0:HostComputer");
-        available.add("IFD0:ImageDescription");
-        available.add("IFD0:ImageHeight");
-        available.add("IFD0:ImageSourceData");
-        available.add("IFD0:ImageWidth");
-        available.add("IFD0:InkSet");
-        available.add("IFD0:IPTC-NAA");
-        available.add("IFD0:LinearResponseLimit");
-        available.add("IFD0:LocalizedCameraModel");
-        available.add("IFD0:Make");
-        available.add("IFD0:MakerNoteSafety");
-        available.add("IFD0:MaxSampleValue");
-        available.add("IFD0:MinSampleValue");
-        available.add("IFD0:Model");
-        available.add("IFD0:ModifyDate");
-        available.add("IFD0:NewRawImageDigest");
-        available.add("IFD0:OldSubfileType");
-        available.add("IFD0:Orientation");
-        available.add("IFD0:OriginalBestQualitySize");
-        available.add("IFD0:OriginalDefaultCropSize");
-        available.add("IFD0:OriginalDefaultFinalSize");
-        available.add("IFD0:OriginalRawFileData");
-        available.add("IFD0:OriginalRawFileDigest");
-        available.add("IFD0:OriginalRawFileName");
-        available.add("IFD0:PageName");
-        available.add("IFD0:PageNumber");
-        available.add("IFD0:PanasonicTitle");
-        available.add("IFD0:PanasonicTitle2");
-        available.add("IFD0:PhotometricInterpretation");
-        available.add("IFD0:PlanarConfiguration");
-        available.add("IFD0:Predictor");
-        available.add("IFD0:PreviewApplicationName");
-        available.add("IFD0:PreviewApplicationVersion");
-        available.add("IFD0:PreviewColorSpace");
-        available.add("IFD0:PreviewDateTime");
-        available.add("IFD0:PreviewImageLength");
-        available.add("IFD0:PreviewImageStart");
-        available.add("IFD0:PreviewSettingsDigest");
-        available.add("IFD0:PreviewSettingsName");
-        available.add("IFD0:PrimaryChromaticities");
-        available.add("IFD0:PrintIM");
-        available.add("IFD0:ProcessingSoftware");
-        available.add("IFD0:ProfileCalibrationSig");
-        available.add("IFD0:ProfileCopyright");
-        available.add("IFD0:ProfileEmbedPolicy");
-        available.add("IFD0:ProfileHueSatMapData1");
-        available.add("IFD0:ProfileHueSatMapData2");
-        available.add("IFD0:ProfileHueSatMapDims");
-        available.add("IFD0:ProfileHueSatMapEncoding");
-        available.add("IFD0:ProfileLookTableData");
-        available.add("IFD0:ProfileLookTableDims");
-        available.add("IFD0:ProfileLookTableEncoding");
-        available.add("IFD0:ProfileName");
-        available.add("IFD0:ProfileToneCurve");
-        available.add("IFD0:Rating");
-        available.add("IFD0:RatingPercent");
-        available.add("IFD0:RawDataUniqueID");
-        available.add("IFD0:RawImageDigest");
-        available.add("IFD0:RawToPreviewGain");
-        available.add("IFD0:ReductionMatrix1");
-        available.add("IFD0:ReductionMatrix2");
-        available.add("IFD0:ReelName");
-        available.add("IFD0:ReferenceBlackWhite");
-        available.add("IFD0:ResolutionUnit");
-        available.add("IFD0:RowsPerStrip");
-        available.add("IFD0:SamplesPerPixel");
-        available.add("IFD0:SEMInfo");
-        available.add("IFD0:ShadowScale");
-        available.add("IFD0:Software");
-        available.add("IFD0:StripByteCounts");
-        available.add("IFD0:StripOffsets");
-        available.add("IFD0:SubfileType");
-        available.add("IFD0:T6Options");
-        available.add("IFD0:TargetPrinter");
-        available.add("IFD0:Thresholding");
-        available.add("IFD0:ThumbnailLength");
-        available.add("IFD0:ThumbnailOffset");
-        available.add("IFD0:TileLength");
-        available.add("IFD0:TileWidth");
-        available.add("IFD0:TimeCodes");
-        available.add("IFD0:TransferFunction");
-        available.add("IFD0:TStop");
-        available.add("IFD0:UniqueCameraModel");
-        available.add("IFD0:WhitePoint");
-        available.add("IFD0:XPAuthor");
-        available.add("IFD0:XPComment");
-        available.add("IFD0:XPKeywords");
-        available.add("IFD0:XPosition");
-        available.add("IFD0:XPSubject");
-        available.add("IFD0:XPTitle");
-        available.add("IFD0:XResolution");
-        available.add("IFD0:YCbCrCoefficients");
-        available.add("IFD0:YCbCrPositioning");
-        available.add("IFD0:YCbCrSubSampling");
-        available.add("IFD0:YPosition");
-        available.add("IFD0:YResolution");
-        available.add("IPTC2:ApplicationRecordVersion");
-        available.add("IPTC2:CopyrightNotice");
-        available.add("IPTC:ApplicationRecordVersion");
-        available.add("IPTC:CodedCharacterSet");
-        available.add("IPTC:CopyrightNotice");
-        available.add("IPTC:DateCreated");
-        available.add("IPTC:DigitalCreationDate");
-        available.add("IPTC:DigitalCreationTime");
-        available.add("IPTC:TimeCreated");
-        available.add("Photoshop:AlphaChannelsNames");
-        available.add("Photoshop:CopyrightFlag");
-        available.add("Photoshop:DisplayedUnitsX");
-        available.add("Photoshop:DisplayedUnitsY");
-        available.add("Photoshop:GlobalAltitude");
-        available.add("Photoshop:GlobalAngle");
-        available.add("Photoshop:IPTCDigest");
-        available.add("Photoshop:PhotoshopThumbnail");
-        available.add("Photoshop:XResolution");
-        available.add("Photoshop:YResolution");
-        available.add("System:Directory");
-        available.add("System:FileAccessDate");
-        available.add("System:FileInodeChangeDate");
-        available.add("System:FileModifyDate");
-        available.add("System:FileName");
-        available.add("System:FilePermissions");
-        available.add("System:FileSize");
-        available.add("XMP-aux:ApproximateFocusDistance");
-        available.add("XMP-aux:ImageNumber");
-        available.add("XMP-aux:Lens");
-        available.add("XMP-aux:LensID");
-        available.add("XMP-aux:LensInfo");
-        available.add("XMP-aux:SerialNumber");
-        available.add("XMP-crs:AlreadyApplied");
-        available.add("XMP-crs:AutoLateralCA");
-        available.add("XMP-crs:AutoWhiteVersion");
-        available.add("XMP-crs:Blacks2012");
-        available.add("XMP-crs:BlueHue");
-        available.add("XMP-crs:BlueSaturation");
-        available.add("XMP-crs:CameraProfile");
-        available.add("XMP-crs:CameraProfileDigest");
-        available.add("XMP-crs:Clarity2012");
-        available.add("XMP-crs:ColorNoiseReduction");
-        available.add("XMP-crs:ColorNoiseReductionDetail");
-        available.add("XMP-crs:ColorNoiseReductionSmoothness");
-        available.add("XMP-crs:ColorTemperature");
-        available.add("XMP-crs:Contrast2012");
-        available.add("XMP-crs:ConvertToGrayscale");
-        available.add("XMP-crs:CropAngle");
-        available.add("XMP-crs:CropBottom");
-        available.add("XMP-crs:CropConstrainToWarp");
-        available.add("XMP-crs:CropLeft");
-        available.add("XMP-crs:CropRight");
-        available.add("XMP-crs:CropTop");
-        available.add("XMP-crs:DefringeGreenAmount");
-        available.add("XMP-crs:DefringeGreenHueHi");
-        available.add("XMP-crs:DefringeGreenHueLo");
-        available.add("XMP-crs:DefringePurpleAmount");
-        available.add("XMP-crs:DefringePurpleHueHi");
-        available.add("XMP-crs:DefringePurpleHueLo");
-        available.add("XMP-crs:Exposure2012");
-        available.add("XMP-crs:GrainAmount");
-        available.add("XMP-crs:GreenHue");
-        available.add("XMP-crs:GreenSaturation");
-        available.add("XMP-crs:HasCrop");
-        available.add("XMP-crs:HasSettings");
-        available.add("XMP-crs:Highlights2012");
-        available.add("XMP-crs:HueAdjustmentAqua");
-        available.add("XMP-crs:HueAdjustmentBlue");
-        available.add("XMP-crs:HueAdjustmentGreen");
-        available.add("XMP-crs:HueAdjustmentMagenta");
-        available.add("XMP-crs:HueAdjustmentOrange");
-        available.add("XMP-crs:HueAdjustmentPurple");
-        available.add("XMP-crs:HueAdjustmentRed");
-        available.add("XMP-crs:HueAdjustmentYellow");
-        available.add("XMP-crs:LensManualDistortionAmount");
-        available.add("XMP-crs:LensProfileChromaticAberrationScale");
-        available.add("XMP-crs:LensProfileDigest");
-        available.add("XMP-crs:LensProfileDistortionScale");
-        available.add("XMP-crs:LensProfileEnable");
-        available.add("XMP-crs:LensProfileFilename");
-        available.add("XMP-crs:LensProfileName");
-        available.add("XMP-crs:LensProfileSetup");
-        available.add("XMP-crs:LensProfileVignettingScale");
-        available.add("XMP-crs:LuminanceAdjustmentAqua");
-        available.add("XMP-crs:LuminanceAdjustmentBlue");
-        available.add("XMP-crs:LuminanceAdjustmentGreen");
-        available.add("XMP-crs:LuminanceAdjustmentMagenta");
-        available.add("XMP-crs:LuminanceAdjustmentOrange");
-        available.add("XMP-crs:LuminanceAdjustmentPurple");
-        available.add("XMP-crs:LuminanceAdjustmentRed");
-        available.add("XMP-crs:LuminanceAdjustmentYellow");
-        available.add("XMP-crs:LuminanceSmoothing");
-        available.add("XMP-crs:ParametricDarks");
-        available.add("XMP-crs:ParametricHighlights");
-        available.add("XMP-crs:ParametricHighlightSplit");
-        available.add("XMP-crs:ParametricLights");
-        available.add("XMP-crs:ParametricMidtoneSplit");
-        available.add("XMP-crs:ParametricShadows");
-        available.add("XMP-crs:ParametricShadowSplit");
-        available.add("XMP-crs:PerspectiveAspect");
-        available.add("XMP-crs:PerspectiveHorizontal");
-        available.add("XMP-crs:PerspectiveRotate");
-        available.add("XMP-crs:PerspectiveScale");
-        available.add("XMP-crs:PerspectiveUpright");
-        available.add("XMP-crs:PerspectiveVertical");
-        available.add("XMP-crs:PostCropVignetteAmount");
-        available.add("XMP-crs:ProcessVersion");
-        available.add("XMP-crs:RawFileName");
-        available.add("XMP-crs:RedHue");
-        available.add("XMP-crs:RedSaturation");
-        available.add("XMP-crs:Saturation");
-        available.add("XMP-crs:SaturationAdjustmentAqua");
-        available.add("XMP-crs:SaturationAdjustmentBlue");
-        available.add("XMP-crs:SaturationAdjustmentGreen");
-        available.add("XMP-crs:SaturationAdjustmentMagenta");
-        available.add("XMP-crs:SaturationAdjustmentOrange");
-        available.add("XMP-crs:SaturationAdjustmentPurple");
-        available.add("XMP-crs:SaturationAdjustmentRed");
-        available.add("XMP-crs:SaturationAdjustmentYellow");
-        available.add("XMP-crs:Shadows2012");
-        available.add("XMP-crs:ShadowTint");
-        available.add("XMP-crs:SharpenDetail");
-        available.add("XMP-crs:SharpenEdgeMasking");
-        available.add("XMP-crs:SharpenRadius");
-        available.add("XMP-crs:Sharpness");
-        available.add("XMP-crs:SplitToningBalance");
-        available.add("XMP-crs:SplitToningHighlightHue");
-        available.add("XMP-crs:SplitToningHighlightSaturation");
-        available.add("XMP-crs:SplitToningShadowHue");
-        available.add("XMP-crs:SplitToningShadowSaturation");
-        available.add("XMP-crs:Tint");
-        available.add("XMP-crs:Version");
-        available.add("XMP-crs:Vibrance");
-        available.add("XMP-crs:VignetteAmount");
-        available.add("XMP-crs:WhiteBalance");
-        available.add("XMP-crs:Whites2012");
-        available.add("XMP-dc:Format");
-        available.add("XMP-dc:Rights");
-        available.add("XMP-exif:ApertureValue");
-        available.add("XMP-exif:BrightnessValue");
-        available.add("XMP-exif:ColorSpace");
-        available.add("XMP-exif:CompressedBitsPerPixel");
-        available.add("XMP-exif:Contrast");
-        available.add("XMP-exif:CustomRendered");
-        available.add("XMP-exif:DateTimeDigitized");
-        available.add("XMP-exif:DateTimeOriginal");
-        available.add("XMP-exif:ExifImageHeight");
-        available.add("XMP-exif:ExifImageWidth");
-        available.add("XMP-exif:ExifVersion");
-        available.add("XMP-exif:ExposureCompensation");
-        available.add("XMP-exif:ExposureMode");
-        available.add("XMP-exif:ExposureProgram");
-        available.add("XMP-exif:ExposureTime");
-        available.add("XMP-exif:FileSource");
-        available.add("XMP-exif:FlashFired");
-        available.add("XMP-exif:FlashFunction");
-        available.add("XMP-exif:FlashMode");
-        available.add("XMP-exif:FlashpixVersion");
-        available.add("XMP-exif:FlashRedEyeMode");
-        available.add("XMP-exif:FlashReturn");
-        available.add("XMP-exif:FNumber");
-        available.add("XMP-exif:FocalLength");
-        available.add("XMP-exif:FocalLengthIn35mmFormat");
-        available.add("XMP-exif:FocalPlaneResolutionUnit");
-        available.add("XMP-exif:FocalPlaneXResolution");
-        available.add("XMP-exif:FocalPlaneYResolution");
-        available.add("XMP-exif:ISO");
-        available.add("XMP-exif:LightSource");
-        available.add("XMP-exif:MeteringMode");
-        available.add("XMP-exif:NativeDigest");
-        available.add("XMP-exif:Saturation");
-        available.add("XMP-exif:SceneCaptureType");
-        available.add("XMP-exif:SceneType");
-        available.add("XMP-exif:SensingMethod");
-        available.add("XMP-exif:Sharpness");
-        available.add("XMP-exif:ShutterSpeedValue");
-        available.add("XMP-exif:SubjectDistanceRange");
-        available.add("XMP-exif:WhiteBalance");
-        available.add("XMP-photoshop:ColorMode");
-        available.add("XMP-photoshop:DateCreated");
-        available.add("XMP-photoshop:History");
-        available.add("XMP-photoshop:ICCProfileName");
-        available.add("XMP-tiff:BitsPerSample");
-        available.add("XMP-tiff:Compression");
-        available.add("XMP-tiff:ImageHeight");
-        available.add("XMP-tiff:ImageWidth");
-        available.add("XMP-tiff:Make");
-        available.add("XMP-tiff:Model");
-        available.add("XMP-tiff:NativeDigest");
-        available.add("XMP-tiff:Orientation");
-        available.add("XMP-tiff:PhotometricInterpretation");
-        available.add("XMP-tiff:ResolutionUnit");
-        available.add("XMP-tiff:SamplesPerPixel");
-        available.add("XMP-tiff:XResolution");
-        available.add("XMP-tiff:YResolution");
-        available.add("XMP-xmp:CreateDate");
-        available.add("XMP-xmp:CreatorTool");
-        available.add("XMP-xmp:MetadataDate");
-        available.add("XMP-xmpMM:DerivedFrom");
-        available.add("XMP-xmpMM:DerivedFromDocumentID");
-        available.add("XMP-xmpMM:DerivedFromInstanceID");
-        available.add("XMP-xmpMM:DerivedFromOriginalDocumentID");
-        available.add("XMP-xmpMM:DocumentID");
-        available.add("XMP-xmpMM:HistoryParameters");
-        available.add("XMP-xmpMM:InstanceID");
-        available.add("XMP-xmpMM:OriginalDocumentID");
-        available.add("XMP-xmp:ModifyDate");
-        available.add("XMP-x:XMPToolkit");
-        return available;
-    }
-
-    @Override
-    public final boolean isWellFormed() {
-      return this.iswellformed;
-    }
-
-    @Override
-    public final boolean isValid() {
-        log.debug("is valid=" + this.isvalid);
-        return this.isvalid;
-    }
-    @Override
-    public final String getFormatName() {
-        return "TIFF";
-    }
-
-    @Override
-    public final String getFormatVersion() {
-      return "6 (baseline + SLUB extensions)";
-    }
-
-    @Override
-    public final Integer getImageCount() {
-        return 1; //baseline tiff holds exact one
-    }
-
-    @Override
-    public final String getMimeType() {
-      return "image/tiff";
-    }
-
-    @Override
-    public final String getProfile() {
-        /* there is no documentation in ExL API, therefore we use it to document the profile versions in a light way */
-        StringBuilder returnvalue = new StringBuilder();
-        for (Checkit_tiff_versions v: Checkit_tiff_versions.values()) {
-            String modificationdate = modificationDateOfFile(this.checkit_tiff_config_path.get(v));
-            returnvalue.append(v).append("profile:\n").append("  path=").append(this.checkit_tiff_config_path.get(v)).append("\n").append("  md5sum=").append(this.md5CheckitTiff.get(v)).append("\n").append("  modification date=").append(modificationdate).append("\n");
-        }
-        return returnvalue.toString();
-    }
-
-    private String md5SumOfFile(String filename ) {
-        try {
-            MessageDigest md = MessageDigest.getInstance("MD5");
-            byte[] b = Files.readAllBytes(Paths.get(filename));
-            byte[] digest = md.digest(b);
-            return new BigInteger(1, digest).toString(16);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-
-    private String modificationDateOfFile(String filename ) {
-        try {
-            return Files.getLastModifiedTime(Paths.get(filename)).toString();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-
-
-    /** stand-alone check, main file
-     * @param args list of files which should be scanned
-     */
-    public static void main(String[] args) {
-        SLUBTechnicalMetadataExtractorCheckItTiffPlugin plugin = new SLUBTechnicalMetadataExtractorCheckItTiffPlugin();
-        Map<String, String> initp = new HashMap<>();
-        initp.put( "current_checkit_tiff", "/operational_shared/software/checkit_tiff_current");
-        initp.put( "current_config_file", "/operational_shared/software/cit_tiff6_baseline_SLUB_current.cfg");
-        initp.put( "upcoming_checkit_tiff", "/operational_shared/software/checkit_tiff_upcoming");
-        initp.put( "upcoming_config_file", "/operational_shared/software/cit_tiff6_baseline_SLUB_current.cfg");
-        initp.put( "exiftool", "/usr/bin/exiftool");
-        plugin.initParams( initp );
-        System.out.println("Agent: '" + plugin.getAgent() + "'");
-        System.out.println();
-        for (String file : args) {
-            try {
-                plugin.extract(file);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-            System.out.println("RESULT: " + plugin.isValid());
-            System.out.println("ERRORMESSAGE: " + plugin.getExtractionErrors());
-        }
-        System.out.println("----------------------------------");
-        System.out.println("getAgentName:");
-        System.out.println( plugin.getAgentName());
-        System.out.println("----------------------------------");
-        System.out.println("getAgent:");
-        System.out.println( plugin.getAgent());
-        System.out.println("----------------------------------");
-        System.out.println("getSupportedAttributeNames:");
-        System.out.println( plugin.getSupportedAttributeNames());
-        System.out.println("----------------------------------");
-        System.out.println("getFormatName:");
-        System.out.println( plugin.getFormatName());
-        System.out.println("----------------------------------");
-        System.out.println("getFormatVersion:");
-        System.out.println( plugin.getFormatVersion());
-        System.out.println("----------------------------------");
-        System.out.println("getMimeType:");
-        System.out.println( plugin.getMimeType());
-        System.out.println("----------------------------------");
-        System.out.println("getProfile:");
-        System.out.println( plugin.getProfile());
-        System.out.println("----------------------------------");
-        System.out.println("getAttributeByName (summarized):");
-        for (Map.Entry<String, String> m : plugin.attributes.entrySet()) {
-            String s = m.getKey() + " -> " + m.getValue();
-            System.out.println(s);
-        }
-    }
-}
diff --git a/test.sh b/test.sh
index d85103c2d61977aa30160ab693fcee47757341ef..6f345a7a73f7901b15f0a3b011814eb4456255ec 100644
--- a/test.sh
+++ b/test.sh
@@ -6,11 +6,11 @@ if [ ! -f "$1" ]; then echo "error: media file '$1' does not exist"; exit 1; fi
 
 # set variables
 MEDIA_FILE="$1";
-ROSETTAVERSION="7.1.0"
+ROSETTAVERSION="7.3.0"
 ROSETTA_SDK_DIR="/exlibris/dps/d4_1/system.dir/dps-sdk-${ROSETTAVERSION}"
 ROSETTA_SDK_JAR="${ROSETTA_SDK_DIR}/lib/dps-sdk-${ROSETTAVERSION}.jar:${ROSETTA_SDK_DIR}/dps-sdk-projects/dps-sdk-deposit/lib/log4j-1.2.14.jar"
 PLUGIN_JAR="./SLUBTechnicalMetadataExtractorCheckItTiffPlugin.jar"
-PLUGIN_NAME="org.slub.rosetta.dps.repository.plugin.SLUBTechnicalMetadataExtractorCheckItTiffPlugin"
+PLUGIN_NAME="org.slub.rosetta.dps.repository.plugin.SLUBRetroMonographieTIFFFormatValidationPlugin"
 
 # run plugin
 java -cp "${ROSETTA_SDK_JAR}:${PLUGIN_JAR}" "${PLUGIN_NAME}" "${MEDIA_FILE}"