Commit 032f17e6 authored by marceteau's avatar marceteau
Browse files

ajout gestion ark dans les relations + refactor fermeture bufferReader

parent d9610d57
#!/usr/bin/env bash #!/usr/bin/env bash
java -jar /usr/share/java/archive-converter/${project.name}-${project.version}.jar "$@" java -Dfr.cines.vitam.converter.ark=/etc/${project.name}/pac_list_all_ark.txt -jar /usr/share/java/archive-converter/${project.name}-${project.version}.jar "$@"
\ No newline at end of file \ No newline at end of file
...@@ -468,9 +468,10 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -468,9 +468,10 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
* @param submissionAgency * @param submissionAgency
* @param currentArchive * @param currentArchive
* @throws IngestRejectException * @throws IngestRejectException
* @throws IOException
*/ */
@SuppressWarnings("null") @SuppressWarnings("null")
private DataObjectPackageType mapArchiveBlock(ArchiveUnitType currentArchive, PacType sip) throws IngestRejectException{ private DataObjectPackageType mapArchiveBlock(ArchiveUnitType currentArchive, PacType sip) throws IngestRejectException, IOException{
DataObjectPackageType dataObjectPackage = objectFactory.createDataObjectPackageType(); DataObjectPackageType dataObjectPackage = objectFactory.createDataObjectPackageType();
// Contrat d'archive // Contrat d'archive
...@@ -807,16 +808,40 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -807,16 +808,40 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
} }
/** /**
* Cette fonction sert à tenter de reformer l'ark depuis un identifiant provenant de PAC * Cette fonction sert à reformer l'ark depuis un identifiant provenant de PAC (qui est unique)
* Pour ce faire, on utilise la liste complète de tous les ark provenant d'arcsys qui doit être disponible localement dans
* le fichier pac_list_all_ark.txt.
* Il faudra mettre à jour cette liste jusqu'à ce que arcsys ne soit plus utilisé.
* *
* @param identifiantSourceRelation * @param identifiantSourceRelation
* @return * @return
* @throws IOException
*/ */
private String constructArkFromIdentifier(String identifiantSourceRelation) { private String constructArkFromIdentifier(String identifiantSourceRelation) {
// TODO Corriger cette fonction pour être certain que l'ark existe (si c'est seulement possible...) String arkProperty = System.getProperty("fr.cines.vitam.converter.ark");
//Il faudra peut-être aller interroger vitam et/ou arcsys si l'on veut être rigoureux try (BufferedReader br = new BufferedReader(new FileReader(arkProperty))) {
String prefix = properties.getProperty(PREFIXE_ARK);
return prefix.concat(identifiantSourceRelation); String ligne = null;
while ((ligne = br.readLine()) != null)
{
String[] data = ligne.split("-");
if (data.length == 2) {
String identifiant = data[1].trim();
if(identifiant.equalsIgnoreCase(identifiantSourceRelation)) {
br.close();
return ligne;
}
}
}
br.close();
return null;
} catch (IOException e) {
e.printStackTrace();
}
return null;
} }
/** /**
...@@ -1318,7 +1343,11 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -1318,7 +1343,11 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
metadata.setAudio(audioTechnicalMetadataType); metadata.setAudio(audioTechnicalMetadataType);
} }
} }
if(metadata.getAudio() != null || metadata.getDocument() != null || metadata.getImage() != null
|| metadata.getOtherCoreTechnicalMetadataAbstract() != null || metadata.getText() != null
|| metadata.getVideo() != null) {
binaryDataObject.setMetadata(metadata); binaryDataObject.setMetadata(metadata);
}
// if (formatVideoList.contains(format.getName())) { // if (formatVideoList.contains(format.getName())) {
// JAXBElement<String> jaxbElementEncoding = createXMLElement(format.getEncoding(), "encoding"); // JAXBElement<String> jaxbElementEncoding = createXMLElement(format.getEncoding(), "encoding");
// //
...@@ -1992,9 +2021,9 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -1992,9 +2021,9 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
* @return * @return
* @throws Exception * @throws Exception
*/ */
public static String[] filePlanData(String filePath, String planClassement) throws Exception public static String[] filePlanData(String filePath, String planClassement)
{ {
BufferedReader br = new BufferedReader(new FileReader(filePath)); try(BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String ligne = null; String ligne = null;
planClassement = planClassement.trim(); planClassement = planClassement.trim();
...@@ -2012,12 +2041,20 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -2012,12 +2041,20 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
String planClassementFile = data[0].trim(); String planClassementFile = data[0].trim();
if(planClassement.equals(planClassementFile)) { if(planClassement.equals(planClassementFile)) {
br.close();
return data; return data;
} }
} }
} }
br.close(); br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//TODO : lever une exception car on n'a pas d'équivalent dans le fichier de référence //TODO : lever une exception car on n'a pas d'équivalent dans le fichier de référence
return null; return null;
} }
...@@ -2033,9 +2070,9 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -2033,9 +2070,9 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
* @throws IOException * @throws IOException
* @throws Exception * @throws Exception
*/ */
private static String propertiesCorespondance(String filePath, String agency, String planClassement) throws IOException private static String propertiesCorespondance(String filePath, String agency, String planClassement)
{ {
BufferedReader br = new BufferedReader(new FileReader(filePath + "/correspondances_properties.csv")); try(BufferedReader br = new BufferedReader(new FileReader(filePath + "/correspondances_properties.csv"))) {
String ligne = null; String ligne = null;
agency = agency.trim(); agency = agency.trim();
...@@ -2053,6 +2090,7 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -2053,6 +2090,7 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
String planClassementFile = data[1].trim(); String planClassementFile = data[1].trim();
if(agency.equalsIgnoreCase(agencyFile) && planClassement.equalsIgnoreCase(planClassementFile)) { if(agency.equalsIgnoreCase(agencyFile) && planClassement.equalsIgnoreCase(planClassementFile)) {
br.close();
return data[2]; return data[2];
} else if(agency.equalsIgnoreCase(agencyFile) && "/".equalsIgnoreCase(planClassementFile)) { } else if(agency.equalsIgnoreCase(agencyFile) && "/".equalsIgnoreCase(planClassementFile)) {
defaultProperties = data[2]; defaultProperties = data[2];
...@@ -2060,10 +2098,19 @@ public class DCToSeda21Converter extends AbstractArchiveConverter { ...@@ -2060,10 +2098,19 @@ public class DCToSeda21Converter extends AbstractArchiveConverter {
} }
} }
if(!defaultProperties.equals("")) { if(!defaultProperties.equals("")) {
br.close();
return defaultProperties; return defaultProperties;
} }
br.close(); br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//TODO : lever une exception car on n'a pas de fichier properties //TODO : lever une exception car on n'a pas de fichier properties
return null; return null;
} }
......
# Metadonnees Generales
ArchivalAgreement = CE-000004
ArchivalProfile = false
ArchiveUnitProfile = false
AppraisalRule_Rule = false
OriginatingAgencyIdentifier = SA-000023
SubmissionAgencyIdentifier = SA-000023
ArchivalAgency_Identifier = SA-000001
TransferringAgency_Identifier = SA-000023
# Indique la balise cible : choix entre OriginatingSystemId, OriginatingAgencyArchiveUnitIdentifier et TransferringAgencyArchiveUnitIdentifier
IdentifiantDocProducteur = TransferringAgencyArchiveUnitIdentifier
# Configuration specifique
# Mapping des balises oui/non
format = false
coverage = true
planClassement = false
# Optionnel : utiliser pour mapper DocumentType
# Si absent reprends la concatnation des balises type de DocDC
DocumentType=Electronic Thesis or Dissertation
# Generation des balises
prefixeARK = false
cines-dc = true
# Non utilise
X-Access-Contract-Id = CA-000001
# Metadonnees Generales
ArchivalAgreement = CE-000005
ArchivalProfile = false
ArchiveUnitProfile = false
AppraisalRule_Rule = false
OriginatingAgencyIdentifier = SA-000024
SubmissionAgencyIdentifier = SA-000024
ArchivalAgency_Identifier = SA-000001
TransferringAgency_Identifier = SA-000024
# Indique la balise cible : choix entre OriginatingSystemId, OriginatingAgencyArchiveUnitIdentifier et TransferringAgencyArchiveUnitIdentifier
IdentifiantDocProducteur = TransferringAgencyArchiveUnitIdentifier
# Configuration specifique
# Mapping des balises oui/non
format = true
coverage = true
planClassement = true
# Generation des balises
prefixeARK = false
cines-dc = true
# Non utilise
X-Access-Contract-Id = CA-000001
\ No newline at end of file
# Metadonnees Generales
ArchivalAgreement = CE-000001
ArchivalProfile = false
ArchiveUnitProfile = false
AppraisalRule_Rule = false
OriginatingAgencyIdentifier = SA-000001
SubmissionAgencyIdentifier = SA-000001
ArchivalAgency_Identifier = SA-000001
TransferringAgency_Identifier = SA-000001
# Indique la balise cible : choix entre OriginatingSystemId, OriginatingAgencyArchiveUnitIdentifier et TransferringAgencyArchiveUnitIdentifier
IdentifiantDocProducteur = OriginatingSystemId
# Configuration specifique
# Mapping des balises oui/non
format = false
coverage = false
planClassement = false
# Optionnel : utiliser pour mapper DocumentType
# Si absent reprends la concatnation des balises type de DocDC
#DocumentType=Mon type
# Generation des balises
prefixeARK = false
cines-dc = false
# Non utilise
X-Access-Contract-Id = CA-000001
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment