jguillemotte TODOs dont EndpointStateService impl / nuxeo SQL Directory

6 views
Skip to first unread message

Marc Dutoo

unread,
Dec 12, 2012, 7:03:06 AM12/12/12
to Jeremie Guillemotte, easysoa-dev

---++ 20121211 jgu point

---+++ Pivotal accueil :
logo (borders of a bird + "axxx")
"Bienvenue sur Pivotal la gestion de contact de l'AXXX"
remove "logged welcome" page

---+++ SRS2 :
dl source nuxeo, update tests & with attached wsdl, update JSON

---+++ ESS :
Q akervern :
Pour le monitoring, on souhaite stocker des SlaOrOlaIndicators sous forme de Directory comme conseillé, voir leur service à https://github.com/easysoa/EasySOA-Incubation/blob/master/easysoa-registry-v1/easysoa-registry-rest-core/src/main/java/org/easysoa/registry/rest/integration/EndpointStateService.java
Bref, peux-tu nous pointer vers des exemples de configuration et code pour ça ? Ainsi nous pourrions finir d'implémenter https://github.com/easysoa/EasySOA-Incubation/blob/master/easysoa-registry-v1/easysoa-registry-rest-server/src/main/java/org/easysoa/registry/integration/EndpointStateServiceImpl.java ...

Réponse :
Il faut configurer un SQL Directory (mais sans fichier .csv qui ne sert qu'à initialiser le contenu, ce dont on n'a pas besoin ici), voir doc http://doc.nuxeo.com/display/NXDOC/Directories+and+Vocabularies

Voici un exemple de configuration avec juste ce dont on a besoin :
<directory name="XXXX">
<schema>XXXX</schema>
<dataSource>java:/nxsqldirectory</dataSource>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<table>XXXX</table>
<idField>id</idField>
<autoincrementIdField>true</autoincrementIdField>
<createTablePolicy>on_missing_columns</createTablePolicy>
</directory>
où XXX est un schema .xsd définissant les champs requis, à l'image de ceux définissant les champs documentaires

Cela doit être défini dans une contribution dans easysoa-registry-rest-server/src/main/resources/OSGI-INF et raccrochée dans easysoa-registry-rest-server/src/main/resources/META-INF/MANIFEST.MF (voir comment dans easysoa-registry-doctypes-core/src/main/resources/META-INF/MANIFEST.MF ). Voir un exemple d'une telle contribution dans easysoa-registry-doctypes-core/src/main/resources/OSGI-INF/directory-contrib.xml , et un autre avec des choses dont on n'a pas besoin mais dans son contexte :
http://explorer.nuxeo.org/nuxeo/site/distribution/current/viewExtensionPoint/org.nuxeo.ecm.directory.sql.SQLDirectoryFactory--directories

Ensuite, il faut utiliser programmatiquement DirectoryService (Framework.getService(DirectoryService.class)) qui donne accès à la Session, laquelle permet de gérer les données : getEntry(), query(), createEntry()...
IMPORTANT ouvrir et fermer la session, donc : storeIndicators() { openSession(); addRows(); closeSession(); }
Arnaud enrichit les méthodes Session.query() pour les permettre sur des périodes (date range) et de pagination (limit et offset) donc pas des critères exacts. Elles ont déjà des Filter qui permettent des critères exacts, à utiliser pour les slaOrOlaName, endpointId...

---+++ FStudio call SRS :
nouveau template (?)
pb injection SRS
TODO mdutoo pmerle

---+++ APV :
TODO mdutoo
Reply all
Reply to author
Forward
0 new messages