You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-fr@cocoon.apache.org by Frédéric Glorieux <fr...@ajlsm.com> on 2005/12/11 10:29:39 UTC
récupérer une connexion exist en cocoon.xconf
Bonjour,
Je peux configurer à peu près comme il me faut des connexions xmldb dans
concon.xconf, genre
<driver class="org.exist.xmldb.DatabaseImpl" user="admin"
password="admin" type="monInstance">
<database-id>Ceddre</database-id>
<configuration>/home/exist/monInstance/conf.xml</configuration>
<create-database>true</create-database>
</driver>
Elles sont disponibles pour par exemple
<map:generate src="xmldb:monInstance:///db/{1}"/>
Maintenant, j'aimerai profiter de cette connexion pour aller faire des
choses dans cette instance Exist en java
Je suppose que Cocoon configure quelque part certains objets ?
Est-ce qu'il y a quelquepart un DatabaseManager répertoriant les
instances configurées en cocoon.xconf ?
Je vais chercher au débogueur, mais si un gourou pouvait m'en dire plus...
--
Frédéric Glorieux (AJLSM, http://ajlsm.com)
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Pierrick Brihaye <pi...@free.fr>.
Frédéric Glorieux wrote:
> Mon problème, c'est quand je ne les connais pas, que l'appli puisse en
> avoir la liste, selon ce qu'un administrateur aura inscrit dans un
> cocoon.xconf, un énumérateur quelconque...
Comme indiqué précédement, c'est la sémantique qu'eXist donne à la méthode :
http://xmldb-org.sourceforge.net/xapi/api/org/xmldb/api/base/Database.html#getNames()
Dans les faits, le cablage n'est pas fait mais il doit être possible de
s'en tirer en allant du côté de BrokerPool.getInstances().
Voilà. A+
p.b.
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Frédéric Glorieux <fr...@ajlsm.com>.
>>> Le DatabaseManager est un singleton dont toutes les méthodes sont
>>> statiques.
> Non, pas besoin de *créer* un DatabaseManager, puisque tout est statique.
> Database[] toutesLesBases = DatabaseManager.getDatabases();
Désolé de n'avoir pas compris, excellent, cela marche très bien ! La
norme est bien implantée.
--
Frédéric Glorieux (AJLSM, http://ajlsm.com)
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Sylvain Wallez <sy...@apache.org>.
Frédéric Glorieux wrote:
>
>
>>> Je suppose que Cocoon configure quelque part certains objets ?
>>> Est-ce qu'il y a quelquepart un DatabaseManager répertoriant les
>>> instances configurées en cocoon.xconf ?
>>
>> Le DatabaseManager est un singleton dont toutes les méthodes sont
>> statiques.
>
> OK, donc si je veux un DatabaseManager avec ma liste de bases
> configurées dans cocoon.xconf, je me le fais moi-même.
Non, pas besoin de *créer* un DatabaseManager, puisque tout est statique.
>> Tu peux donc accéder aux bases où bon te semble, une fois qu'elles
>> ont été configurées par l'init de Cocoon.
>
> Elles me servent bien ce que je veux, quand je les connais d'avance.
>
> Mon problème, c'est quand je ne les connais pas, que l'appli puisse en
> avoir la liste, selon ce qu'un administrateur aura inscrit dans un
> cocoon.xconf, un énumérateur quelconque...
Database[] toutesLesBases = DatabaseManager.getDatabases();
Sylvain
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Frédéric Glorieux <fr...@ajlsm.com>.
>> Je suppose que Cocoon configure quelque part certains objets ?
>> Est-ce qu'il y a quelquepart un DatabaseManager répertoriant les
>> instances configurées en cocoon.xconf ?
>
> Le DatabaseManager est un singleton dont toutes les méthodes sont
> statiques.
OK, donc si je veux un DatabaseManager avec ma liste de bases
configurées dans cocoon.xconf, je me le fais moi-même.
> Tu peux donc accéder aux bases où bon te semble, une fois
> qu'elles ont été configurées par l'init de Cocoon.
Elles me servent bien ce que je veux, quand je les connais d'avance.
Mon problème, c'est quand je ne les connais pas, que l'appli puisse en
avoir la liste, selon ce qu'un administrateur aura inscrit dans un
cocoon.xconf, un énumérateur quelconque...
--
Frédéric Glorieux (AJLSM, http://ajlsm.com)
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Sylvain Wallez <sy...@apache.org>.
Frédéric Glorieux wrote:
> Je suppose que Cocoon configure quelque part certains objets ?
> Est-ce qu'il y a quelquepart un DatabaseManager répertoriant les
> instances configurées en cocoon.xconf ?
Le DatabaseManager est un singleton dont toutes les méthodes sont
statiques. Tu peux donc accéder aux bases où bon te semble, une fois
qu'elles ont été configurées par l'init de Cocoon.
Sylvain
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Sylvain Wallez <sy...@apache.org>.
Pierrick Brihaye wrote:
> Pour info, eXist est en GPL, pas en ASL : les patches ont donc
> vocation à remonter :-)))
Les patches ont aussi vocation à remonter en ASL, même si on ne l'oblige
pas. Et la remontée des patches GPL n'est pas obligatoire s'il n'y a pas
de redistribution...
Sylvain, en direct de la ApacheCon à San Diego :-)
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Frédéric Glorieux <fr...@ajlsm.com>.
Bon, après la galère de la mise à jour avec une lib exist dernière
distrib, les conf, les données, je n'ai repéré aucun problème à
multiplier les instances Exist en lectures + écriture dans un
cocoon.xconf, et merci Cocoon de donner un DatabaseManager
Le seul patch souhaitable concerne la résolution des paths relatifs pour
une distrib war, je te transmets ailleurs un bug Exist sur le dossier où
trouver un fichier journal
Cela se comporte comme cela doit
<driver class="org.exist.xmldb.DatabaseImpl" user="admin" password=""
type="coucou">
<database-id>coucou</database-id>
<create-database>true</create-database>
<configuration>/home/coucou/coucou.xml</configuration>
</driver>
<driver class="org.exist.xmldb.DatabaseImpl" user="admin" password=""
type="beuh">
<database-id>beuh</database-id>
<configuration>home/beuh/beuh.xml</configuration>
<create-database>true</create-database>
</driver>
Et ceci marche très bien
<map:generate src="xmldb:coucou:///db/{1}"/>
Pareil pour de l'écriture avec par exemple l'action copy-source
Le seul risque que j'ai repéré, il vaut mieux mettre le même nom dans
@type ou <database-id/>, sinon, il y a des emmêlements de pinceaux que
je n'ai pas bien compris.
>> Je fais tourner 3 instances Exist avec chacune leur conf et leur
>> fichiers *.dbx,
>
> Comment fais-tu ? Ports différents ?
> Pour info, eXist est en GPL, pas en ASL : les patches ont donc vocation
> à remonter :-)))
--
Frédéric Glorieux (AJLSM, http://ajlsm.com)
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Pierrick Brihaye <pi...@free.fr>.
Frédéric Glorieux wrote:
> Je fais tourner 3 instances Exist avec chacune leur conf et leur
> fichiers *.dbx,
Comment fais-tu ? Ports différents ?
> Et en fait, c'est plus que logique ? Ce n'est pas à un DatabaseManager
> de gérer les instances multiples ?
Dans l'esprit des specs xmldb, si. On n'est pas censé savoir le moteur
situé derrière telle ou telle instance.
> DatabaseManager.registerDatabase()
>
> J'aimerai bien récupérer ce
> DatabaseManager :o)
Le problème, c'est qu'il est presque gravé dans le marbre ici :
http://xmldb-org.sourceforge.net/xapi/xapi-draft.html
et plus particulièrement ici :
http://xmldb-org.sourceforge.net/xapi/api/org/xmldb/api/DatabaseManager.html
> Merci de l'info d'un commiter Exist, donc on en restera au patch local.
Pour info, eXist est en GPL, pas en ASL : les patches ont donc vocation
à remonter :-)))
p.b.
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Frédéric Glorieux <fr...@ajlsm.com>.
> Cette
> approche est toute théorique
Heu, non, elle est expérimentale.
Je fais tourner 3 instances Exist avec chacune leur conf et leur
fichiers *.dbx, et je suis certain de voir ce que j'y ai mis, avec les
utilisateurs dba qui y sont (vu au client JAVA).
D'où l'intérêt d'utiliser ces connexions configurées par un
administrateur dans une application.
> car, à ma connaissance, l'implémentation
> d'une XMLDB sur un moteur eXist ne sait gérer qu'une seule instante
Et en fait, c'est plus que logique ? Ce n'est pas à un DatabaseManager
de gérer les instances multiples ?
DatabaseManager.registerDatabase()
J'aimerai bien récupérer ce
DatabaseManager :o)
> qui
> s'appelle "exist" dans 99.999999% des cas.
Je m'en suis aperçu, j'ai un Exist patché pour ça.
> Voir:
> http://cvs.sourceforge.net/viewcvs.py/exist/eXist-1.0/src/org/exist/xmldb/DatabaseImpl.java?annotate=1.39
>
>
> et détricoter à partir de la ligne 297.
>
> Il a y a sans doute encore pas mal de travail à faire de ce côté-là
> mais, ajouté au reste des TODO, ça aura, je le crains, une priorité
> assez basse.
Merci de l'info d'un commiter Exist, donc on en restera au patch local.
--
Frédéric Glorieux (AJLSM, http://ajlsm.com)
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org
Re: récupérer une connexion exist en cocoon.xconf
Posted by Pierrick Brihaye <pi...@free.fr>.
Salut,
Frédéric Glorieux wrote:
> Elles sont disponibles pour par exemple
>
> <map:generate src="xmldb:monInstance:///db/{1}"/>
> Je suppose que Cocoon configure quelque part certains objets ?
> Est-ce qu'il y a quelquepart un DatabaseManager répertoriant les
> instances configurées en cocoon.xconf ?
Cette
approche est toute théorique car, à ma connaissance, l'implémentation
d'une XMLDB sur un moteur eXist ne sait gérer qu'une seule instante qui
s'appelle "exist" dans 99.999999% des cas.
Voir:
http://cvs.sourceforge.net/viewcvs.py/exist/eXist-1.0/src/org/exist/xmldb/DatabaseImpl.java?annotate=1.39
et détricoter à partir de la ligne 297.
Il a y a sans doute encore pas mal de travail à faire de ce côté-là
mais, ajouté au reste des TODO, ça aura, je le crains, une priorité
assez basse.
A+
p.b.
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org