Closed pun-ky closed 4 years ago
seems that https://jackrabbit.apache.org/api/2.12/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefWriter.html need to be used and exposed in some servlet:
final CompactNodeTypeDefWriter cnd = new CompactNodeTypeDefWriter((Writer)res.getWriter(), session, true);
final NodeTypeIterator iter = session.getWorkspace().getNodeTypeManager().getAllNodeTypes();
while (iter.hasNext()) {
cnd.write((NodeTypeDefinition)iter.nextNodeType());
}
cnd.close();
I need this to be able to provide nodetypes.cnd file to OakPAL tool which validates packages before installing them on Sling.
What do you actually need here - an export of one or several nodetypes given in the request (e.g. all nodetypes whose name is matching a given pattern), or the export of the nodetype(s) that apply to a given resource, or something else?
@stoerr as you can see on snippet above, it prints all nodetypes registered in oak repository. I need them to perform offline validation of package to be deployed using in-memory oak repository which will be fed by exported node types using this missing endpoint/servlet.
all nodetypes whose name is matching a given pattern
all node types without any filtering.
FYI I am upgrading Gradle Sling Plugin (fork of Gradle AEM Plugin) so that it will have all features of GAP too... but I got stuck on automatic node types synchronization because Composum/Sling does not provide endpoint/servlet for exporting these node types, I mean something like http://localhost:4502/crx/de/exportnodetype.jsp on AEM.
@pun-ky Since you asked so nicely :-) and even provided the crucial code yourself, I whipped up a quick implementation for that. I hope that's what you need - it's in the new release 1.2.12 of the composum core. It's URL is /bin/cpm/nodes/debug/nodetypes and has an optional nameregex parameter where you could restrict the types if you need to - since you don't it's fine if you skip it and thus get everything. I also provided it in form of a Sling console plugin, since that was the form in which I had wished for it sometimes. Please let us know if there is some trouble.
It's okay. Thank you very much 👌🙂
is there any way to export node types via some endpoint / similar feature like: https://www.bounteous.com/sites/default/files/export-node-frpm-crx-lite.png ?
sample output file nodetypes.cnd: