org.dspace.health.InfoCheck.java Source code

Java tutorial

Introduction

Here is the source code for org.dspace.health.InfoCheck.java

Source

/**
 * The contents of this file are subject to the license and copyright
 * detailed in the LICENSE and NOTICE files at the root of the source
 * tree and available online at
 *
 * http://www.dspace.org/license/
 */
package org.dspace.health;

import org.apache.commons.io.FileUtils;
import org.dspace.core.ConfigurationManager;
import org.dspace.services.ConfigurationService;
import org.dspace.storage.bitstore.DSBitStoreService;
import org.dspace.utils.DSpace;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author LINDAT/CLARIN dev team
 */
public class InfoCheck extends Check {

    @Override
    public String run(ReportInfo ri) {
        StringBuilder sb = new StringBuilder();
        ConfigurationService configurationService = new DSpace().getConfigurationService();
        sb.append("Generated: ").append(new Date().toString()).append("\n");

        sb.append("From - Till: ").append(new SimpleDateFormat("yyyy-MM-dd").format(ri.from().getTime()))
                .append(" - ").append(new SimpleDateFormat("yyyy-MM-dd").format(ri.till().getTime())).append("\n");

        sb.append("Url: ").append(ConfigurationManager.getProperty("dspace.url")).append("\n");
        sb.append("\n");

        DSBitStoreService localStore = new DSpace().getServiceManager().getServicesByType(DSBitStoreService.class)
                .get(0);
        for (String[] ss : new String[][] { new String[] { localStore.getBaseDir().toString(), "Assetstore size", },
                new String[] { configurationService.getProperty("log.report.dir"), "Log dir size", }, }) {
            if (ss[0] != null) {
                try {
                    File dir = new File(ss[0]);
                    if (dir.exists()) {
                        long dir_size = FileUtils.sizeOfDirectory(dir);
                        sb.append(String.format("%-20s: %s\n", ss[1], FileUtils.byteCountToDisplaySize(dir_size)));
                    } else {
                        sb.append(String.format("Directory [%s] does not exist!\n", ss[0]));
                    }
                } catch (Exception e) {
                    error(e, "directory - " + ss[0]);
                }
            } else { // cannot read property for some reason
                sb.append(String.format("Could not get information for %s!\n", ss[1]));
            }
        }

        return sb.toString();
    }

}