Project

General

Profile

1
package eu.dnetlib.data.statsmanager;
2

    
3
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
4
import eu.dnetlib.enabling.tools.blackboard.BlackboardNotificationHandler;
5
import eu.dnetlib.enabling.tools.blackboard.BlackboardServerHandler;
6
import org.apache.log4j.Logger;
7

    
8
import javax.xml.bind.JAXBContext;
9
import java.io.PrintWriter;
10
import java.io.StringWriter;
11

    
12
/**
13
 * Created by antleb on 10/25/14.
14
 */
15
public class StatsManagerServiceBlackboardHandler extends BlackboardNotificationHandler<BlackboardServerHandler> {
16

    
17
    private static Logger logger = Logger.getLogger(StatsManagerServiceBlackboardHandler.class);
18
    private StatsManager statsManager;
19

    
20
    protected void processJob(BlackboardJob job) {
21
        //TODO needs this?
22
        super.processJob(job);
23

    
24
        logger.info("Beginning new job...");
25
        logger.info("Id: " + job.getId() + " Date : " + job.getDate());
26
        String action = job.getAction();
27

    
28
        logger.info("Got BB message: " + action);
29

    
30
        try {
31
            getBlackboardHandler().ongoing(job);
32

    
33
            if (action.equals("validate")) {
34
                ValidationReport report = statsManager.validateDatabase();
35

    
36
                // TODO update job status
37
                StringWriter sw = new StringWriter();
38
                JAXBContext.newInstance(ValidationReport.class).createMarshaller().marshal(report, sw);
39

    
40
                job.getParameters().put("report", sw.toString());
41
            } else if (action.equals("refreshCache")) {
42
                statsManager.refreshCache();
43
            } else if (action.equals("promoteShadow")) {
44
                statsManager.promoteShadowSchema();
45
            } 
46
            } else if (action.equals("promoteShadowCache")) {
47
              statsManager.promoteShadowCache();
48
             } 
49
             else {
50
                throw new Exception("Don't know what to do with " + action);
51
            }
52

    
53
            getBlackboardHandler().done(job);
54
        } catch (Exception e) {
55
            getBlackboardHandler().failed(job, e);
56

    
57
            logger.error("Error processing job", e);
58
        }
59
    }
60

    
61
    public StatsManager getStatsManager() {
62
        return statsManager;
63
    }
64

    
65
    public void setStatsManager(StatsManager statsManager) {
66
        this.statsManager = statsManager;
67
    }
68
}
(4-4/6)