Skip to content

Commit 0de8833

Browse files
author
lbownik
committed
this, final , static imports, manual formatting, removed redundant variables
1 parent ba36d7f commit 0de8833

1 file changed

Lines changed: 55 additions & 49 deletions

File tree

fairchive-webapp/src/main/java/edu/harvard/iq/dataverse/harvest/client/HarvesterServiceBean.java

Lines changed: 55 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package edu.harvard.iq.dataverse.harvest.client;
22

3+
import static java.util.logging.Level.INFO;
4+
import static java.util.logging.Level.SEVERE;
5+
import static java.util.logging.Logger.getLogger;
6+
import static org.apache.commons.lang3.StringUtils.isBlank;
7+
38
import java.io.File;
49
import java.io.IOException;
510
import java.text.SimpleDateFormat;
611
import java.util.Date;
712
import java.util.HashMap;
813
import java.util.Map;
914
import java.util.logging.FileHandler;
10-
import java.util.logging.Level;
1115
import java.util.logging.Logger;
1216
import java.util.logging.SimpleFormatter;
1317

@@ -19,8 +23,6 @@
1923
import javax.persistence.EntityManager;
2024
import javax.persistence.PersistenceContext;
2125

22-
import org.apache.commons.lang3.StringUtils;
23-
2426
import com.google.gson.Gson;
2527

2628
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
@@ -46,7 +48,7 @@ public class HarvesterServiceBean {
4648

4749
private final Map<HarvestType, Harvester<?>> harvesterMap = new HashMap<>();
4850

49-
private static final Logger logger = Logger.getLogger("edu.harvard.iq.dataverse.harvest.client.HarvesterServiceBean");
51+
private static final Logger logger = getLogger(HarvesterServiceBean.class.getName());
5052
private static final SimpleDateFormat logFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH-mm-ss");
5153

5254
public HarvesterServiceBean() {
@@ -57,103 +59,107 @@ public HarvesterServiceBean() {
5759

5860
@PostConstruct
5961
public void postConstruct() {
60-
harvesterMap.put(oaiHarvester.harvestType(), oaiHarvester);
61-
harvesterMap.put(dataciteDOIHarvester.harvestType(), dataciteDOIHarvester);
62+
this.harvesterMap.put(this.oaiHarvester.harvestType(), this.oaiHarvester);
63+
this.harvesterMap.put(this.dataciteDOIHarvester.harvestType(), this.dataciteDOIHarvester);
6264
}
6365

6466
/**
6567
* Called to run an "On Demand" harvest.
6668
*/
6769
@Asynchronous
68-
public void doAsyncHarvest(DataverseRequest dataverseRequest,
69-
HarvestingClient harvestingClient, HarvesterParams params) {
70+
public void doAsyncHarvest(final DataverseRequest request,
71+
final HarvestingClient client, final HarvesterParams params) {
7072

7173
try {
72-
doHarvest(dataverseRequest, harvestingClient.getId(), params);
73-
} catch (Exception e) {
74+
doHarvest(request, client.getId(), params);
75+
} catch (final Exception e) {
7476
logger.info("Caught exception running an asynchronous harvest (dataverse \"" +
75-
harvestingClient.getName() + "\")");
77+
client.getName() + "\")");
7678
}
7779
}
7880

7981
/**
8082
* Run a harvest for an individual harvesting Dataverse
8183
*
82-
* @param dataverseRequest
84+
* @param request
8385
* @param harvestingClientId
8486
* @throws IOException
8587
*/
86-
public <T extends HarvesterParams> void doHarvest(DataverseRequest dataverseRequest,
87-
Long harvestingClientId, HarvesterParams params) throws IOException {
88-
HarvestingClient client = harvestingClientService.find(harvestingClientId);
89-
88+
public <T extends HarvesterParams> void doHarvest(final DataverseRequest request,
89+
final Long harvestingClientId, final HarvesterParams params)
90+
throws IOException {
91+
92+
final HarvestingClient client = harvestingClientService.find(harvestingClientId);
9093
if (client == null) {
9194
throw new IOException("No such harvesting client: id=" + harvestingClientId);
9295
}
9396

94-
Dataverse harvestingDataverse = client.getDataverse();
97+
final Dataverse harvestingDataverse = client.getDataverse();
9598

96-
String logTimestamp = logFormatter.format(new Date());
97-
Logger hdLogger = Logger.getLogger("edu.harvard.iq.dataverse.harvest.client.HarvesterServiceBean." + harvestingDataverse.getAlias() + logTimestamp);
98-
String logFileName = "../logs" + File.separator + "harvest_" + client.getName() + '_' + logTimestamp + ".log";
99-
FileHandler fileHandler = new FileHandler(logFileName);
99+
final String logTimestamp = logFormatter.format(new Date());
100+
Logger hdLogger = getLogger(HarvesterServiceBean.class.getName() + '.' +
101+
harvestingDataverse.getAlias() + logTimestamp);
102+
final String logFileName = "../logs" + File.separator + "harvest_" +
103+
client.getName() + '_' + logTimestamp + ".log";
104+
final FileHandler fileHandler = new FileHandler(logFileName);
100105
fileHandler.setFormatter(new SimpleFormatter());
101106
hdLogger.setUseParentHandlers(false);
102107
hdLogger.addHandler(fileHandler);
103108

104-
Date harvestStartTime = new Date();
105-
106109
try {
107-
boolean harvestingNow = client.isHarvestingNow();
108-
109-
if (harvestingNow) {
110-
hdLogger.log(Level.SEVERE, "Cannot begin harvesting, Dataverse " + harvestingDataverse.getName() + " is currently being harvested.");
110+
if (client.isHarvestingNow()) {
111+
hdLogger.log(SEVERE, "Cannot begin harvesting, Dataverse " +
112+
harvestingDataverse.getName() + " is currently being harvested.");
111113

112114
} else {
113-
harvestingClientService.resetHarvestInProgress(harvestingClientId);
114-
harvestingClientService.setHarvestInProgress(harvestingClientId, harvestStartTime);
115-
116-
Harvester<T> harvester = resolveHarvester(client);
117-
HarvesterResult result = harvester.harvest(dataverseRequest, client, hdLogger, params.getParams(harvester.getParamsClass()));
118-
119-
harvestingClientService.setHarvestSuccess(harvestingClientId, new Date(), result.getNumHarvested(), result.getNumFailed(), result.getNumDeleted());
120-
hdLogger.log(Level.INFO, "COMPLETED HARVEST, server=" + client.getArchiveUrl() + ", metadataPrefix=" + client.getMetadataPrefix());
121-
hdLogger.log(Level.INFO, "Datasets created/updated: " + result.getNumHarvested() + ", datasets deleted: " + result.getNumDeleted() + ", datasets failed: " + result.getNumFailed());
115+
this.harvestingClientService.resetHarvestInProgress(harvestingClientId);
116+
this.harvestingClientService.setHarvestInProgress(harvestingClientId, new Date());
117+
118+
final Harvester<T> harvester = resolveHarvester(client);
119+
final HarvesterResult result = harvester.harvest(request,
120+
client, hdLogger, params.getParams(harvester.getParamsClass()));
121+
122+
this.harvestingClientService.setHarvestSuccess(harvestingClientId,
123+
new Date(), result.getNumHarvested(), result.getNumFailed(),
124+
result.getNumDeleted());
125+
hdLogger.log(INFO, "COMPLETED HARVEST, server=" + client.getArchiveUrl() +
126+
", metadataPrefix=" + client.getMetadataPrefix());
127+
hdLogger.log(INFO, "Datasets created/updated: " + result.getNumHarvested() +
128+
", datasets deleted: " + result.getNumDeleted() +
129+
", datasets failed: " + result.getNumFailed());
122130
}
123131
} catch (Throwable e) {
124-
String message = "Exception processing harvest, server= " +
132+
final String message = "Exception processing harvest, server= " +
125133
client.getHarvestingUrl() + ",format=" +
126134
client.getMetadataPrefix() + ' ' + e.getClass().getName();
127-
hdLogger.log(Level.SEVERE, message, e);
135+
hdLogger.log(SEVERE, message, e);
128136
//logException(e, hdLogger);
129-
hdLogger.log(Level.INFO, "HARVEST NOT COMPLETED DUE TO UNEXPECTED ERROR.");
137+
hdLogger.log(INFO, "HARVEST NOT COMPLETED DUE TO UNEXPECTED ERROR.");
130138
// TODO:
131139
// even though this harvesting run failed, we may have had successfully
132140
// processed some number of datasets, by the time the exception was thrown.
133141
// We should record that number too. And the number of the datasets that
134142
// had failed, that we may have counted. -- L.A. 4.4
135-
harvestingClientService.setHarvestFailure(harvestingClientId, new Date());
143+
this.harvestingClientService.setHarvestFailure(harvestingClientId, new Date());
136144

137145
} finally {
138-
harvestingClientService.resetHarvestInProgress(harvestingClientId);
146+
this.harvestingClientService.resetHarvestInProgress(harvestingClientId);
139147
fileHandler.close();
140148
hdLogger.removeHandler(fileHandler);
141149
}
142150
}
143151

144-
public HarvesterParams parseParams(HarvestingClient client, String paramsJson) {
145-
if (StringUtils.isBlank(paramsJson)) {
146-
return HarvesterParams.empty();
147-
}
148-
149-
return new Gson().fromJson(paramsJson, resolveHarvester(client).getParamsClass());
152+
public HarvesterParams parseParams(final HarvestingClient client, final String paramsJson) {
153+
return isBlank(paramsJson)
154+
? HarvesterParams.empty()
155+
: new Gson().fromJson(paramsJson, resolveHarvester(client).getParamsClass());
150156
}
151157

152158
// -------------------- PRIVATE --------------------
153159

154160
@SuppressWarnings("unchecked")
155-
private <T extends HarvesterParams> Harvester<T> resolveHarvester(HarvestingClient client) {
156-
Harvester<?> harvester = harvesterMap.get(client.getHarvestType());
161+
private <T extends HarvesterParams> Harvester<T> resolveHarvester(final HarvestingClient client) {
162+
final Harvester<?> harvester = this.harvesterMap.get(client.getHarvestType());
157163
if (harvester == null) {
158164
throw new IllegalStateException("Unsupported harvest type");
159165
}

0 commit comments

Comments
 (0)