I'm using Modeshape 5.4.0 with File system persistence. I'm storing all the subsequent files/resources in this particular node (/uploads) which is of type "nt:folder". I deleted all the nodes in the /uploads node by using the below code.
public void deleteNode(String path) { try { JcrTools jcrTools = new JcrTools(false); jcrTools.printSubgraph(session.getNode(path)); NodeIterator iter = session.getNode(path).getNodes(); while (iter.hasNext()) { Node child = iter.nextNode(); if(!child.getName().contains("jcr:system")) { jcrTools.removeAllChildren(child); child.remove(); session.save(); } } } catch (Exception e) { e.printStackTrace(); } }
But when I see my persistence folder size it's still the same and never reduces even when I delete huge files (~1-2 GB). Later I read somewhere that Modeshape has a garbage collector which runs periodically. How do I trigger this GC manually? Am I deleting the nodes in the right manner? Please help.
My config JSON is as follows
{ "name": "TestRepository", "node-types": ["custom-props.cnd"], "jndiName": "jcr/TestRepo", "monitoring": { "enabled": true }, "workspaces": { "default": "defaultWorkspace", "predefined": ["otherWorkspace"], "allowCreation": true }, "storage": { "persistence": { "type": "file", "path": "D:\\repository" }, "binaryStorage": { "type": "file", "directory": "D:\\repository\\binaries", "trash": "D:\\repository\\binaries\\trash" } }, "garbageCollection": { "initialTime": "11:46", "intervalInHours": 1 } }
Even after specifying initial time and interval, my GC never runs.