Rev 1296 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
110 | susana | 1 | package pt.estgp.estgweb.services.sigesimports; |
2 | |||
165 | jmachado | 3 | import jomm.dao.impl.AbstractDao; |
4 | import org.apache.log4j.Logger; |
||
5 | import pt.estgp.estgweb.Globals; |
||
6 | import pt.estgp.estgweb.domain.Course; |
||
7 | import pt.estgp.estgweb.domain.CourseUnit; |
||
1277 | jmachado | 8 | import pt.estgp.estgweb.domain.CourseUnitImpl; |
165 | jmachado | 9 | import pt.estgp.estgweb.domain.DomainObjectFactory; |
995 | jmachado | 10 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
214 | jmachado | 11 | import pt.estgp.estgweb.domain.views.CourseView; |
995 | jmachado | 12 | import pt.estgp.estgweb.services.courses.CoursesService; |
13 | import pt.estgp.estgweb.services.email.SendEmailService; |
||
165 | jmachado | 14 | import pt.estgp.estgweb.services.expceptions.ServiceException; |
995 | jmachado | 15 | import pt.estgp.estgweb.services.jobs.ServiceJob; |
165 | jmachado | 16 | import pt.estgp.estgweb.services.logresults.ILogMessages; |
17 | import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum; |
||
18 | import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage; |
||
19 | import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages; |
||
1296 | jmachado | 20 | import pt.estgp.estgweb.services.sigesimports.oracle.dao.DisciplinaDao; |
21 | import pt.estgp.estgweb.services.sigesimports.oracle.dao.connection.ConnectionManager; |
||
22 | import pt.estgp.estgweb.services.sigesimports.oracle.domain.Disciplina; |
||
995 | jmachado | 23 | import pt.estgp.estgweb.utils.ConfigProperties; |
863 | jmachado | 24 | import pt.estgp.estgweb.utils.Email; |
110 | susana | 25 | import pt.utl.ist.berserk.logic.serviceManager.IService; |
26 | |||
1296 | jmachado | 27 | import java.sql.Connection; |
28 | import java.sql.SQLException; |
||
863 | jmachado | 29 | import java.util.*; |
110 | susana | 30 | |
31 | /** |
||
32 | * @author Jorge Machado |
||
33 | */ |
||
995 | jmachado | 34 | public class ImportCourseService extends ServiceJob implements IService |
163 | jmachado | 35 | { |
110 | susana | 36 | private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(ImportCourseService.class); |
37 | |||
214 | jmachado | 38 | private CoursesService coursesService = new CoursesService(); |
39 | |||
995 | jmachado | 40 | int newUnits = 0; |
41 | int newCourses = 0; |
||
1277 | jmachado | 42 | int unitsRepeated = 0; |
1296 | jmachado | 43 | int unitsAtualizadas = 0; |
165 | jmachado | 44 | public ILogMessages run(1.5.0/docs/api/java/lang/String.html">String year) throws ServiceException |
110 | susana | 45 | { |
995 | jmachado | 46 | 1.5.0/docs/api/java/lang/String.html">String msgS = "STARTING COURSES IMPORT SERVICE FOR YEAR: " + year; |
47 | serviceLogInfo(msgS); |
||
48 | logger.info(msgS); |
||
110 | susana | 49 | |
995 | jmachado | 50 | newUnits = 0; |
51 | newCourses = 0; |
||
1277 | jmachado | 52 | unitsRepeated = 0; |
1296 | jmachado | 53 | unitsAtualizadas = 0; |
995 | jmachado | 54 | |
165 | jmachado | 55 | DefaultLogMessages logMessages = new DefaultLogMessages(); |
56 | try |
||
110 | susana | 57 | { |
1017 | jmachado | 58 | logMessages.addMessage(new DefaultLogMessage("import.semestre.separated", LogMessageTypeEnum.INFO, "instituicao " + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode())); |
995 | jmachado | 59 | serviceLogInfo(logMessages.getLastMessage()); |
110 | susana | 60 | |
165 | jmachado | 61 | HashMap<String, Disciplina> disciplinasMap = new HashMap<String, Disciplina>(); |
62 | HashMap<String, Disciplina> disciplinasMapS1 = new HashMap<String, Disciplina>(); |
||
63 | HashMap<String, Disciplina> disciplinasMapS2 = new HashMap<String, Disciplina>(); |
||
727 | jmachado | 64 | HashMap<String, Disciplina> disciplinasMapA = new HashMap<String, Disciplina>(); |
1040 | jmachado | 65 | HashMap<String, Disciplina> disciplinasMapT1 = new HashMap<String, Disciplina>(); |
66 | HashMap<String, Disciplina> disciplinasMapT2 = new HashMap<String, Disciplina>(); |
||
67 | HashMap<String, Disciplina> disciplinasMapT3 = new HashMap<String, Disciplina>(); |
||
68 | HashMap<String, Disciplina> disciplinasMapT4 = new HashMap<String, Disciplina>(); |
||
345 | jmachado | 69 | HashMap<String, Disciplina> cursosMap = new HashMap<String, Disciplina>(); |
163 | jmachado | 70 | |
165 | jmachado | 71 | /** |
72 | * Build Course Units Maps |
||
73 | */ |
||
1296 | jmachado | 74 | /*SiGesWEB service; |
1017 | jmachado | 75 | String WSDL = DaoFactory.getConfigurationDaoImpl().getSigesWebServicesWsdl(); |
165 | jmachado | 76 | try |
77 | { |
||
1017 | jmachado | 78 | serviceLogInfo("STARTING WEB SERVICE AT " + WSDL); |
79 | service = new SiGesWEB(new URL(WSDL), new QName(Globals.SIGES_WEBSERVICE_TARGET_NAMESPACE, "SiGesWEB")); |
||
165 | jmachado | 80 | } |
81 | catch (MalformedURLException e) |
||
82 | { |
||
83 | logger.fatal(e, e); |
||
84 | logMessages.addMessage(new DefaultLogMessage("import.error",e.toString(),"erro na configuracao do WEB Service", LogMessageTypeEnum.INFO)); |
||
995 | jmachado | 85 | serviceLogError(logMessages.getLastMessage(), e); |
165 | jmachado | 86 | return logMessages; |
87 | } |
||
1296 | jmachado | 88 | */ |
89 | DisciplinaDao service = DisciplinaDao.getInstance(); |
||
90 | 1.5.0/docs/api/java/sql/Connection.html">Connection conn = ConnectionManager.openConnection(); |
||
163 | jmachado | 91 | |
1296 | jmachado | 92 | importUnitsSemestre(service,conn, "S1", year, disciplinasMap, disciplinasMapS1, cursosMap, logMessages); |
93 | importUnitsSemestre(service,conn, "S2", year, disciplinasMap, disciplinasMapS2, cursosMap, logMessages); |
||
94 | importUnitsSemestre(service,conn, "A", year, disciplinasMap, disciplinasMapA, cursosMap, logMessages); |
||
95 | importUnitsSemestre(service,conn, "T1", year, disciplinasMap, disciplinasMapT1, cursosMap, logMessages); |
||
96 | importUnitsSemestre(service,conn, "T2", year, disciplinasMap, disciplinasMapT2, cursosMap, logMessages); |
||
97 | importUnitsSemestre(service,conn, "T3", year, disciplinasMap, disciplinasMapT3, cursosMap, logMessages); |
||
98 | importUnitsSemestre(service,conn, "T4", year, disciplinasMap, disciplinasMapT4, cursosMap, logMessages); |
||
1115 | jmachado | 99 | |
165 | jmachado | 100 | /** |
101 | * Import Courses |
||
102 | */ |
||
103 | logMessages.addMessage(new DefaultLogMessage("import.semestre.updating.courses", LogMessageTypeEnum.INFO)); |
||
995 | jmachado | 104 | serviceLogInfo("updating courses"); |
165 | jmachado | 105 | logger.info("updating courses"); |
345 | jmachado | 106 | Set<Map.Entry<String, Disciplina>> set2 = cursosMap.entrySet(); |
107 | for (1.5.0/docs/api/java/util/Map.html">Map.Entry<String, Disciplina> entry : set2) |
||
165 | jmachado | 108 | { |
109 | Disciplina d = entry.getValue(); |
||
214 | jmachado | 110 | CourseView c = coursesService.loadCourseByCode("" + d.getCodigoCurso().intValue(),false); |
111 | |||
112 | // Course c = DaoFactory.getCourseDaoImpl().findCourseByCode("" + d.getCodigoCurso()); |
||
219 | jmachado | 113 | if (c == null) |
114 | { |
||
115 | c = new CourseView(); |
||
995 | jmachado | 116 | newCourses++; |
117 | serviceLogInfo("New Course Found: (" + d.getCodigoCurso() + ") " + d.getNomeCurso()); |
||
214 | jmachado | 118 | // DaoFactory.getCourseDaoImpl().save(c); |
219 | jmachado | 119 | } |
165 | jmachado | 120 | c.setName(d.getNomeCurso()); |
1189 | jmachado | 121 | if(d.getGrauCurso() == null || d.getGrauCurso().trim().length() == 0) |
122 | d.setGrauCurso("unknown"); |
||
409 | jmachado | 123 | 1.5.0/docs/api/java/lang/String.html">String grauBaco = ConfigProperties.getProperty("siges.degree."+d.getGrauCurso()); |
1189 | jmachado | 124 | |
125 | c.setDegree(grauBaco); |
||
165 | jmachado | 126 | c.setCode("" + d.getCodigoCurso().intValue()); |
206 | jmachado | 127 | c.setImportYear(year); |
165 | jmachado | 128 | c.setInstitutionalCode("" + d.getCodigoInstituicao().intValue()); |
214 | jmachado | 129 | coursesService.submitCourse(c,null,null,0,null,null); |
165 | jmachado | 130 | } |
163 | jmachado | 131 | |
165 | jmachado | 132 | /** |
133 | * Update Course Units |
||
134 | */ |
||
1296 | jmachado | 135 | updateCourseUnits(disciplinasMapS1, "S1",logMessages,year,service,conn); |
136 | updateCourseUnits(disciplinasMapS2, "S2",logMessages,year,service,conn); |
||
137 | updateCourseUnits(disciplinasMapA, "A",logMessages,year,service,conn); |
||
138 | updateCourseUnits(disciplinasMapT1, "T1",logMessages,year,service,conn); |
||
139 | updateCourseUnits(disciplinasMapT2, "T2",logMessages,year,service,conn); |
||
140 | updateCourseUnits(disciplinasMapT3, "T3",logMessages,year,service,conn); |
||
141 | updateCourseUnits(disciplinasMapT4, "T4",logMessages,year,service,conn); |
||
995 | jmachado | 142 | |
1296 | jmachado | 143 | conn.close(); |
144 | |||
995 | jmachado | 145 | serviceLogInfo("######################################"); |
146 | serviceLogInfo("######################################"); |
||
147 | serviceLogInfo("#Courses Imported:" + cursosMap.size()); |
||
148 | serviceLogInfo("#Units Imported S1:" + disciplinasMapS1.size()); |
||
149 | serviceLogInfo("#Units Imported S2:" + disciplinasMapS2.size()); |
||
150 | serviceLogInfo("#Units Imported A:" + disciplinasMapA.size()); |
||
1040 | jmachado | 151 | serviceLogInfo("#Units Imported T1:" + disciplinasMapT1.size()); |
152 | serviceLogInfo("#Units Imported T2:" + disciplinasMapT2.size()); |
||
153 | serviceLogInfo("#Units Imported T3:" + disciplinasMapT3.size()); |
||
154 | serviceLogInfo("#Units Imported T4:" + disciplinasMapT4.size()); |
||
995 | jmachado | 155 | serviceLogInfo("#New Courses Found:" + newCourses); |
156 | serviceLogInfo("#New Units Found:" + newUnits); |
||
1296 | jmachado | 157 | serviceLogInfo("#Regular Updated Units:" + unitsAtualizadas); |
158 | serviceLogInfo("#Unidades Repetidas (A mesma para o conjunto (Codigo,Curso,Ano,Semestre)):" + unitsRepeated); |
||
995 | jmachado | 159 | |
1025 | jmachado | 160 | logger.info("######################################"); |
161 | logger.info("######################################"); |
||
162 | logger.info("#Courses Imported:" + cursosMap.size()); |
||
163 | logger.info("#Units Imported S1:" + disciplinasMapS1.size()); |
||
164 | logger.info("#Units Imported S2:" + disciplinasMapS2.size()); |
||
165 | logger.info("#Units Imported A:" + disciplinasMapA.size()); |
||
1040 | jmachado | 166 | logger.info("#Units Imported T1:" + disciplinasMapT1.size()); |
167 | logger.info("#Units Imported T2:" + disciplinasMapT2.size()); |
||
168 | logger.info("#Units Imported T3:" + disciplinasMapT3.size()); |
||
169 | logger.info("#Units Imported T4:" + disciplinasMapT4.size()); |
||
1025 | jmachado | 170 | logger.info("#New Courses Found:" + newCourses); |
171 | logger.info("#New Units Found:" + newUnits); |
||
1296 | jmachado | 172 | logger.info("#Regular Updated Units:" + unitsAtualizadas); |
173 | logger.info("#Unidades Repetidas (A mesma para o conjunto (Codigo,Curso,Ano,Semestre)):" + unitsRepeated); |
||
995 | jmachado | 174 | |
1025 | jmachado | 175 | |
110 | susana | 176 | } |
165 | jmachado | 177 | catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e) |
110 | susana | 178 | { |
358 | jmachado | 179 | logger.error(e,e); |
180 | logMessages.addMessage(new DefaultLogMessage("import.error",e.toString(), "see log for details", LogMessageTypeEnum.ERROR)); |
||
995 | jmachado | 181 | serviceLogError(logMessages.getLastMessage(), e); |
863 | jmachado | 182 | 1.5.0/docs/api/java/lang/String.html">String cause = e.getCause() == null ? "" : e.getCause().toString(); |
1000 | jmachado | 183 | sendNotificationAdmin("Erro na importacao de sumarios",cause); |
110 | susana | 184 | } |
358 | jmachado | 185 | logger.info("terminating course import"); |
995 | jmachado | 186 | serviceLogInfo("terminating course import"); |
165 | jmachado | 187 | logMessages.addMessage(new DefaultLogMessage("import.course.terminating", LogMessageTypeEnum.INFO)); |
995 | jmachado | 188 | setProgress(100); |
165 | jmachado | 189 | return logMessages; |
190 | } |
||
110 | susana | 191 | |
1000 | jmachado | 192 | /** |
193 | * Envio de Notificação aos operadores do CI |
||
194 | * @param subject |
||
195 | * @param cause |
||
196 | */ |
||
197 | private void sendNotificationAdmin(1.5.0/docs/api/java/lang/String.html">String subject, 1.5.0/docs/api/java/lang/String.html">String cause) |
||
198 | { |
||
199 | |||
1024 | jmachado | 200 | |
1000 | jmachado | 201 | List<String> emails = ConfigProperties.getListValues("admin.email"); |
202 | for(1.5.0/docs/api/java/lang/String.html">String email:emails) |
||
203 | { |
||
204 | serviceLogWarn(">>>>>>>>ENVIANDO NOTIFICACAO A ADMINISTRACAO: " + email); |
||
205 | logger.warn(">>>>>>>>ENVIANDO NOTIFICACAO A ADMINISTRACAO: " + email); |
||
206 | } |
||
207 | List<String> arguments = new ArrayList<String>(); |
||
208 | arguments.add(cause.replace("\n","<br/>")); |
||
209 | Email email = new Email(subject,emails,Globals.SYSTEM_EMAIL_BOX,"messageToAdmin_pt.txt",arguments); |
||
1029 | jmachado | 210 | email.setHtml(true); |
1000 | jmachado | 211 | try { |
212 | new SendEmailService().sendEmail(email); |
||
213 | } catch (ServiceException e) { |
||
214 | e.printStackTrace(); |
||
215 | } |
||
216 | |||
217 | } |
||
218 | |||
1296 | jmachado | 219 | private void importUnitsSemestre(DisciplinaDao service, |
220 | 1.5.0/docs/api/java/sql/Connection.html">Connection conn, |
||
165 | jmachado | 221 | 1.5.0/docs/api/java/lang/String.html">String semestre, |
222 | 1.5.0/docs/api/java/lang/String.html">String year, |
||
223 | HashMap<String, Disciplina> disciplinasMap, |
||
224 | HashMap<String, Disciplina> disciplinasMapSemestre, |
||
345 | jmachado | 225 | HashMap<String, Disciplina> cursosMap, |
1296 | jmachado | 226 | DefaultLogMessages logMessages) throws 1.5.0/docs/api/java/sql/SQLException.html">SQLException { |
1115 | jmachado | 227 | |
228 | |||
165 | jmachado | 229 | logMessages.addMessage(new DefaultLogMessage("import.semestre.course.units." + semestre, LogMessageTypeEnum.INFO)); |
995 | jmachado | 230 | serviceLogInfo("importing " + semestre + " course units"); |
165 | jmachado | 231 | logger.info("importing " + semestre + " course units"); |
1296 | jmachado | 232 | List<Disciplina> disciplinas = service.loadDisciplinas(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode(), year, semestre,conn); |
233 | |||
165 | jmachado | 234 | for (Disciplina d : disciplinas) |
110 | susana | 235 | { |
1115 | jmachado | 236 | if (disciplinasMap.get(getDisciplinaUniqueRef(d)) != null) |
165 | jmachado | 237 | { |
238 | logMessages.addMessage(new DefaultLogMessage("import.semestre.repeated." + semestre, "unit: " + d.getCodigo().intValue(), "", LogMessageTypeEnum.WARNING)); |
||
995 | jmachado | 239 | serviceLogWarn("repeated unit in " + semestre + ":" + d.getCodigo().intValue()); |
165 | jmachado | 240 | logger.warn("repeated unit in " + semestre + ":" + d.getCodigo().intValue()); |
241 | } |
||
1115 | jmachado | 242 | disciplinasMap.put(getDisciplinaUniqueRef(d), d); |
243 | disciplinasMapSemestre.put(getDisciplinaUniqueRef(d), d); |
||
345 | jmachado | 244 | cursosMap.put(d.getCodigoCurso().intValue()+":"+year, d); |
110 | susana | 245 | } |
165 | jmachado | 246 | } |
163 | jmachado | 247 | |
1115 | jmachado | 248 | private 1.5.0/docs/api/java/lang/String.html">String getDisciplinaUniqueRef(Disciplina d) |
165 | jmachado | 249 | { |
1296 | jmachado | 250 | return d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":" + d.getCdDuracao(); // + ":" + d.getCdTurma(); |
1115 | jmachado | 251 | } |
252 | |||
1141 | jmachado | 253 | public static final int SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR = ConfigProperties.getIntProperty("siges.codigo.tipo.disciplina.extra.curricular"); |
1296 | jmachado | 254 | private void updateCourseUnits(HashMap<String, Disciplina> disciplinasMapS, 1.5.0/docs/api/java/lang/String.html">String semestre, DefaultLogMessages logMessages, 1.5.0/docs/api/java/lang/String.html">String year,DisciplinaDao service,1.5.0/docs/api/java/sql/Connection.html">Connection conn) |
1115 | jmachado | 255 | { |
165 | jmachado | 256 | logMessages.addMessage(new DefaultLogMessage("import.semestre.updating.course.units." + semestre, LogMessageTypeEnum.INFO)); |
1115 | jmachado | 257 | |
1141 | jmachado | 258 | |
165 | jmachado | 259 | logger.info("updating " + semestre + " course units"); |
995 | jmachado | 260 | serviceLogInfo("updating " + semestre + " course units"); |
165 | jmachado | 261 | Set<Map.Entry<String, Disciplina>> set = disciplinasMapS.entrySet(); |
163 | jmachado | 262 | for (1.5.0/docs/api/java/util/Map.html">Map.Entry<String, Disciplina> entry : set) |
263 | { |
||
264 | Disciplina d = entry.getValue(); |
||
1141 | jmachado | 265 | //TIPO 6 é uma EXTRA CURRICULAR |
1296 | jmachado | 266 | if(ImportStudentsService.isCursoFicticio(d.getCodigoCurso())) |
1115 | jmachado | 267 | { |
1296 | jmachado | 268 | logMessages.addMessage(new DefaultLogMessage("import.error","Ignorando disciplina com codigo de curso ficticio - codigo: " + d.getCodigoCurso(), " see log for details", LogMessageTypeEnum.WARNING)); |
1115 | jmachado | 269 | logger.warn(logMessages.getLastMessage()); |
270 | serviceLogWarn(logMessages.getLastMessage()); |
||
271 | |||
272 | continue; |
||
273 | } |
||
1277 | jmachado | 274 | //CourseUnit c = null; |
275 | List<CourseUnit> cus = null; |
||
276 | |||
277 | cus= DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year); |
||
278 | if(cus != null && cus.size() > 1 ) |
||
750 | jmachado | 279 | { |
1277 | jmachado | 280 | unitsRepeated++; |
1278 | jmachado | 281 | logMessages.addMessage(new DefaultLogMessage("import.warning","Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year, "see log for details, vai atualizar as duas", LogMessageTypeEnum.WARNING)); |
1115 | jmachado | 282 | logger.fatal(logMessages.getLastMessage()); |
283 | serviceLogWarn(logMessages.getLastMessage()); |
||
750 | jmachado | 284 | } |
1296 | jmachado | 285 | else if(cus != null && cus.size() == 1) |
286 | { |
||
287 | unitsAtualizadas++; |
||
288 | 1.5.0/docs/api/java/lang/String.html">String msg = "Regular unit update: " + "(" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year; |
||
289 | logger.info(msg); |
||
290 | serviceLogInfo(msg); |
||
291 | } |
||
1115 | jmachado | 292 | |
1277 | jmachado | 293 | |
294 | if (cus == null || cus.size() == 0) |
||
225 | jmachado | 295 | { |
1277 | jmachado | 296 | CourseUnitImpl c = DomainObjectFactory.createCourseUnitImpl(); |
726 | jmachado | 297 | DaoFactory.getCourseUnitDaoImpl().save(c); |
1230 | jmachado | 298 | logMessages.addMessage(new DefaultLogMessage("import.error", "New Unit Found: (" + d.getCodigo() + ") " + d.getNome() + " - curso (" + d.getNomeCurso() + ") " + d.getNomeCurso() + " turma(" + d.getCdTurma() + ")", "see log for details", LogMessageTypeEnum.INFO)); |
1115 | jmachado | 299 | logger.info(logMessages.getLastMessage()); |
300 | serviceLogInfo(logMessages.getLastMessage()); |
||
995 | jmachado | 301 | newUnits++; |
1277 | jmachado | 302 | cus = new ArrayList<CourseUnit>(); |
303 | cus.add(c); |
||
225 | jmachado | 304 | } |
1115 | jmachado | 305 | //NOVO |
306 | |||
1277 | jmachado | 307 | for(CourseUnit c: cus) |
308 | { |
||
309 | //todo deixa de atualizar c.setCdTurma("" + d.getCdTurma()); |
||
310 | c.setName(d.getNome()); |
||
311 | c.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()); |
||
312 | c.setCode("" + d.getCodigo().intValue()); |
||
313 | c.setCourseCode("" + d.getCodigoCurso()); |
||
314 | c.setCourseName("" + d.getNomeCurso()); |
||
315 | c.setSemestre(semestre); |
||
316 | c.setImportYear(year); |
||
317 | Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode()); |
||
318 | c.setCourse(course); |
||
319 | } |
||
163 | jmachado | 320 | } |
110 | susana | 321 | } |
322 | |||
995 | jmachado | 323 | |
324 | @1.5.0/docs/api/java/lang/Override.html">Override |
||
1070 | jmachado | 325 | protected ILogMessages runJobServiceTask() throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable { |
995 | jmachado | 326 | |
1070 | jmachado | 327 | 1.5.0/docs/api/java/lang/String.html">String importYear = getParametersMap().get(JOB_importYear_KEY).getObject(); |
328 | ILogMessages messages = run(importYear); |
||
329 | return messages; |
||
995 | jmachado | 330 | |
331 | } |
||
332 | |||
333 | |||
163 | jmachado | 334 | public static void main(1.5.0/docs/api/java/lang/String.html">String[] args) throws ServiceException |
335 | { |
||
1123 | jmachado | 336 | 1.5.0/docs/api/java/lang/String.html">String year = DaoFactory.getConfigurationDaoImpl().getImportsDefaultImportYearCreateTransaction(); |
491 | jmachado | 337 | if(args != null && args.length > 0) |
338 | year = args[0]; |
||
119 | fvelez | 339 | AbstractDao.getCurrentSession().beginTransaction(); |
491 | jmachado | 340 | new ImportCourseService().run(year); |
1123 | jmachado | 341 | AbstractDao.getCurrentSession().getTransaction().commit(); |
110 | susana | 342 | } |
343 | |||
344 | |||
345 | } |