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