04-21-2015 11:19 AM
In studio, it seems impossible to declare a custom vocabulary (not based on the single data source).
So I choose an arbitrary vocabulary and give in custom properties my directoryName (test)
The bundle is generated as expected
<properties widgetMode="edit">
<property name="directoryName">test</property>
</properties>
and in studio i even have "Directory Name" positionned to "test" (as if it was a studio vocabulary).
That's a real dirty solution !
I also declared an XML extension in studio for my directory :
<extension point="directories" target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory">
<directory name="test">
<schema>vocabulary</schema>
<dataSource>XXXXX</dataSource>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<table>test</table>
<idField>id</idField>
<autoincrementIdField>false</autoincrementIdField>
<createTablePolicy>never</createTablePolicy>
</directory>
</extension>
First question : what's the syntax of the datasource element :
a studio vocabulary would be defined as java:/test whereas, according to common contributions to the org.nuxeo.ecm.directory.sql.SQLDirectoryFactory directories extension point, it would be jdbc/test. What's the difference ?
Server side : I tried to declare the mentionned jdbc ressource.
I copied common-base to a custom template
it is deployed after common-base
in server.xml template, I declared a second ressource next to the common datasource :
<Resource name="jdbc/testDS" auth="Container" type="javax.sql.DataSource"
maxActive="5" maxIdle="30" maxWait="10000" driverClassName="${nuxeo.test.driver}"
url="${nuxeo.test.jdbc.url}" validationQuery=""
username="${nuxeo.test.user}" password="${nuxeo.test.password}"
accessToUnderlyingConnectionAllowed="true" />
In nuxeo.xml template, I delared the ressource link pointing to the global ressource
<ResourceLink name="jdbc/test" global="jdbc/testDS" type="javax.sql.DataSource" />
Finally, I excluded both ressource names from the common datasource in nuxeo.conf
singleDataSource.exclude=jdbc/testDS,jdbc/test
When using the widget, I get the following error :
Caused by: **org.postgresql.util.PSQLException**: ERREUR: la relation « test » n'existe pas
What would be the proper declaration(s) for my directory to work with the data source I declared ?
03-01-2016 06:04 AM
The solution is to simply create a contribution extending the "datasources" extension point of "org.nuxeo.runtime.datasource"
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.