Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PACIT
Manage
Activity
Members
Labels
Plan
Issues
6
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
dad
PACIT
Commits
99176dd9
Commit
99176dd9
authored
3 years ago
by
ella
Browse files
Options
Downloads
Patches
Plain Diff
Update Pacit.java
parent
0b56bb36
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/main/java/fr/cines/pacit/Pacit.java
+107
-197
107 additions, 197 deletions
src/main/java/fr/cines/pacit/Pacit.java
with
107 additions
and
197 deletions
src/main/java/fr/cines/pacit/Pacit.java
+
107
−
197
View file @
99176dd9
/*
* 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
();
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment