Script - Purge all folders into some parent

That script purges all folders into a parent, without previously moving files to trash.

The purge action is a non recovery action that removes definitely the objects from OpenKM repository. Use it with care.

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import com.openkm.api.OKMFolder;
import com.openkm.db.bean.NodeFolder;
import com.openkm.util.ContextWrapper;
 
String qs = "from NodeFolder nf where nf.parent='2ed9586e-570c-4d27-a107-eeb0a5f181be'";
Session session = null;
Transaction tx = null;
boolean found = true;

try {
    SessionFactory sessionFactory = ContextWrapper.getContext().getBean(SessionFactory.class);
    OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);

    while (found) {

        session = sessionFactory.openSession();
        Query q = session.createQuery(qs);
        q.setMaxResults(100);
        found = false;
        List fldList = new ArrayList();

        for (NodeFolder fld : q.list()) {
            found = true;
            fldList.add(fld.getUuid());
        }

        for (String uuid : fldList) {
            try {
                okmFolder.purge(null, uuid);
            } catch (Exception e) {
                print(e.getMessage() + "<br/>");
            }
        }
    }
} catch (Exception e) {
    print(e.getMessage());
} finally {
    session.close();
}

 

Table of contents [ Hide Show ]