Loading src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java +29 −40 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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()) { Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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(); Loading @@ -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; Loading Loading
src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java +29 −40 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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()) { Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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(); Loading @@ -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; Loading