Skip to content
Snippets Groups Projects
Commit ad9dea73 authored by unknown's avatar unknown
Browse files

final version

parent cc7ff3eb
No related branches found
No related tags found
No related merge requests found
Showing
with 1438 additions and 0 deletions
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import fr.cines.pacit.tranfer.ArchiveService;
import fr.cines.pacit.tranfer.ArchiveServiceFactory;
import fr.cines.pacit.transfer.impl.HttpTransferImpl;
import fr.cines.pacit.transfer.impl.SubmissionTask;
import fr.cines.pacit.transfer.impl.VitamArchiveService;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class Pacit {
/**
* @param args
* @throws SAXException
* @throws ParserConfigurationException
*/
private static Map<String, String> mapZipFile = new HashMap<String, String>();
private static Map<String, String> mapRulesFiles = new HashMap<String, String>();
public static void main(String[] args) throws SAXException, ParserConfigurationException {
HttpTransferImpl transfer = new HttpTransferImpl();
transfer.getTestFiles();
mapZipFile = transfer.getMapZipFile() ;
mapRulesFiles = transfer.getMapRulesFile();
ArchiveService archiveService = ArchiveServiceFactory.getInstance();
List<SubmissionTask> submissionList = new ArrayList<SubmissionTask>();
for (Map.Entry mapentry : mapZipFile.entrySet()) {
String pathToExpectedResult = mapRulesFiles.get(mapentry.getKey());
if(pathToExpectedResult != null) {
Path path = Paths.get(mapentry.getValue().toString());
SubmissionTask task = new SubmissionTask(path, archiveService, Paths.get(pathToExpectedResult));
submissionList.add(task);
}
}
ExecutorService executor = Executors.newFixedThreadPool(3);
for(SubmissionTask s : submissionList){
executor.execute(s);
}
executor.shutdown();
}
public void archiveFile(List<Path> paths) {
for(Path path : paths) {
ArchiveService archiveFile;
try {
archiveFile = new VitamArchiveService();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class TestArtReceived {
public boolean testDate(String date) {
String regex = "[1-9][0-9]{3}-.+T[^.]+(Z|[+-].+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher((CharSequence)date);
System.out.println(matcher.matches());
return matcher.matches();
}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.parse;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.nio.file.Path;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import fr.cines.pacit.Pacit;
import fr.cines.pacit.parse.handler.ArchiveTransferReplyHandler;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class ParseXml {
public Map<String,String> buildMap(Path filePath) throws SAXException, ParserConfigurationException {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(false);
SAXParser parser = spf.newSAXParser();
XMLReader reader = parser.getXMLReader();
ArchiveTransferReplyHandler handler = new ArchiveTransferReplyHandler();
reader.setContentHandler(handler);
InputStream fichier;
try {
fichier = new FileInputStream(filePath.toFile());
InputSource is = new InputSource(fichier);
reader.parse(is);
return handler.getMap();
} catch (FileNotFoundException e) {
System.out.println("fichier " + filePath + " introuvable");
System.exit(-1);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public Map<String,String> buildMap(String stringCharacters) throws SAXException, ParserConfigurationException {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(false);
SAXParser parser = spf.newSAXParser();
XMLReader reader = parser.getXMLReader();
ArchiveTransferReplyHandler handler = new ArchiveTransferReplyHandler();
reader.setContentHandler(handler);
InputStream fichier;
try {
StringReader stringReader = new StringReader(stringCharacters);
InputSource is = new InputSource(stringReader);
reader.parse(is);
return handler.getMap();
} catch (FileNotFoundException e) {
System.out.println("ATR est introuvable :[ ");
System.exit(-1);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static final String REGEX_REG = "^regex\\((.*?)\\)$";
/**
*
* @param mapExpected
* @param mapReceived
* @param mapRules
* @return boolean true si la regle fonctionne
*
*/
public boolean compare(Map<String, String> mapExpected, Map<String, String> mapReceived,
Map<String, String> mapRules) {
for(Map.Entry<String, String> rule: mapRules.entrySet()) {
String key = rule.getKey();
String ruleValue = rule.getValue();
switch(ruleValue) {
case "equals" :
if(!mapExpected.get(key).equals(mapReceived.get(key))) {
return false ;
}
break;
case "présent" :
if(mapReceived.get(key) == null) {
return false ;
}
break;
default:
if(ruleValue.matches(REGEX_REG)) {
if(!isMatching(ruleValue, mapReceived.get(key))) {
return false ;
}
}
}
}
return true ;
}
private boolean isMatching(String ruleValue, String received) {
Pattern pattern = Pattern.compile(REGEX_REG);
Matcher matcher = pattern.matcher(ruleValue);
String regex = "";
while(matcher.find()) {
regex = matcher.group(1);
}
Pattern rulesPattern = Pattern.compile(regex);
Matcher ruleMatcher = rulesPattern.matcher(received);
return ruleMatcher.matches();
}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.parse.handler;
import java.util.HashMap;
import java.util.Map;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
* @author ella
*
*/
public class ArchiveTransferReplyHandler extends DefaultHandler {
private Map<String, String> map = new HashMap<String, String>();
private String currentTag;
//private Stack<String> stack = new Stack<>();
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
currentTag = qName;
map.put(currentTag, "");
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String value = new String(ch, start, length);
super.characters(ch, start, length);
map.put(currentTag, value);
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.tranfer;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.http.HttpResponse;
import java.nio.file.Path;
import java.util.List;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public interface ArchiveService {
public String put(Path path) throws FileNotFoundException, IOException, URISyntaxException, InterruptedException ;
public String checkRequest( String idRequest) throws JsonMappingException, JsonProcessingException, URISyntaxException, IOException, InterruptedException;
public String retreiveResult(String idRequest) throws URISyntaxException, IOException, InterruptedException;
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.tranfer;
import fr.cines.pacit.transfer.impl.VitamArchiveService;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class ArchiveServiceFactory {
public static ArchiveService getInstance() {
// TODO Auto-generated method stub
return new VitamArchiveService();
}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.tranfer;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
/**
* @author ella
*
*/
public interface Transfer {
public void getTestFiles();
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.tranfer;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class TransferFactory {
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.transfer.impl;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class HttpTransferImpl {
private Properties prop;
public String rules;
public Map<String, String> mapZipFile = new HashMap();
private Map<String, String> mapRulesFile = new HashMap();
String url ;
String localPath ;
String fileName = "//vitam-data-test.zip";
String compessedFile = localPath + "vitam-data-test.zip";
public void downloadFile(String url, String localPath) throws IOException
{
URL ulr = new URL(url);
HttpURLConnection connection = (HttpURLConnection) ulr.openConnection();
connection.setRequestProperty("accept", "*/*");
ReadableByteChannel readableFileChannel = Channels.newChannel(connection.getInputStream());
FileOutputStream fos = new FileOutputStream(compessedFile);
fos.getChannel().transferFrom(readableFileChannel, 0, Long.MAX_VALUE);
fos.close();
// Unzip
byte[] buffer = new byte[1024];
ZipInputStream zis = new ZipInputStream(new FileInputStream(compessedFile));
ZipEntry zipEntry = zis.getNextEntry();
while (zipEntry != null) {
File newFile = givePathFile(new File(localPath), zipEntry);
if (zipEntry.isDirectory()) {
if (!newFile.isDirectory() && !newFile.mkdirs()) {
throw new IOException("Failed to create directory " + newFile);
}
} else {
// fix for Windows-created archives
File parent = newFile.getParentFile();
if (!parent.isDirectory() && !parent.mkdirs()) {
throw new IOException("Failed to create directory " + parent);
}
// write file content
FileOutputStream entryOutputStream = new FileOutputStream(newFile);
int len;
while ((len = zis.read(buffer)) > 0) {
entryOutputStream.write(buffer, 0, len);
}
entryOutputStream.close();
}
zipEntry = zis.getNextEntry();
}
zis.closeEntry();
zis.close();
}
public static File givePathFile(File destinationDir, ZipEntry zipEntry) throws IOException {
File destFile = new File(destinationDir, zipEntry.getName());
String destDirPath = destinationDir.getCanonicalPath();
String destFilePath = destFile.getCanonicalPath();
if (!destFilePath.startsWith(destDirPath + File.separator)) {
throw new IOException("Entry is outside of the target dir: " + zipEntry.getName());
}
return destFile;
}
public void deletezip() {
File fileZip = new File(compessedFile) ;
try {
if(fileZip.delete()) {
System.out.println("fichier zip supprim�");
}else {
System.out.println("fichier zip n'a pas �t� supprim�");
}
}catch(Exception e) {
e.printStackTrace();
//System.out.println(e.getMessage());
}
}
public void getTestFiles() {
HttpTransferImpl p = new HttpTransferImpl(url, localPath) ;
try {
p.downloadFile(url, localPath);
p.deletezip();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e);
}
System.out.print("fin telechargement du fichier ..........");
File file = new File(localPath);
listFile(file);
}
public void listFile(File folder) {
for (File currentFile : folder.listFiles()) {
if(currentFile.isDirectory()) {
this.listFile(currentFile);
} else if (currentFile.toString().endsWith("zip"))
{
String fileNameWithoutExtension;
String name = currentFile.getName();
fileNameWithoutExtension = name.replaceFirst("[.][^.]+$", "");
mapZipFile.put(fileNameWithoutExtension,currentFile.getAbsolutePath());
}else if (currentFile.toString().endsWith("xml") && currentFile.getParent().contains("RESULTATS")) {
String fileNameWithoutExtension;
String name = currentFile.getName();
fileNameWithoutExtension = name.replaceFirst("[.][^.]+$", "");
mapRulesFile.put(fileNameWithoutExtension,currentFile.getAbsolutePath());
}
}
}
public HttpTransferImpl(String url, String localPath) {
this.url = url ;
this.localPath = localPath ;
}
public HttpTransferImpl() {
try {
prop = this.loadProperties();
url = prop.getProperty("url");
localPath = prop.getProperty("localPath");
prop.getProperty("localResult");
rules = prop.getProperty("rules");
} catch (IOException e) {
e.printStackTrace();
}
}
public Properties loadProperties() throws IOException {
Properties prop = new Properties() ;
String configFolder =System.getProperty("configFolder");
InputStream is = new FileInputStream(configFolder + File.separator + "config.properties");
prop.load(is);
is.close();
return prop ;
}
public Map<String, String> getMapZipFile() {
return mapZipFile;
}
public void setMapZipFile(Map<String, String> mapZipFile) {
this.mapZipFile = mapZipFile;
}
public Map<String, String> getMapRulesFile() {
return mapRulesFile;
}
public void setMapRulesFile(Map<String, String> mapRulesFile) {
this.mapRulesFile = mapRulesFile;
}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.transfer.impl;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import fr.cines.pacit.parse.ParseXml;
import fr.cines.pacit.tranfer.ArchiveService;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class SubmissionTask implements Runnable{
private ArchiveService archiveService;
private Path path;
private Path pathAtrExpected;
private String atrRuLes= "/pacit/src/main/resources/rules.xml";
Path atrRule = Paths.get(atrRuLes);
private static Map<String, String> mapRules = new HashMap<String, String>();
private static Map<String, String> mapResult = new HashMap<String, String>();
private static Map<String, String> mapExpected = new HashMap<String, String>();
private ParseXml parser = new ParseXml();
public SubmissionTask(Path path, ArchiveService archiveSerice, Path pathAtrExpected) {
this.archiveService = archiveSerice;
this.path = path;
this.pathAtrExpected = pathAtrExpected;
}
@Override
public void run() {
try {
String idRequest = archiveService.put(this.path);
while(!isStatutTerminal(idRequest)) {
Thread.sleep(5000);
}
Thread.sleep(5000);
String result = archiveService.retreiveResult(idRequest);
if (result != null) {
mapResult = parser.buildMap(result);
mapExpected = parser.buildMap(pathAtrExpected);
mapRules= parser.buildMap(atrRule);
ParseXml pacit = new ParseXml();
boolean comparaison = pacit.compare(mapExpected, mapResult, mapRules);
System.out.println(comparaison);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private boolean isStatutTerminal(String idRequest) throws JsonMappingException, JsonProcessingException, URISyntaxException, IOException, InterruptedException {
String status = archiveService.checkRequest(idRequest);
System.out.println("check request status request: " + idRequest+ " Thread "+ Thread.currentThread().getName());
if(status.equals("COMPLETED"))
return true;
else {
return false;
}
}
}
\ No newline at end of file
/**
*
*/
package fr.cines.pacit.transfer.impl;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
/**
* @author ella
*
*/
public class UnzipEntryProcessor implements Processor {
@Override
public void process(Exchange exchange) throws Exception {}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.transfer.impl;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.http.HttpResponse;
import java.nio.file.Path;
import org.apache.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import fr.cines.pacit.tranfer.ArchiveService;
import fr.cines.vitam.proxy.VitamApiProxyRequest;
import fr.cines.vitam.proxy.request.RequesterInfo;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class VitamArchiveService implements ArchiveService {
private static Logger LOGGER = LoggerFactory.getLogger(VitamArchiveService.class);
String IdRequest ;
@Override
public String put(Path path) throws IOException, URISyntaxException, InterruptedException{
RequesterInfo requestInfo = new RequesterInfo();
requestInfo.setContextID("CINES_WORKFLOW");
requestInfo.setContrat_acces("CE-000001");
requestInfo.setTenant_id("0");
System.out.println("Soumission de " + path.toString());
Thread.sleep(500);
InputStream is = new FileInputStream(path.toFile());
HttpResponse<String> ExternalResponse = VitamApiProxyRequest.Ingest().ingestFile(requestInfo, is);
String requestId = ExternalResponse.headers().firstValue("X-Request-Id").get();
if(ExternalResponse.statusCode() == HttpStatus.SC_ACCEPTED) {
LOGGER.info("Ingestion accepted - RequestId {}", requestId);
System.out.println("Ingestion accepted - RequestId " + requestId);
}
return requestId;
}
@Override
public String checkRequest(String idRequest) throws URISyntaxException, IOException, InterruptedException {
RequesterInfo requestInfo = new RequesterInfo();
HttpResponse<String> httpResponse = VitamApiProxyRequest.Admin().getArchiveStatus(requestInfo, idRequest);
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonResponse = mapper.readTree(httpResponse.body());
String status = jsonResponse.get("$results").get(0).get("globalStatus").asText();
String state = jsonResponse.get("$results").get(0).get("globalState").asText();
return state;
}
@Override
public String retreiveResult(String idRequest) {
RequesterInfo requestInfo = new RequesterInfo();
requestInfo.setContextID("CINES_WORKFLOW");
requestInfo.setContrat_acces("CE-000001");
requestInfo.setTenant_id("0");
HttpResponse<String> ingestExternalResponse;
try {
System.out.println("retreive result : " + idRequest);
ingestExternalResponse = VitamApiProxyRequest.Ingest().getATR(requestInfo, idRequest);
int responseCode = ingestExternalResponse.statusCode();
if(responseCode == 200) {
String atr = ingestExternalResponse.body();
return atr ;
}
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.err.println("Erreur : Pas d'ATR");
return null;
}
}
proxy.api.url-admin.external=https://sandbox34.cines.fr:8444/admin-external/v1/
proxy.api.url-access.external=https://sandbox34.cines.fr:8444/access-external/v1/
proxy.api.url-ingest=https://sandbox34.cines.fr:8443/ingest-external/v1/
proxy.api.keyStore-password=azerty
proxy.api.keyStore-path=/src/test/resources/keystore_inserm.p12
proxy.api.trustStore-password=azerty10
proxy.api.trustStore-path=/src/test/resources/truststore_34.jks
proxy.api.contrat-acces=CINES-0
proxy.api.tenant-id=0
proxy.api.disable-hostname-verification=true
\ No newline at end of file
url=https://dci-gitlab.cines.fr/dad/vitam-data-test/-/archive/master/vitam-data-test-master.zip
localPath=C:/Users/ella/Desktop/TestTranfer2
rules=C:/Users/ella/git/pacit/src/main/resources/rules.xml
localResult=C:\\Users\\ella\\Desktop\\TestTranfer2\\vitam-data-test-master\\VITAM_CINES_CONNECTOR\\
configFolder=C:/Users/ella/git/pacit/src/main/resources/
<ArchiveTransferReply xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:ns2="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="fr:gouv:culture:archivesdefrance:seda:v2.1 seda-vitam-2.1-main.xsd">
<Date>regex(^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.*$)</Date>
<MessageIdentifier>présent</MessageIdentifier>
<ArchivalAgreement>equals</ArchivalAgreement>
<CodeListVersions><ReplyCodeListVersion></ReplyCodeListVersion><MessageDigestAlgorithmCodeListVersion></MessageDigestAlgorithmCodeListVersion><FileFormatCodeListVersion></FileFormatCodeListVersion></CodeListVersions>
<DataObjectPackage>
<DataObjectGroup id="equals">
<BinaryDataObject id="equals">
<DataObjectSystemId>présent</DataObjectSystemId>
<DataObjectGroupSystemId>présent</DataObjectGroupSystemId>
<DataObjectVersion>equals</DataObjectVersion>
</BinaryDataObject>
<LogBook>
<Event>
<EventTypeCode>equals</EventTypeCode>
<EventType>equals</EventType>
<EventDateTime>regex(^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.*$)</EventDateTime>
<Outcome>equals</Outcome>
<OutcomeDetail>equals</OutcomeDetail>
<OutcomeDetailMessage>equals</OutcomeDetailMessage>
<DataObjectReferenceId>equals</DataObjectReferenceId>
<EventDetailData>equals</EventDetailData>
</Event>
</LogBook>
</DataObjectGroup>
<DescriptiveMetadata>
<ArchiveUnit id="présent">
<Content>
<SystemId>présent</SystemId>
</Content>
</ArchiveUnit>
</DescriptiveMetadata>
<ManagementMetadata/>
</DataObjectPackage>
<ReplyCode>equals</ReplyCode>
<MessageRequestIdentifier>equals</MessageRequestIdentifier>
<GrantDate>regex(^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.*$)</GrantDate>
<ArchivalAgency>
<Identifier>equals</Identifier>
</ArchivalAgency>
<TransferringAgency>
<Identifier>equals</Identifier>
</TransferringAgency>
</ArchiveTransferReply>
\ No newline at end of file
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit;
import static org.junit.Assert.*;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import fr.cines.pacit.parse.ParseXml;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class PacitTest {
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
}
@Test
public void compareTest() {
Map<String, String> Received = new HashMap<String, String>();
Map<String, String> Excepted = new HashMap<String, String>();
Map<String, String> Rules = new HashMap<String, String>();
Received.put("Date", "2021-12-13T16:22:48.014+01:00");
Received.put("OutcomeDetail", "LFC.FORMAT_VALIDATOR.KO");
Rules.put("Date", "regex(^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.*$)");
Rules.put("OutcomeDetail", "equals()");
Excepted.put("Date", "2021-12-13T16:22:48.014+01:00");
Excepted.put("OutcomeDetail", "LFC.FORMAT_VALIDATOR.KO");
Pacit pacit = new Pacit() ;
ParseXml parser = new ParseXml();
Assert.assertTrue(parser.compare(Excepted, Received, Rules));
Rules.put("badtag", "equals");
Received.put("badtag", "valeur");
Excepted.put("badtag", "valeur2");
Assert.assertFalse(parser.compare(Excepted, Received, Rules));
}
}
/*
Copyright CINES, 2021
Ce logiciel est régi par la licence CeCILL-C soumise au
droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-C
telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En
contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard
l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation,
à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
donc à des développeurs et des professionnels avertis possédant des connaissances informatiques
approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à
leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de
leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris
connaissance de la licence CeCILL-C, et que vous en avez accepté les termes.
*/
package fr.cines.pacit.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import fr.cines.pacit.parse.ParseXml;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class PacitRegexTests {
@Test
public void testRegexRegSimple() {
Pattern pattern = Pattern.compile(ParseXml.REGEX_REG);
Matcher matcher = pattern.matcher("regex([0-9]*s)");
Assert.assertTrue("la regex ne match pas le motif " + ParseXml.REGEX_REG, matcher.find());
Assert.assertEquals(matcher.groupCount(),1);
Assert.assertEquals(matcher.group(1),"[0-9]*s");
}
@Test
public void testRegexRegDate() {
Pattern pattern = Pattern.compile(ParseXml.REGEX_REG);
Matcher matcher = pattern.matcher("regex([1-9][0-9]{3}-.+T[^.]+(Z|[+-].+))");
Assert.assertTrue("la regex ne match pas le motif " + ParseXml.REGEX_REG, matcher.find());
Assert.assertEquals(matcher.groupCount(),1);
Assert.assertEquals(matcher.group(1),"[1-9][0-9]{3}-.+T[^.]+(Z|[+-].+)");
}
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ArchiveTransferReply
xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1"
xmlns:ns2="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="fr:gouv:culture:archivesdefrance:seda:v2.1 seda-vitam-2.1-main.xsd">
<Date>2021-12-13T16:22:48.014+01:00</Date>
<MessageIdentifier>aeeaaaaaacfbmai3aau2ial5wrqrm7aaaaaq</MessageIdentifier>
<ArchivalAgreement>CE-000001</ArchivalAgreement>
<CodeListVersions>
<ReplyCodeListVersion></ReplyCodeListVersion>
<MessageDigestAlgorithmCodeListVersion></MessageDigestAlgorithmCodeListVersion>
<FileFormatCodeListVersion></FileFormatCodeListVersion>
</CodeListVersions>
<DataObjectPackage>
<DataObjectGroup id="OID1">
<BinaryDataObject id="IDOBJECT1">
<DataObjectSystemId>aeaaaaaaaafbmai3aduf2al5wrqsg7iaaaaq</DataObjectSystemId>
<DataObjectGroupSystemId>aebaaaaaaafbmai3aduf2al5wrqshaiaaaaq</DataObjectGroupSystemId>
<DataObjectVersion>BinaryMaster_1</DataObjectVersion>
</BinaryDataObject>
<LogBook>
<Event>
<EventTypeCode>LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN</EventTypeCode>
<EventType>!LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN!</EventType>
<EventDateTime>2021-12-13T15:22:46.703</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN.KO</OutcomeDetail>
<OutcomeDetailMessage>!LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN.KO!</OutcomeDetailMessage>
<DataObjectReferenceId>IDOBJECT1</DataObjectReferenceId>
</Event>
<Event>
<EventTypeCode>LFC.FORMAT_VALIDATOR</EventTypeCode>
<EventType>!LFC.FORMAT_VALIDATOR!</EventType>
<EventDateTime>2021-12-13T15:22:46.703</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>LFC.FORMAT_VALIDATOR.KO</OutcomeDetail>
<OutcomeDetailMessage>!LFC.FORMAT_VALIDATOR.KO!</OutcomeDetailMessage>
<EventDetailData>{"evDetTechData":null}</EventDetailData>
</Event>
</LogBook>
</DataObjectGroup>
<DataObjectGroup id="OID2">
<BinaryDataObject id="IDOBJECT2">
<DataObjectSystemId>aeaaaaaaaafbmai3aduf2al5wrqshbiaaaaq</DataObjectSystemId>
<DataObjectGroupSystemId>aebaaaaaaafbmai3aduf2al5wrqshbyaaaaq</DataObjectGroupSystemId>
<DataObjectVersion>BinaryMaster_1</DataObjectVersion>
</BinaryDataObject>
<LogBook />
</DataObjectGroup>
<DescriptiveMetadata>
<ArchiveUnit id="ID2">
<Management />
<Content>
<SystemId>aeaqaaaaaafbmai3aduf2al5wrqshxaaaaaq</SystemId>
</Content>
</ArchiveUnit>
<ArchiveUnit id="ID1">
<Management />
<Content>
<SystemId>aeaqaaaaaafbmai3aduf2al5wrqsheyaaaaq</SystemId>
</Content>
</ArchiveUnit>
<ArchiveUnit id="ID3">
<Management />
<Content>
<SystemId>aeaqaaaaaafbmai3aduf2al5wrqshxqaaaba</SystemId>
</Content>
</ArchiveUnit>
</DescriptiveMetadata>
<ManagementMetadata />
</DataObjectPackage>
<ReplyCode>KO</ReplyCode>
<Operation>
<Event>
<EventTypeCode>STP_OG_CHECK_AND_TRANSFORME</EventTypeCode>
<EventType>Processus de vérification et traitements des objets et des
groupes d'objets</EventType>
<EventDateTime>2021-12-13T15:22:46.720</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>STP_OG_CHECK_AND_TRANSFORME.KO</OutcomeDetail>
<OutcomeDetailMessage>Échec du processus de vérification et de
traitement des objets et des groupes d'objets</OutcomeDetailMessage>
</Event>
<Event>
<EventTypeCode>FORMAT_VALIDATOR</EventTypeCode>
<EventType>!FORMAT_VALIDATOR!</EventType>
<EventDateTime>2021-12-13T15:22:46.720</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>FORMAT_VALIDATOR.KO</OutcomeDetail>
<OutcomeDetailMessage>!FORMAT_VALIDATOR.KO! Detail= OK:1 KO:1</OutcomeDetailMessage>
<EventDetailData>{"evDetTechData":null}</EventDetailData>
</Event>
</Operation>
<MessageRequestIdentifier>XML_UTF-8</MessageRequestIdentifier>
<GrantDate>2021-12-13T16:22:48.029+01:00</GrantDate>
<ArchivalAgency>
<Identifier>SA-000001</Identifier>
</ArchivalAgency>
<TransferringAgency>
<Identifier>SA-000001</Identifier>
</TransferringAgency>
</ArchiveTransferReply>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<ArchiveTransferReply
xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1"
xmlns:ns2="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="fr:gouv:culture:archivesdefrance:seda:v2.1 seda-vitam-2.1-main.xsd">
<Date>2021-12-13T16:22:48.014+01:00</Date>
<MessageIdentifier>aeeaaaaaacfbmai3aau2ial5wrqrm7aaaaaq</MessageIdentifier>
<ArchivalAgreement>CE-000001</ArchivalAgreement>
<CodeListVersions>
<ReplyCodeListVersion></ReplyCodeListVersion>
<MessageDigestAlgorithmCodeListVersion></MessageDigestAlgorithmCodeListVersion>
<FileFormatCodeListVersion></FileFormatCodeListVersion>
</CodeListVersions>
<DataObjectPackage>
<DataObjectGroup id="OID1">
<BinaryDataObject id="IDOBJECT1">
<DataObjectSystemId>aeaaaaaaaafbmai3aduf2al5wrqsg7iaaaaq</DataObjectSystemId>
<DataObjectGroupSystemId>aebaaaaaaafbmai3aduf2al5wrqshaiaaaaq</DataObjectGroupSystemId>
<DataObjectVersion>BinaryMaster_1</DataObjectVersion>
</BinaryDataObject>
<LogBook>
<Event>
<EventTypeCode>LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN</EventTypeCode>
<EventType>!LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN!</EventType>
<EventDateTime>2021-12-13T15:22:46.703</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN.KO</OutcomeDetail>
<OutcomeDetailMessage>!LFC.FORMAT_VALIDATOR.FORMAT_VALIDATOR_PLUGIN.KO!</OutcomeDetailMessage>
<DataObjectReferenceId>IDOBJECT1</DataObjectReferenceId>
</Event>
<Event>
<EventTypeCode>LFC.FORMAT_VALIDATOR</EventTypeCode>
<EventType>!LFC.FORMAT_VALIDATOR!</EventType>
<EventDateTime>2021-12-13T15:22:46.703</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>LFC.FORMAT_VALIDATOR.KO</OutcomeDetail>
<OutcomeDetailMessage>!LFC.FORMAT_VALIDATOR.KO!</OutcomeDetailMessage>
<EventDetailData>{"evDetTechData":null}</EventDetailData>
</Event>
</LogBook>
</DataObjectGroup>
<DataObjectGroup id="OID2">
<BinaryDataObject id="IDOBJECT2">
<DataObjectSystemId>aeaaaaaaaafbmai3aduf2al5wrqshbiaaaaq</DataObjectSystemId>
<DataObjectGroupSystemId>aebaaaaaaafbmai3aduf2al5wrqshbyaaaaq</DataObjectGroupSystemId>
<DataObjectVersion>BinaryMaster_1</DataObjectVersion>
</BinaryDataObject>
<LogBook />
</DataObjectGroup>
<DescriptiveMetadata>
<ArchiveUnit id="ID2">
<Management />
<Content>
<SystemId>aeaqaaaaaafbmai3aduf2al5wrqshxaaaaaq</SystemId>
</Content>
</ArchiveUnit>
<ArchiveUnit id="ID1">
<Management />
<Content>
<SystemId>aeaqaaaaaafbmai3aduf2al5wrqsheyaaaaq</SystemId>
</Content>
</ArchiveUnit>
<ArchiveUnit id="ID3">
<Management />
<Content>
<SystemId>aeaqaaaaaafbmai3aduf2al5wrqshxqaaaba</SystemId>
</Content>
</ArchiveUnit>
</DescriptiveMetadata>
<ManagementMetadata />
</DataObjectPackage>
<ReplyCode>KO</ReplyCode>
<Operation>
<Event>
<EventTypeCode>STP_OG_CHECK_AND_TRANSFORME</EventTypeCode>
<EventType>Processus de vérification et traitements des objets et des
groupes d'objets</EventType>
<EventDateTime>2021-12-13T15:22:46.720</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>STP_OG_CHECK_AND_TRANSFORME.KO</OutcomeDetail>
<OutcomeDetailMessage>Échec du processus de vérification et de
traitement des objets et des groupes d'objets</OutcomeDetailMessage>
</Event>
<Event>
<EventTypeCode>FORMAT_VALIDATOR</EventTypeCode>
<EventType>!FORMAT_VALIDATOR!</EventType>
<EventDateTime>2021-12-13T15:22:46.720</EventDateTime>
<Outcome>KO</Outcome>
<OutcomeDetail>FORMAT_VALIDATOR.KO</OutcomeDetail>
<OutcomeDetailMessage>!FORMAT_VALIDATOR.KO! Detail= OK:1 KO:1</OutcomeDetailMessage>
<EventDetailData>{"evDetTechData":null}</EventDetailData>
</Event>
</Operation>
<MessageRequestIdentifier>XML_UTF-8</MessageRequestIdentifier>
<GrantDate>2021-12-13T16:22:48.029+01:00</GrantDate>
<ArchivalAgency>
<Identifier>SA-000001</Identifier>
</ArchivalAgency>
<TransferringAgency>
<Identifier>SA-000001</Identifier>
</TransferringAgency>
</ArchiveTransferReply>
\ No newline at end of file
File added
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