Skip to content
Snippets Groups Projects
Commit 22392731 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Used generic JobInfo objects instead of Transfer objects in job_info column

parent 47342b33
No related branches found
No related tags found
No related merge requests found
Pipeline #968 passed
......@@ -25,11 +25,14 @@ import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Repository
public class JobDAO {
private static final Logger LOG = LoggerFactory.getLogger(JobDAO.class);
private static final ObjectMapper MAPPER = new ObjectMapper();
private final JdbcTemplate jdbcTemplate;
......@@ -41,21 +44,19 @@ public class JobDAO {
public void createJob(JobSummary jobSummary) {
Object jobPayload = getJobPayload(jobSummary);
String sql = "INSERT INTO job(job_id, owner_id, job_type, phase, job_info) VALUES (?, ?, ?, ?, ?)";
jdbcTemplate.update(sql, ps -> {
int i = 0;
ps.setString(++i, jobSummary.getJobId());
ps.setString(++i, jobSummary.getOwnerId());
ps.setObject(++i, getJobType(jobPayload), Types.OTHER);
ps.setObject(++i, getJobType(jobSummary), Types.OTHER);
ps.setObject(++i, jobSummary.getPhase().value(), Types.OTHER);
ps.setObject(++i, toJson(jobPayload), Types.OTHER);
ps.setObject(++i, toJson(jobSummary.getJobInfo()), Types.OTHER);
});
}
private Object getJobPayload(JobSummary jobSummary) {
private String getJobType(JobSummary jobSummary) {
List<Object> payload = jobSummary.getJobInfo().getAny();
if (payload.isEmpty()) {
......@@ -65,10 +66,7 @@ public class JobDAO {
throw new UnsupportedOperationException("JobInfo as list not supported");
}
return payload.get(0);
}
private String getJobType(Object jobPayload) {
Object jobPayload = payload.get(0);
if (jobPayload instanceof Transfer) {
Transfer transfer = (Transfer) jobPayload;
......@@ -102,14 +100,7 @@ public class JobDAO {
jobSummary.setJobId(rs.getString("job_id"));
jobSummary.setOwnerId(rs.getString("owner_id"));
jobSummary.setPhase(ExecutionPhase.fromValue(rs.getString("phase")));
String jobType = rs.getString("job_type");
Object jobPayload = getJobPayload(jobType, rs.getString("job_info"));
JobSummary.JobInfo jobInfo = new JobSummary.JobInfo();
jobInfo.getAny().add(jobPayload);
jobSummary.setJobInfo(jobInfo);
jobSummary.setJobInfo(getJobPayload(rs.getString("job_info")));
jobSummary.setResults(getResults(rs.getString("results")));
return jobSummary;
......@@ -215,10 +206,9 @@ public class JobDAO {
return sjd;
}
private Object getJobPayload(String jobType, String json) {
private JobSummary.JobInfo getJobPayload(String json) {
try {
// TODO: switch on jobType
return MAPPER.readValue(json, Transfer.class);
return MAPPER.readValue(json, JobSummary.JobInfo.class);
} catch (JsonProcessingException ex) {
throw new RuntimeException(ex);
}
......@@ -256,8 +246,7 @@ public class JobDAO {
}
}
public static XMLGregorianCalendar toXMLGregorianCalendar(Timestamp t)
{
public static XMLGregorianCalendar toXMLGregorianCalendar(Timestamp t) {
XMLGregorianCalendar cal = null;
try {
cal = DatatypeFactory.newInstance().newXMLGregorianCalendar();
......@@ -273,7 +262,7 @@ public class JobDAO {
cal.setFractionalSecond(new BigDecimal("0." + ldt.getNano()));
} catch (Exception e) {
e.printStackTrace();
LOG.error("Error while generating XMLGregorianCalendar", e);
}
return cal;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment