Skip to content
Snippets Groups Projects
Commit 99176dd9 authored by ella's avatar ella
Browse files

Update Pacit.java

parent 0b56bb36
No related branches found
No related tags found
No related merge requests found
/*
* Copyright CINES, 2022
* 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.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
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 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.parse.ParseXml;
import fr.cines.pacit.parse.handler.ArchiveTransferReplyHandler;
import fr.cines.pacit.tranfer.ArchiveService;
import fr.cines.pacit.tranfer.ArchiveServiceFactory;
import fr.cines.pacit.tranfer.Transfer;
import fr.cines.pacit.transfer.impl.SubmissionTask;
import fr.cines.pacit.transfer.impl.TransferImpl;
import fr.cines.pacit.transfer.impl.VitamArchiveService;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class Pacit {
/**
* @param args
* @throws SAXException
* @throws ParserConfigurationException
*/
private static String ARTreceived= "src/test/resources/fr/cines/pacit/ATR-received.xml";
private static String ARTexpected= "src/test/resources/fr/cines/pacit/ATR-expected.xml";
private static String ARTrules= "src/main/resources/ATR-rules.xml";
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 {
TransferImpl transfer = new TransferImpl();
transfer.getTestFiles();
mapZipFile = transfer.getMapZipFile() ;
mapRulesFiles = transfer.getMapRulesFile();
for(Map.Entry mapentry : mapRulesFiles.entrySet())
{
System.out.println("clé: "+mapentry.getKey()
+ " | valeur: " + mapentry.getValue());
}
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 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 ;
}
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();
}
}
}
private boolean isMatching(String ruleValue, String received) {
Pattern pattern = Pattern.compile(Pacit.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();
}
public Pacit() {
}
}
\ No newline at end of file
/*
* Copyright CINES, 2022
* 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();
}
}
}
}
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