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]
