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("Stats Manager :Got BB message: " + action);
29

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

    
33
            if (action.equals("validate")) {
34
                ValidationReport report = statsManager.validateDatabase();
35
                StringWriter sw = new StringWriter();
36
                JAXBContext.newInstance(ValidationReport.class).createMarshaller().marshal(report, sw);
37
                job.getParameters().put("report", sw.toString());
38

    
39
            }
40
            else {
41
                statsManager.executeCacheAction(job);
42
            }
43

    
44

    
45
            getBlackboardHandler().done(job);
46
        } catch (
47
                Exception e
48
                )
49

    
50
        {
51
            getBlackboardHandler().failed(job, e);
52

    
53
            logger.error("Error processing job", e);
54
        }
55

    
56
    }
57

    
58

    
59
    public StatsManager getStatsManager() {
60
        return statsManager;
61
    }
62

    
63
    public void setStatsManager(StatsManager statsManager) {
64
        this.statsManager = statsManager;
65
    }
66
}
(5-5/8)