Commit 4c930410 authored by Raphaël's avatar Raphaël

Merge branch 'master' of https://gitlab.utc.fr/crozatst/hdoc

parents 6b246c0d 3b410e48
# Convertisseur Canoprof vers HDOC
##Credits
### Autumn 2016
* NEVEUX Anaïs
* BELLIER Pierre-Ulysse
## User story
Un utilisateur a créé un cours de mathématiques à l'aide de l'outil Canoprof. Il souhaite, pour une raison quelconque, convertir son projet (et donc ses activités et programmations) dans un autre format. Pour cela il utilise notre convertisseur qui permet préalablement une conversion vers un format intermédiare (hdoc). Il fait donc un clic droit sur l'élément principal de son projet sous Canoprof et clique sur "exporter l'archive". Il laisse les options (Inclure le réseau descendant complet des items sélectionnés, et Préserver les espaces de l'atelier) par défaut. Il déplace ensuite le fichier .scar obtenu dans le dossier input du convertisseur puis exécute le fichier run.bat (ou run.sh sous un système UNIX). Une fois l'exécution terminée, il récupère son hdoc dans le dossier output.
......@@ -16,4 +24,15 @@ Un utilisateur a cr
- Information/Warning/Advice/ect...
- Method and Remind fully functional.
- Add QCU and QCM. Transclusion of them available too. Need to fix a schema validation error when putting a title to a question, without filling the question content.
-Add "Exercice redactionnel" and transclusion.
\ No newline at end of file
- Add "Exercice redactionnel" and transclusion.
## Known bugs
- You can have an exercice with no question but a solution. We should add a if statement to handle this.
- Something create a "keywrds" node inside the opale output, that make the schema invalid. Editing the title inside myScenari and just pressing enter is sufficient to fix that. But it will be better to fix that inside one of the xsl files.
## TODO List
- Allow user to convert scar files which contain a .programme file with a name different than "Test.programme".
- Handle multiple files conversion
- Add all other type of exercices
- Handle other kind of paragraph
- Handle resources (images for example)
\ No newline at end of file
......@@ -343,7 +343,7 @@
</header>
<section>
<header><h1/></header>
<xsl:if test="sp:question/cp:flow/*">
<xsl:if test="sp:question/cp:flow/*[name() != 'sp:profInstruction']">
<div data-hdoc-type='openQuestion'>
<xsl:apply-templates select="sp:question/cp:flow/sp:txt/cp:txt//sc:para"/>
</div>
......@@ -394,7 +394,7 @@
<h1><xsl:value-of select="cp:questionM/sp:title"/></h1>
</header>
<div data-hdoc-type = 'question'>
<xsl:apply-templates select='sc:question/cp:block'/>
<xsl:apply-templates select='sc:question/cp:block/sp:body'/>
</div>
<xsl:apply-templates select="sc:choices/sc:choice"/>
<xsl:if test="$withoutExplanation = 'sp:question' and sc:globalExplanation/cp:block/sp:body/cp:flow/sp:txt">
......@@ -411,7 +411,7 @@
<h1><xsl:value-of select="cp:questionM/sp:title"/></h1>
</header>
<div data-hdoc-type = 'question'>
<xsl:apply-templates select='sc:question/cp:block'/>
<xsl:apply-templates select='sc:question/cp:block/sp:body'/>
</div>
<xsl:apply-templates select="sc:choices/sc:choice"/>
<xsl:if test="../name() = 'sp:question' and sc:globalExplanation/cp:block/sp:body/cp:flow/sp:txt">
......@@ -429,7 +429,7 @@
<h1><xsl:value-of select="cp:questionM/sp:title"/></h1>
</header>
<div data-hdoc-type='singlechoicequestion'>
<xsl:apply-templates select="sc:question/cp:block"/>
<xsl:apply-templates select="sc:question/cp:block/sp:body"/>
</div>
<xsl:apply-templates select="sc:choices//sc:choice"/>
<div data-hdoc-type='solution'><p><xsl:value-of select="sc:solution/@choice"/></p></div>
......@@ -448,7 +448,7 @@
<h1><xsl:value-of select="cp:questionM/sp:title"/></h1>
</header>
<div data-hdoc-type='singlechoicequestion'>
<xsl:apply-templates select="sc:question/cp:block"/>
<xsl:apply-templates select="sc:question/cp:block/sp:body"/>
</div>
<xsl:apply-templates select="sc:choices//sc:choice"/>
<div data-hdoc-type='solution'><p><xsl:value-of select="sc:solution/@choice"/></p></div>
......@@ -464,12 +464,13 @@
<xsl:template match="sc:choice">
<div data-hdoc-type='choice'>
<xsl:apply-templates select="sc:choiceLabel/cp:txt/sc:para"/>
<xsl:if test="sc:choiceExplanation">
<div data-hdoc-type='explanation-choice-correct'>
<xsl:apply-templates select="sc:choiceExplanation/cp:txt/sc:para"/>
</div>
</xsl:if>
</div>
<xsl:if test="sc:choiceExplanation">
<div data-hdoc-type='explanation-choice-correct'>
<xsl:apply-templates select="sc:choiceExplanation/cp:txt/sc:para"/>
</div>
</xsl:if>
</xsl:template>
......@@ -478,19 +479,25 @@
<xsl:when test="@solution = 'checked'">
<div data-hdoc-type='choice-correct'>
<xsl:apply-templates select="sc:choiceLabel/cp:txt/sc:para"/>
<xsl:if test="sc:choiceExplanation">
<div data-hdoc-type='explanation-choice-correct'>
<xsl:apply-templates select="sc:choiceExplanation/cp:txt/sc:para"/>
</div>
</xsl:if>
</div>
</xsl:when>
<xsl:otherwise>
<div data-hdoc-type='choice-incorrect'>
<xsl:apply-templates select="sc:choiceLabel/cp:txt/sc:para"/>
<xsl:if test="sc:choiceExplanation">
<div data-hdoc-type='explanation-choice-incorrect'>
<xsl:apply-templates select="sc:choiceExplanation/cp:txt/sc:para"/>
</div>
</xsl:if>
</div>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="sc:choiceExplanation">
<div data-hdoc-type='explanation-choice-correct'>
<xsl:apply-templates select="sc:choiceExplanation/cp:txt/sc:para"/>
</div>
</xsl:if>
</xsl:template>
<xsl:template match="sp:question[@sc:refUri] | sp:exercice[@sc:refUri]">
......
# Canoprof2Opale
##Credits
### Autumn 2016
* NEVEUX Anaïs
* BELLIER Pierre-Ulysse
## User story
Un utilisateur a créé un cours de mathématiques à l'aide de l'outil Canoprof. Il souhaite, pour une raison quelconque, convertir son projet (et donc ses activités et programmations) au format Opale. Pour cela il utilise notre convertisseur qui va agir en deux étapes : une conversion dans un format intermédiaire (le format hdoc), puis conversion de ce hdoc dans le format Opale. Une fois son cours créé, il effectue un clic-droit sur l'élément racine de son projet, et choisit "exporter l'archive". Il laisse les options (Inclure le réseau descendant complet des items sélectionnés, et Préserver les espaces de l'atelier) par défaut. Il déplace ensuite le fichier .scar obtenu dans le dossier input du convertisseur puis exécute le fichier run.bat (ou run.sh sous un système UNIX). Il récupère ensuite un nouveau fichier .scar dans le dossier output, qu'il pourra importer dans Scenari.
## Getting started
- Put the Canoprof .scar in the input folder. The scar should be the only one in this folder. The .programme should be into the root of your .scar and should be named Test.programme
An .scar example is already in the input folder.
A .scar example is already in the input folder.
- Check if there's no .scar file in the input folder of canoprof_to_hdoc folder. If files exist, please remove them. Otherwise, the converter can take one of the .scar in this folder instead of the one you want to convert.
- Use the run.bat file to launch conversion.
- You will find your converted .scar in the output folder.
......@@ -14,10 +22,19 @@ An .scar example is already in the input folder.
## What the converter handle
- Sequence
- Session
- Activity created in the .programme, transclusion should be available soon.
- Activity created in the .programme, transclusion available.
- Information/Warning/Advice/ect...
- Method and Remind fully functional
- QCM and QCU working, even with transclusion.
- Add "Exercice redactionnel" and transclusion.
## Known bugs
- You can have an exercice with no question but a solution. We should add a if statement to handle this.
- Something create a "keywrds" node inside the opale output, that make the schema invalid. Editing the title inside myScenari and just pressing enter is sufficient to fix that. But it will be better to fix that inside one of the xsl files.
## TODO List
- Allow user to convert scar files which contain a .programme file with a name different than "Test.programme".
- Handle multiple files conversion
- Add all other type of exercices
- Handle other kind of paragraph
- Handle resources (images for example)
......@@ -42,7 +42,11 @@ Step by step :
Follow the instructions in the script, and then execute it.
[Step 3 : Make XQuery request]
- In the Text Editor of BaseX, you can open and execute xquery scripts in folder [`basex/xquery`](https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex/basex/xquery).
- Available scripts :
* searchDocByAuthor.hq
* searchDocByTitle.hq
\ No newline at end of file
- In the Text Editor of BaseX, you can open and execute xquery script "main.xq" in folder [`basex/xquery`](https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex/basex/xquery).
It's in this main module that we call predefined functions and execute script
- .xqm files are library modules where we have defined functions, we can go to these files for more detailed using instructions
Available library modules :
* searchDocByAuthor.xqm
* searchDocByTitle.xqm
* searchDocByTitle.xqm
\ No newline at end of file
(: this script with .xq as suffix is the main module :)
(: all functions defined in .xqm files (library modules) can be called here :)
import module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex" at "searchSectionByTitle.xqm", "searchSectionByTitle.xqm", "searchDocByAuthor.xqm";
(: myNs:searchDocByTitle('^NF29_HdocEtherpad$', //document ):)
(: myNs:searchSectionByTitle('contenu', //document) :)
(: myNs:searchDocByAuthor('montangé', //document) :)
myNs:searchSectionByTitle('xml', myNs:searchDocByAuthor('montangé', //document))
\ No newline at end of file
......@@ -4,7 +4,9 @@
(: For example, $name := 'Montangé', to search for documents whose author named Coutant:)
(: Remark : case and accents in author's name have been taken care of :)
declare function local:searchDocByAuthor($name as xs:string, $docs as node()*) as node()*
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchDocByAuthor($name as xs:string, $docs as node()*) as node()*
{
let $name_noAcc := translate($name, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
for $doc in $docs
......@@ -15,7 +17,4 @@ declare function local:searchDocByAuthor($name as xs:string, $docs as node()*) a
where matches($author_noAcc, $name_noAcc)
group by $titre (: Avoid duplications of documents by their titre:)
return $doc
};
(: Example :)
local:searchDocByAuthor('Montangé', //document)
\ No newline at end of file
};
\ No newline at end of file
......@@ -3,12 +3,11 @@
(: For example, $name := '^NF29_HdocEtherpad$', to search for an exact name:)
(: For example, $name := 'NF29', to search for documents whose name contains 'NF29':)
declare function local:searchDocByTitle($name as xs:string, $docs as node()*) as node()*
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchDocByTitle($name as xs:string, $docs as node()*) as node()*
{
for $doc in $docs
where matches($doc/titre, $name, "i")
return $doc
};
(: Example :)
local:searchDocByTitle('^NF29_HdocEtherpad$', //document)
\ No newline at end of file
};
\ No newline at end of file
......@@ -4,7 +4,9 @@
(: For example, $keyword := 'Syntax', to search for sections whose titles containing "Syntax" :)
(: Remark : case and accents in the keyword have been taken care of :)
declare function local:searchSectionByTitle($keyword as xs:string, $docs as node()*) as node()*
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchSectionByTitle($keyword as xs:string, $docs as node()*) as node()*
{
let $keyword_noAcc := translate($keyword, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
for $doc in $docs
......@@ -13,7 +15,4 @@ declare function local:searchSectionByTitle($keyword as xs:string, $docs as node
let $title_noAcc := translate($section/titresection, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
where matches($title_noAcc, $keyword_noAcc)
return $section
};
(: Example :)
local:searchSectionByTitle('contenu', //document)
\ No newline at end of file
};
\ No newline at end of file
<project name="hdoc_to_elasticsearch" default="clean">
<!-- Use contribant -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="lib/ant-contrib-0.3.jar"/>
</classpath>
</taskdef>
<property file="build.properties"/>
<target name="unzipSource">
<target name="jsonFiles">
<echo message="Conversion begin" />
<path id="hdocDirPath">
<fileset dir="${inputPath}" id="hdocFile">
<include name="*.hdoc"/>
</fileset>
</path>
<property name="hdocFile" refId="hdocDirPath"/>
<basename property="hdocFileName" file="${hdocFile}" suffix=".hdoc"/>
<echo>Entry file : ${hdocFileName}</echo>
<echo>Entry file : ${fileToParse}</echo>
<!-- create subdirectory for each file -->
<mkdir dir="${tmpHdoc}/${hdocFileName}"/>
<!--unzips the hdoc to be converted into the previously created directory-->
<unzip dest="${tmpHdoc}/${hdocFileName}">
<fileset dir="${inputPath}" id="hdocFile">
<include name="${hdocFileName}.hdoc"/>
<mkdir dir="${tmpHdoc}" />
<basename property="fileToParseName" file="${inputPath}/${fileToParse}" suffix=".hdoc" />
<mkdir dir="${tmpHdoc}/${fileToParseName}"/>
<!--unzips the hdoc to be converted into the previously created directory -->
<unzip dest="${tmpHdoc}/${fileToParseName}">
<fileset dir="${inputPath}">
<include name="${fileToParseName}.hdoc"/>
</fileset>
</unzip>
</target>
<target name="jsonFiles" depends="unzipSource">
<echo message="JSON File creation" />
<xslt in="${tmpHdoc}/${hdocFileName}/content.xml" out="${outputPath}/${hdocFileName}.json" style="xsl/content_extractor.xsl"/>
<xslt in="${tmpHdoc}/${fileToParseName}/content.xml" out="${outputPath}/${fileToParseName}.json" style="xsl/content_extractor.xsl"/>
</target>
<!-- Parcours la liste des fichiers pour les transformer -->
<target name="targetAllFiles">
<delete>
<fileset dir="${outputPath}">
<include name="*.json"/>
</fileset>
</delete>
<foreach target="jsonFiles" param="fileToParse">
<fileset dir="${inputPath}">
<include name="*.hdoc"/>
</fileset>
</foreach>
</target>
<!-- Clear tmp files -->
<target name="clean" depends="jsonFiles">
<target name="clean" depends="targetAllFiles">
<echo message="Clean files" />
<!-- -->
<delete includeemptydirs="true" verbose="true">
......
......@@ -758,7 +758,7 @@
<xsl:template match="h:div[@data-hdoc-type = 'choice-correct']">
<sc:choice solution="checked">
<xsl:call-template name="choice" />
<sc:choiceExplanation>
<sc:choiceExplanation>
<op:txt>
<sc:para>
<xsl:apply-templates select="./h:div[@data-hdoc-type = 'explanation-choice-correct']/h:p/text()"/>
......@@ -784,6 +784,15 @@
<xsl:template match="./h:div[@data-hdoc-type = 'choice']">
<sc:choice>
<xsl:call-template name="choice" />
<xsl:if test="h:div[@data-hdoc-type = 'explanation-choice-correct']">
<sc:choiceExplanation>
<op:txt>
<sc:para>
<xsl:apply-templates select="./h:div[@data-hdoc-type = 'explanation-choice-correct']/h:p/text()"/>
</sc:para>
</op:txt>
</sc:choiceExplanation>
</xsl:if>
</sc:choice>
</xsl:template>
......
Liste des fonctions du convertisseur wikipedia_to_canoprof
Une activité est composée de :
- Entete :
titre
Durée => Ne peut pas être renseignée à partir de wiki
organisation => Faisable
résumé => Concrètement le 1e paragraphe du wiki
Compétences du socle/ Notions et compétences/ métadonnées d'indexation => Correspond à quoi concrétement ?
- (Section | element)*
Les éléments sont :
*Information
*Attention
*Complément
*Conseil
*Définition
*Exemple
*Hypothèse
*Méthode
*Rappel
*Question avec corrigé masqué ou non
=> Pas forcément utile dans le cas où les articles wikipédia ne comportent pas de QCM
Les sections sont composées : section(titre,element*)
*titre
*element
Chaque element est decoupé en : element(titre?,contenu)
Contenu est de la forme :
1.Texte multimédia (paragraphe)*
paragraphe :
possibilité de mise en page
<important/>
<italique/>
Citation (paragraphe)
Indice
Exposant
Liens Web (url,titre,description) -> Utilité de description ?
Lien vers activité = sc:uLink role="activity"
Lien vers média = sc:uLink role="media"
Illustration = <sc:extBlock role="illustration" sc:refUri="/texte.activite"/>
Inline image
Liste = puce ou ordonné
Tableau => A priori pas utile, parce qu'avec Wikipédia, ca sera texte + url + image c'est tout
Les tableaux seront sous forme d'image
2.Texte vis-à-vis = pas utile pour la transfo
3.Zone de saisie élève , consigne élève, remarque professeur => pas utiles non plus
Mise en relation hdoc // Canoprof
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="opale_to_canoprof" default="main">
<property file="opale_to_canoprof.properties"/>
<!-- Check the OS family -->
<condition property="is_windows">
<os family="windows"/>
</condition>
<condition property="is_unix">
<os family="unix"/>
</condition>
<target name="main">
<delete dir="${out}" failonerror="false"/>
<mkdir dir="output"/>
<antcall target="to_hdoc_unix"/>
<antcall target="to_hdoc_windows"/>
<antcall target="to_canoprof_windows"/>
<antcall target="to_canoprof_unix"/>
<antcall target="to_canoprof_end"/>
</target>
<!-- Targets if windows -->
<!-- Conversion opale to hdoc -->
<!-- 1. delete the opale_to_hdoc input file -->
<!-- 2. copy the local input file to opale_to_hdoc -->
<!-- 3. run the opale_to_hdoc conversion -->
<target name="to_hdoc_windows" if="${is_windows}">
<delete>
<fileset dir="${opa_in}">
<include name="*.scar"/>
</fileset>
</delete>
<copy todir="${opa_in}">
<fileset dir="${in}">
<include name="*.scar"/>
</fileset>
</copy>
<exec dir="../opale_to_hdoc" executable="../opale_to_hdoc/run.bat"/>
</target>
<!-- Conversion hdoc to canoprof -->
<!-- 1. delete the hdoc_to_canoprof input file -->
<!-- 2. copy the opale_to_hdoc's output file to hdoc_to_canoprof input folder -->
<!-- 3. run the hdoc_to_canoprof conversion -->
<target name="to_canoprof_windows" if="${is_windows}">
<delete>
<fileset dir="${cano_in}">
<include name="*.hdoc"/>
</fileset>
</delete>
<copy todir="${cano_in}">
<fileset dir="${opa_out}">
<include name="*.hdoc"/>
</fileset>
</copy>
<exec dir="../hdoc_to_canoprof" executable="../hdoc_to_canoprof/run.bat"/>
</target>
<!-- Targets if unix -->
<!-- Conversion opale to hdoc -->
<!-- 1. delete the opale_to_hdoc input file -->
<!-- 2. copy the local input file to opale_to_hdoc -->
<!-- 3. run the opale_to_hdoc conversion -->
<target name="to_hdoc_unix" if="${is_unix}">
<delete>
<fileset dir="${opa_in}">
<include name="*.scar"/>
</fileset>
</delete>
<copy todir="${opa_in}">
<fileset dir="${in}">
<include name="*.scar"/>
</fileset>
</copy>
<exec executable="/bin/bash" dir="../opale_to_hdoc">
<arg value="../opale_to_hdoc/run.sh"/>
</exec>
</target>
<!-- Conversion hdoc to canoprof -->
<!-- 1. delete the hdoc_to_canoprof input file -->
<!-- 2. copy the opale_to_hdoc's output file to hdoc_to_canoprof input folder -->
<!-- 3. run the hdoc_to_canoprof conversion -->
<target name="to_canoprof_unix" if="${is_unix}">
<delete>
<fileset dir="${cano_in}">
<include name="*.hdoc"/>
</fileset>
</delete>
<copy todir="${cano_in}">
<fileset dir="${opa_out}">
<include name="*.hdoc"/>
</fileset>
</copy>
<exec executable="/bin/bash" dir="../hdoc_to_canoprof">
<arg value="../hdoc_to_canoprof/run.sh"/>
</exec>
</target>
<!-- After the file is converted to canoprof, copy the resulting file to opale_to_canoprof's output folder -->
<target name="to_canoprof_end">
<copy todir="${out}">
<fileset dir="${cano_out}"/>
</copy>
</target>
</project>
in = ${basedir}/input
out = ${basedir}/output
tmp = ${basedir}/tmp
xsl = ${basedir}/xsl
lib = ${basedir}/lib
log = ${basedir}/log
opa_in = ../opale_to_hdoc/input
opa_out = ../opale_to_hdoc/output
cano_in = ../hdoc_to_canoprof/input
cano_out = ../hdoc_to_canoprof/output
rootfilename = content.xml
\ No newline at end of file
......@@ -6,7 +6,7 @@ License GPL3.0 http://www.gnu.org/licenses/gpl-3.0.txt
## Credits
-------------
DELAUNAY Grégory
DELAUNAY Grégory
KELLER Vincent
## Presentation
......@@ -22,8 +22,25 @@ Opale to ElasticSearch module extract data from an Opale file to use it with Ela
## User Story
-------------
"Vous disposez d'un ensemble de contenus Opale à votre disposition et vous aimeriez pouvoir l'analyser selon les différents types d'éléments possibles : cours, exercices, notions tout en permettant de trier par rapport aux différents sujets de ces dit contenus.
Pour se faire, vous mettrez les contenus que vous voulez analyser en input de opale_to_elasticSearch et vous lancerez le script lançant le fichier ANT.
Vous pourrez ensuite accéder à des graphiques Kibana à une adresse donnée et paramétrer vos graphiques afin d'obtenir les informations qui vous intéresse.
"Vous disposez d'un ensemble de contenus Opale à votre disposition et vous aimeriez pouvoir l'analyser selon les différents types d'éléments possibles : cours, exercices, notions tout en permettant de trier par rapport aux différents sujets de ces dit contenus.
Pour se faire, vous mettrez les contenus que vous voulez analyser en input de opale_to_elasticSearch et vous lancerez le script lançant le fichier ANT.
Vous pourrez ensuite accéder à des graphiques Kibana à une adresse donnée et paramétrer vos graphiques afin d'obtenir les informations qui vous intéresse.
A savoir que les contenus opale de plusieurs machines/utilisateurs peuvent être capitalisés car l'ensemble des instances de base elasticSearch installées forment un cluster accessible via l'interface Kibana"
A savoir que les contenus opale de plusieurs machines/utilisateurs peuvent être capitalisés car l'ensemble des instances de base elasticSearch installées forment un cluster accessible via l'interface Kibana"
##Utilisation
-------------
L'utilisation complète d'opale_to_elasticSearch nécessite l'utilisation de la stack ELK (ElasticSearch, Logstash, Kibana).
- Télécharger ElasticSearch : https://www.elastic.co/fr/downloads/elasticsearch
- Télécharger Logstash : https://www.elastic.co/fr/downloads/logstash
- Télécharger Kibana : https://www.elastic.co/fr/downloads/kibana
- Télécharger le fichier de conf de Logstash : https://www.dropbox.com/s/lkz3dgmto2d378m/esconf.conf?dl=0
- Mettre le fichier téléchargé dans %{dossier_installation_logstash}/
Etapes :
- aller dans votre dossier d'installation d'elasticsearch et lancer bin/elasticsearch
- aller dans votre dossier d'installation de kibana et lancer bin/kibana
- aller dans votre dossier d'installation de logstash et lancer bin/logstash - f esconf.conf
- lancer la transformation opale_to_elasticsearch en mettant d'abord les *.scar dans opale_to_elasticsearch/input
- Normalement les log de logstash indique l'insertion des sorties de la transformation, il arrive pour le moment qu'il ne le fasse qu'au moment où logstash s'arrête, l'arrêter alors.
- aller sur http://localhost:5601/app/kibana#/dashboard/NF29_DATA_DASHBOARD?_g=(filters%3A!()%2CrefreshInterval%3A(display%3AOff%2Cpause%3A!f%2Cvalue%3A0)%2Ctime%3A(from%3Anow%2Fy%2Cmode%3Aquick%2Cto%3Anow%2Fy))
\ No newline at end of file
libdir=${basedir}/lib
xsldir=${basedir}/xsl
inputPath=${basedir}/input
outputPath=${basedir}/logstash/input
inputOpaleToHdoc=../opale_to_hdoc/input
outputOpaleToHdoc=../opale_to_hdoc/output
inputHdocToElasticSearch=../hdoc_to_elasticSearch/input
outputHdocToElasticSearch=../hdoc_to_elasticSearch/output
\ No newline at end of file
<project name="hdoc_to_elasticsearch" default="clean">
<!-- -->
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="lib/ant-contrib-0.3.jar"/>
</classpath>
</taskdef>
<property file="build.properties"/>
<!-- Parcours la liste des fichiers pour les transformer -->
<target name="targetAllFiles">
<delete>
<fileset dir="${outputPath}">
<include name="*.json"/>
</fileset>
</delete>
<!-- Copy files in opale_to_hdoc input dir -->
<copy todir="${inputOpaleToHdoc}">
<fileset dir="${inputPath}"/>
</copy>
<!-- Use ant transo opale_to_hdoc -->
<ant antfile="../opale_to_hdoc/opale_to_hdoc.ant" inheritAll="false"/>
<!-- Copy files in hdoc_to_elasticSearch input dir -->
<copy todir="${inputHdocToElasticSearch}">
<fileset dir="${outputOpaleToHdoc}"/>
</copy>
<!-- Use ant transo opale_to_hdoc -->
<ant antfile="../hdoc_to_elasticSearch/hdoc_to_elasticsearch.ant" inheritAll="false"/>
<copy todir="${outputPath}" >
<fileset dir="${outputHdocToElasticSearch}"/>
</copy>
</target>
<!-- Clear tmp files -->
<target name="clean" depends="targetAllFiles">
<echo message="Clean files" />
<!-- -->
<delete includeemptydirs="true" verbose="true">
<fileset dir="${inputOpaleToHdoc}">
<include name="*.scar"/>
</fileset>
</delete>
<delete includeemptydirs="true" verbose="true">
<fileset dir="${outputOpaleToHdoc}">
<include name="*.hdoc"/>
</fileset>
</delete>
<delete includeemptydirs="true" verbose="true">
<fileset dir="${inputHdocToElasticSearch}">
<include name="*.hdoc"/>
</fileset>
</delete>
<delete includeemptydirs="true" verbose="true">
<fileset dir="${outputHdocToElasticSearch}">
<include name="*.json"/>
</fileset>
</delete>
<echo message="Clean end" />
</target>
</project>
@echo off
set lib=lib
set ant=opale_to_elasticsearch.ant
set antparam=-Dprogram.param=%1
set scJarList=%lib%\*
java.exe -classpath "%scJarList%" -Xmx150m org.apache.tools.ant.Main -buildfile %ant% %antparam%
pause
REM start /MIN java.exe -classpath "%scJarList%" -Xmx150m org.apache.tools.ant.Main -buildfile %ant% %antparam%
#!/bin/sh
lib="lib"
ant="opale_to_elasticsearch.ant"
antparam="-Dprogram.param=$1"
#Recherche de java et controle que se soit une version SUN
vJavaCmd="java"
xCheckJava () {
vInputVarName=\$"$1"
vInputVarVal=`eval "expr \"$vInputVarName\" "`
if [ -z "$vInputVarVal" ];then
eval "$1=false"
return
fi
vSunJavaFound=`$vInputVarVal -version 2>&1 | grep -Eo -m 1 "(HotSpot)|(OpenJDK)"`
if [ "$vSunJavaFound" != "HotSpot" ] && [ "$vSunJavaFound" != "OpenJDK" ] ; then
eval "$1=false"
return
fi
}
xCheckJava vJavaCmd
if [ "$vJavaCmd" = "false" ]; then
vJavaCmd="$JAVA_HOME/bin/java"
xCheckJava vJavaCmd
if [ "$vJavaCmd" = "false" ]; then
echo "ERREUR: JRE de SUN introuvable. Veuillez déclarer la variable d'environnement JAVA_HOME."
exit 1
fi
fi
#Lancer la commande
scJarList="$lib/*"
$vJavaCmd -classpath "$scJarList:" -Xmx150m org.apache.tools.ant.Main -buildfile $ant $antparam
Markdown is supported
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