Skip to content
Snippets Groups Projects
Commit 7a8f5408 authored by ella's avatar ella
Browse files

debut des thread et de la partie soumission des jeu de test a vitam

parent 8528ea4f
No related branches found
No related tags found
No related merge requests found
Pipeline #6448 passed with stages
in 1 minute and 3 seconds
......@@ -27,9 +27,12 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Path;
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;
......@@ -37,14 +40,15 @@ import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.junit.Assert;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
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;
......@@ -77,13 +81,29 @@ public class Pacit {
pacit.compare(mapExpected, mapReceived, mapRules);
Transfer transfer = new TransferImpl();
transfer.getTestFiles();
List<Path> paths = transfer.getTestFiles();
ArchiveService archiveService = ArchiveServiceFactory.getInstance();
List<SubmissionTask> submissionList = new ArrayList<SubmissionTask>();
for (Path archivePath : paths) {
SubmissionTask task = new SubmissionTask(archivePath, archiveService);
submissionList.add(task);
}
ExecutorService executor = Executors.newFixedThreadPool(10);
for(SubmissionTask s : submissionList){
executor.execute(s);
}
executor.shutdown();
}
public static final String REGEX_REG = "^regex\\((.*?)\\)$";
/**
*
* @param mapExpected
......@@ -118,15 +138,21 @@ public class Pacit {
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();
}
ArchiveService archiveFile = new VitamArchiveService();
archiveFile.put(path);
}
}
......
......@@ -21,6 +21,8 @@
package fr.cines.pacit.tranfer;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Path;
import java.util.List;
......@@ -30,7 +32,7 @@ import java.util.List;
*/
public interface ArchiveService {
public void put(Path path) ;
public void put(Path path) throws FileNotFoundException, IOException, URISyntaxException, InterruptedException ;
public void checkRequest( String idRequest);
......
......@@ -20,10 +20,17 @@
*/
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, 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.transfer.impl;
import java.io.FileNotFoundException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import fr.cines.pacit.Pacit;
import fr.cines.pacit.tranfer.ArchiveService;
/**
* @author Raphael Ella <ella@cines.fr>
*
*/
public class SubmissionTask implements Runnable{
private ArchiveService archiveService;
private Path path;
public SubmissionTask(Path path, ArchiveService archiveSerice) {
this.archiveService = archiveSerice;
this.path = path;
}
@Override
public void run() {
try {
archiveService.put(this.path);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package fr.cines.pacit.transfer.impl;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.dataformat.zipfile.ZipSplitter;
import fr.cines.pacit.tranfer.Transfer;
public class TransferCamelImpl extends RouteBuilder {
......@@ -21,18 +14,13 @@ public class TransferCamelImpl extends RouteBuilder {
public void configure() throws IOException {
Transfer trans = new TransferImpl();
from("timer:testTimer?repeatCount=1")
from("direct:start")
.to(url)
// on dezippe le fichier
.split(new ZipSplitter()).streaming()
.process(new UnzipEntryProcessor())
.to(localPath)
.end();
System.out.print("telechargement du fichier ..........");
.to(localPath).end();
}
public TransferCamelImpl(String url, String localPath) {
......
......@@ -22,7 +22,6 @@ package fr.cines.pacit.transfer.impl;
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;
......@@ -55,16 +54,14 @@ public class TransferImpl implements Transfer{
main.configure().addRoutesBuilder(new TransferCamelImpl(url,localPath));
try {
main.run();
System.out.print("fin telechargement du fichier ..........");
} catch (Exception e) {
e.printStackTrace();
}
return null;
return listFile(new File(localPath));
}
public List<Path> listFile(File entry) {
......
......@@ -22,10 +22,13 @@ package fr.cines.pacit.transfer.impl;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.http.HttpResponse;
import java.nio.file.Path;
import java.util.List;
import java.util.Timer;
import org.apache.http.HttpStatus;
......@@ -40,16 +43,17 @@ import fr.cines.vitam.proxy.request.RequesterInfo;
public class VitamArchiveService implements ArchiveService {
@Override
public void put(Path path) {
public void put(Path path) throws IOException, URISyntaxException, InterruptedException{
RequesterInfo requestInfo = new RequesterInfo();
InputStream is = new FileInputStream(path.toFile());
HttpResponse<String> ExternalResponse = VitamApiProxyRequest.Ingest().ingestFile(requestInfo, os);
if(ExternalResponse.statusCode() == HttpStatus.SC_ACCEPTED) {
}
System.out.println("Soumission de " + path.toString());
Thread.sleep(500);
// InputStream is = new FileInputStream(path.toFile());
// HttpResponse<String> ExternalResponse = VitamApiProxyRequest.Ingest().ingestFile(requestInfo, is);
// if(ExternalResponse.statusCode() == HttpStatus.SC_ACCEPTED) {
//
// //String requestId = ExternalResponse.headers().firstValue(CinesVitamConnectorConfiguration.X_REQUEST_ID).get();
// //LOGGER.info("Ingestion accepted - RequestId {}", requestId);
// }
}
@Override
......@@ -63,11 +67,4 @@ public class VitamArchiveService implements ArchiveService {
// TODO Auto-generated method stub
return null;
}
}
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