Ended up writing my own Node to mongo db object (json) routine :P
https://github.com/saml/jackrabbit-mongodb-dump/blob/eae1074e2cb59398348becb7d66dfdf4095ac241/src/main/scala/saml/mongo/package.scala#L21-L26

If anyone wants to dump JCR content into Mongo, here is how to use it:
https://github.com/saml/jackrabbit-mongodb-dump







On Fri, Aug 15, 2014 at 12:06 PM, Carsten Ziegeler <[email protected]>
wrote:

> The code has recently moved to the commons json bundle, the easiest way
> would be to update that bundle. If that's not possible, just embed the
> classes in your bundle.
>
> Carsten
>
>
> 2014-08-14 23:45 GMT+02:00 Sam Lee <[email protected]>:
>
> > Hi,
> >
> > I want to dump all JCR content to mongodb for analysis.
> > I see there is  https://issues.apache.org/jira/browse/SLING-3485 .
> > And org.apache.sling.servlets.get.impl.helpers.ResourceTraversor  does
> what
> > I want to do.
> >
> > But I am stuck with older version of Sling.
> > Are there other ways to dump JSON of  a node tree?
> >
> > I have the following code but it cannot be compiled because
> > ResourceTraversor cannot be found:
> >
> > final Pattern ENTRY = Pattern.compile("/\\d+/\\d+/[^/]+/jcr:content$");
> > class JsonDumpNodeVisitor extends TraversingItemVisitor {
> >     private final ResourceResolver resolver;
> >     private final PrintWriter writer;
> >
> >     public JsonDumpNodeVisitor(ResourceResolver resolver, PrintWriter
> > writer) {
> >         this.resolver = resolver;
> >         this.writer = writer;
> >     }
> >
> >     @Override
> >     protected void entering(Property property, int level) throws
> > RepositoryException {
> >     }
> >
> >     @Override
> >     protected void entering(Node node, int level) throws
> > RepositoryException {
> >         final String nodeType = node.getPrimaryNodeType().getName();
> >         final String path = node.getPath();
> >         final Matcher m = ENTRY.matcher(path);
> >
> >         if (m.find() && "cq:PageContent".equals(nodeType)) {
> >             final ResourceTraversor traversor = new ResourceTraversor(-1,
> > Long.MAX_VALUE, resolver.getResource(path), false);
> >             traversor.collectResources();
> >             writer.write(traversor.getJSONObject().toString());
> >         }
> >     }
> >
> >     @Override
> >     protected void leaving(Property property, int level) throws
> > RepositoryException {
> >     }
> >
> >     @Override
> >     protected void leaving(Node node, int level) throws
> RepositoryException
> > {
> >     }
> > }
> >
> > final Node node =
> > resourceResolver.getResource(rootPath).adaptTo(Node.class);
> > final TraversingItemVisitor visitor = new
> > JsonDumpNodeVisotor(resourceResolver, out);
> > node.accept(visitor);
> >
>
>
>
> --
> Carsten Ziegeler
> Adobe Research Switzerland
> [email protected]
>

Reply via email to