03-26-2013 05:35 AM
Hi,
I need to replace the subject field vocabularies by other domain specific tags. I want to do it in a plugin contribution so that it is easier for us to keep several environments in sync.
I have found how to contribute new vocabularies, but I don't know what do I need to override to replace the vanilla topic/subtopic with a custom vocabulary (it will also have 2 level hierarchy).
Anyone may point me in the right direction?
Edit: We are using Nuxeo CAP with DAM (5.6)
Thanks. Jose
04-04-2013 03:19 PM
Ok. This is what I have done in case it can be useful to someone:
I have overriden the topic and subtopic directories defined in nuxeo-platform-default-config. Like this:
In my plugin, I have created the csv files for topics and subtopics, with the same schemas than the originals (check the source!):
src/main/resources/directories/my-subtopic.csv
src/main/resources/directories/my-topic.csv
Then I have created the contribution file:
OSGI-INF/my-directories-contrib.xml
With this:
<?xml version="1.0"?>
<component name="org.my.ecm.directories">
<require>org.nuxeo.ecm.directories</require>
<extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory"
point="directories">
<directory name="subtopic">
<schema>xvocabulary</schema>
<parentDirectory>topic</parentDirectory>
<dataSource>java:/nxsqldirectory</dataSource>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<table>my_subtopic</table>
<idField>id</idField>
<autoincrementIdField>false</autoincrementIdField>
<dataFile>directories/my-subtopic.csv</dataFile>
<createTablePolicy>on_missing_columns</createTablePolicy>
</directory>
<directory name="topic">
<schema>vocabulary</schema>
<dataSource>java:/nxsqldirectory</dataSource>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<table>my_topic</table>
<idField>id</idField>
<autoincrementIdField>false</autoincrementIdField>
<dataFile>directories/my-topic.csv</dataFile>
<createTablePolicy>on_missing_columns</createTablePolicy>
</directory>
</extension>
</component>
The table names must be different than the original ones.
Then, in META-INF/MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: my-plugin
Bundle-SymbolicName: org.my.video;singleton:=true
Bundle-Version: 1.0.0
Bundle-Vendor: Me
Bundle-Category: web
Bundle-Localization: plugin
Nuxeo-Component: OSGI-INF/my-directories-contrib.xml
Require-Bundle: org.nuxeo.ecm.default.config
In OSGI-INF/l10n/ I have created the desired l10n properties for the topics and subtopics (must match the keys defined in the csv files), for instance:
OSGI-INF/l10n/messages.properties
OSGI-INF/l10n/messages_en.properties
OSGI-INF/l10n/messages_fr.properties
And finally in OSGI-INF/deployment-fragment.xml:
<?xml version="1.0"?>
<fragment version="1">
<require>all</require>
<install>\
<unzip from="${bundle.fileName}" to="/" prefix="web">
<include>/web/nuxeo.war/**</include>
</unzip>
<delete path="${bundle.fileName}.tmp" />
<mkdir path="${bundle.fileName}.tmp" />
<unzip from="${bundle.fileName}" to="${bundle.fileName}.tmp" />
<append from="${bundle.fileName}.tmp/OSGI-INF/l10n/messages.properties"
to="nuxeo.war/WEB-INF/classes/messages.properties" addNewLine="true" />
<append from="${bundle.fileName}.tmp/OSGI-INF/l10n/messages_en.properties"
to="nuxeo.war/WEB-INF/classes/messages_en.properties" addNewLine="true" />
<append from="${bundle.fileName}.tmp/OSGI-INF/l10n/messages_fr.properties"
to="nuxeo.war/WEB-INF/classes/messages_fr.properties" addNewLine="true" />
<delete path="${bundle.fileName}.tmp" />
</install>
</fragment>
Cheers.
04-04-2013 03:19 PM
Ok. This is what I have done in case it can be useful to someone:
I have overriden the topic and subtopic directories defined in nuxeo-platform-default-config. Like this:
In my plugin, I have created the csv files for topics and subtopics, with the same schemas than the originals (check the source!):
src/main/resources/directories/my-subtopic.csv
src/main/resources/directories/my-topic.csv
Then I have created the contribution file:
OSGI-INF/my-directories-contrib.xml
With this:
<?xml version="1.0"?>
<component name="org.my.ecm.directories">
<require>org.nuxeo.ecm.directories</require>
<extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory"
point="directories">
<directory name="subtopic">
<schema>xvocabulary</schema>
<parentDirectory>topic</parentDirectory>
<dataSource>java:/nxsqldirectory</dataSource>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<table>my_subtopic</table>
<idField>id</idField>
<autoincrementIdField>false</autoincrementIdField>
<dataFile>directories/my-subtopic.csv</dataFile>
<createTablePolicy>on_missing_columns</createTablePolicy>
</directory>
<directory name="topic">
<schema>vocabulary</schema>
<dataSource>java:/nxsqldirectory</dataSource>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<table>my_topic</table>
<idField>id</idField>
<autoincrementIdField>false</autoincrementIdField>
<dataFile>directories/my-topic.csv</dataFile>
<createTablePolicy>on_missing_columns</createTablePolicy>
</directory>
</extension>
</component>
The table names must be different than the original ones.
Then, in META-INF/MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: my-plugin
Bundle-SymbolicName: org.my.video;singleton:=true
Bundle-Version: 1.0.0
Bundle-Vendor: Me
Bundle-Category: web
Bundle-Localization: plugin
Nuxeo-Component: OSGI-INF/my-directories-contrib.xml
Require-Bundle: org.nuxeo.ecm.default.config
In OSGI-INF/l10n/ I have created the desired l10n properties for the topics and subtopics (must match the keys defined in the csv files), for instance:
OSGI-INF/l10n/messages.properties
OSGI-INF/l10n/messages_en.properties
OSGI-INF/l10n/messages_fr.properties
And finally in OSGI-INF/deployment-fragment.xml:
<?xml version="1.0"?>
<fragment version="1">
<require>all</require>
<install>\
<unzip from="${bundle.fileName}" to="/" prefix="web">
<include>/web/nuxeo.war/**</include>
</unzip>
<delete path="${bundle.fileName}.tmp" />
<mkdir path="${bundle.fileName}.tmp" />
<unzip from="${bundle.fileName}" to="${bundle.fileName}.tmp" />
<append from="${bundle.fileName}.tmp/OSGI-INF/l10n/messages.properties"
to="nuxeo.war/WEB-INF/classes/messages.properties" addNewLine="true" />
<append from="${bundle.fileName}.tmp/OSGI-INF/l10n/messages_en.properties"
to="nuxeo.war/WEB-INF/classes/messages_en.properties" addNewLine="true" />
<append from="${bundle.fileName}.tmp/OSGI-INF/l10n/messages_fr.properties"
to="nuxeo.war/WEB-INF/classes/messages_fr.properties" addNewLine="true" />
<delete path="${bundle.fileName}.tmp" />
</install>
</fragment>
Cheers.
Attention: Blogs & Forums are in READ-ONLY mode from Oct 9-19 as we transition to our new platform. Learn more.
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.