Project

General

Profile

« Previous | Next » 

Revision 38937

fixed import, better logging, return number of downloaded items as 'total'

View differences:

modules/dnet-download-service/trunk/src/main/java/eu/dnetlib/data/download/DownloadAction.java
1 1
package eu.dnetlib.data.download;
2 2

  
3
import java.lang.reflect.Type;
4 3
import java.util.List;
5 4

  
6 5
import javax.annotation.Resource;
......
9 8
import org.apache.commons.logging.Log;
10 9
import org.apache.commons.logging.LogFactory;
11 10

  
12
import com.google.common.reflect.TypeToken;
13 11
import com.google.gson.Gson;
12
import com.google.gson.reflect.TypeToken;
14 13

  
15 14
import eu.dnetlib.data.download.rmi.DownloadServiceActions;
16 15
import eu.dnetlib.data.download.rmi.DownloadServiceException;
......
25 24
	private static final Log log = LogFactory.getLog(DownloadAction.class);
26 25

  
27 26
	@Resource
28
	DownloadServiceFeeder downloadServiceFeeder;
27
	private DownloadServiceFeeder downloadServiceFeeder;
29 28

  
30 29
	private static String DEFAULT_NUMBER_OF_THREAD = "5";
31 30

  
32
	private Type typeToken = new TypeToken<List<String>>() {
33
		/**
34
		 *
35
		 */
36
		private static final long serialVersionUID = 5683238626707746063L;
37
	}.getType();
38

  
39 31
	@Override
40 32
	public void execute(final BlackboardServerHandler handler, final BlackboardJob job) throws Exception {
41 33
		try {
......
47 39
			String numberOfThreads = job.getParameters().get("thread");
48 40
			String basePath = job.getParameters().get("basePath");
49 41
			String regularExpression = job.getParameters().get("regularExpressions");
50
			log.debug("regular Expression: "+regularExpression);
42
			log.debug("regular Expression: " + regularExpression);
51 43

  
52 44
			List<String> expressions = null;
53 45

  
54 46
			if (!StringUtils.isBlank(regularExpression)) {
55
				expressions =new Gson().fromJson(regularExpression, typeToken);
47
				expressions = parseRegexList(regularExpression);
56 48
			}
57 49

  
58
			if ((numberOfThreads == "") || (numberOfThreads == null)) {
50
			if (StringUtils.isBlank(numberOfThreads)) {
59 51
				log.warn("Cannot find numberOfThread, using default value " + DEFAULT_NUMBER_OF_THREAD);
60 52
				numberOfThreads = DEFAULT_NUMBER_OF_THREAD;
61 53
			}
......
63 55
			handler.ongoing(job);
64 56
			DownloadReportMap response = downloadServiceFeeder.download(epr, plugin, objectStoreID, protocol, mimeType, Integer.parseInt(numberOfThreads),
65 57
					basePath, expressions);
66
			job.getParameters().put("downloadReport", "" + response.getTotalDownloaded());
67 58
			if (response.getStatus()) {
68
				log.info(String.format("Completed Download", plugin, protocol, objectStoreID));
59
				log.info(String.format("Completed Download, plugin: %s, protocol: %s, objectStoreID: %s", plugin, protocol, objectStoreID));
60
				job.getParameters().put("total", "" + response.getTotalDownloaded());
69 61
				handler.done(job);
70 62
			} else {
71
				log.error("response is false" + response);
63
				log.error("download response is false" + response);
72 64

  
73
				handler.failed(job, new DownloadServiceException("Opps something bad happen to our download hamsters" + response.toString()));
65
				handler.failed(job, new DownloadServiceException("oops! something bad happen to our download hamsters, response: " + response.toString()));
74 66
			}
75 67
		} catch (Exception e) {
76
			log.error("An error occur while starting download",e);
68
			log.error("An error occur while starting download", e);
77 69
			handler.failed(job, new DownloadServiceException(e));
78 70
		}
79 71
	}
80 72

  
73
	private List<String> parseRegexList(final String regularExpression) {
74
		log.info("parsing regex list: " + regularExpression);
75
		return new Gson().fromJson(regularExpression, new TypeToken<List<String>>() {}.getType());
76
	}
77

  
81 78
}

Also available in: Unified diff