/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/CoursesService.java |
---|
260,6 → 260,7 |
InputStream stream; |
IRepositoryFile repositoryFile = repositoryService.load(c.getStudiesPlan(),userSession); |
long lastVersion = repositoryService.loadView(c.getStudiesPlan()).getLastVersion().getId(); |
stream = repositoryFile.getInput(); |
try { |
281,6 → 282,7 |
} catch (JAXBException e) { |
logger.error(e,e); |
System.out.print("check XML for possible errors for repositoryStream:" + c.getStudiesPlan() + " file version: " + lastVersion); |
throw e; |
} catch (TransformationException e) { |
logger.error(e, e); |
563,11 → 565,11 |
* @return |
* @throws JSONException |
*/ |
public String getCourseStudiesPlanXml(String code) throws JSONException { |
public String getCourseStudiesPlanXml(String code,String renew) throws JSONException { |
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(code); |
if(course.getStudiesPlans() == null || course.getStudiesPlans().size() == 0) |
if(renew != null || course.getStudiesPlans() == null || course.getStudiesPlans().size() == 0) |
{ |
logger.info("status JSON NOT EXIST FOR STUDIES PLAN IN THIS COURSE, will generate"); |
UserSession userSession = DomainObjectFactory.createUserSessionImpl(); |
604,7 → 606,7 |
* @throws JAXBException |
*/ |
public String sincronizeCoursesStudiesPlans(String systemUrl,boolean setActive) throws IOException, JSONException, TransformationException, JAXBException { |
public String sincronizeCoursesStudiesPlans(String systemUrl,boolean setActive,UserSession sess) throws IOException, JSONException, TransformationException, JAXBException { |
StringBuilder log = new StringBuilder(); |
URL url = new URL(systemUrl + "/wsjson/api?service=listCourses"); |
614,27 → 616,35 |
JSONArray courses = obj.getJSONArray("courses"); |
for(int i = 0; i < courses.length();i++) |
{ |
JSONObject course = courses.getJSONObject(i); |
String code = course.getString("code"); |
Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(code); |
if(c == null) |
{ |
String msg = "SKIPING - Course " + code + " " + course.getString("name") + " does not exist in this system"; |
log.append("<info>" + msg+"</info>"); |
logger.info(msg); |
} |
else |
{ |
String msg = "UPDATING - Course " + code + " " + course.getString("name") + " exist in this system"; |
log.append("<info>" + msg+"</info>"); |
logger.info(msg); |
String code = ""; |
try{ |
JSONObject course = courses.getJSONObject(i); |
code = course.getString("code"); |
Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(code); |
if(c == null) |
{ |
String msg = "SKIPING - Course " + code + " " + course.getString("name") + " does not exist in this system"; |
log.append("<info>" + msg+"</info>"); |
logger.info(msg); |
} |
else |
{ |
String msg = "UPDATING - Course " + code + " " + course.getString("name") + " exist in this system"; |
log.append("<info>" + msg+"</info>"); |
logger.info(msg); |
//#############UPDATING STUDIES PLAN |
updateStudiesPlanFromRemoteSystem(systemUrl, setActive, log, course, code, c); |
//#############UPDATING STUDIES PLAN |
updateStudiesPlanFromRemoteSystem(systemUrl, setActive, log, course, code, c); |
//#############UPDATING Course Comission Members |
updateCourseComissionMembers(systemUrl, code, c); |
//#############UPDATING Course Comission Members |
updateCourseComissionMembers(systemUrl, code, c); |
} |
} |
catch(Throwable e) |
{ |
logger.error("UPDATE COURSE: " + i + " code: " + code + " FAILED"); |
logger.error(e,e); |
} |
} |
return log.toString(); |
719,7 → 729,7 |
private void updateStudiesPlanFromRemoteSystem(String systemUrl, boolean setActive, StringBuilder log, JSONObject course, String code, Course c) throws IOException, JSONException, TransformationException, JAXBException { |
String msg; |
InputStream stream = new URL(systemUrl + "/wsjson/api?service=getStudiesPlanXml&code=" + code).openStream(); |
InputStream stream = new URL(systemUrl + "/wsjson/api?service=getStudiesPlanXml&code=" + code + "&renew=true").openStream(); |
String studiesPlan = StreamsUtils.readString(stream); |
int len = studiesPlan.length(); |
if(studiesPlan == null || studiesPlan.trim().length() == 0 || studiesPlan.contains("<error>")) |
753,7 → 763,7 |
stream = new URL(systemUrl + "/wsjson/api?service=getStudiesPlanXml&code=" + code).openStream(); |
UserSession userSession = DomainObjectFactory.createUserSessionImpl(); |
userSession.setUser(DaoFactory.getUserDaoImpl().load(new Long(1))); |
new CoursesService().uploadStudiesPlan(stream, "curso_" + code + ".xml", len,"appication/xml", userSession,c,true,"http://www.estgp.pt"); |
new CoursesService().uploadStudiesPlan(stream, "curso_" + code + ".xml", len,"appication/xml", userSession,c,true,systemUrl); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/json/JsonHandler.java |
---|
1,15 → 1,16 |
package pt.estgp.estgweb.web.json; |
import com.owlike.genson.TransformationException; |
import jomm.dao.impl.AbstractDao; |
import org.apache.log4j.Logger; |
import org.json.JSONArray; |
import org.json.JSONException; |
import org.json.JSONObject; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.services.courses.CoursesService; |
import pt.estgp.estgweb.services.courses.xsd.Curso; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServlet; |
70,11 → 71,16 |
response.getWriter().print(e); |
response.getWriter().print("See log for details:"); |
logger.error(e, e); |
} catch (Throwable throwable) { |
response.getWriter().print(throwable); |
response.getWriter().print("See log for details:"); |
logger.error(throwable, throwable); |
} |
} |
private void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, TransformationException, JAXBException, JSONException { |
private void processRequest(HttpServletRequest request, HttpServletResponse response) throws Throwable { |
IServiceManager sm = ServiceManager.getInstance(); |
String service = request.getParameter("service"); |
if(service == null) |
85,29 → 91,23 |
{ |
String school = request.getParameter("school"); |
String type = request.getParameter("type"); |
AbstractDao.getCurrentSession().beginTransaction(); |
JSONObject obj = new CoursesService().getActiveCoursesForJsonApi(school,type); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
JSONObject obj = (JSONObject) sm.execute(RequestUtils.getRequester(request, response), "GetActiveCoursesForJsonApi", new Object[]{school, type}); |
response.getWriter().write(obj.toString()); |
} |
else if(service.equals("getCourse") && request.getParameter("code") != null) |
{ |
String code = request.getParameter("code"); |
AbstractDao.getCurrentSession().beginTransaction(); |
JSONObject obj = new CoursesService().getCourseDetailForJsonApi(code); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
JSONObject obj = (JSONObject) sm.execute(RequestUtils.getRequester(request, response), "GetCourseDetailForJsonApi", new Object[]{code}); |
response.getWriter().write(obj.toString()); |
} |
else if(service.equals("getStudiesPlanXml") && request.getParameter("code") != null) |
{ |
String code = request.getParameter("code"); |
String renew = request.getParameter("renew"); |
response.setContentType("application/xml"); |
response.setCharacterEncoding("UTF-8"); |
AbstractDao.getCurrentSession().beginTransaction(); |
String xml = new CoursesService().getCourseStudiesPlanXml(code); |
response.setCharacterEncoding("UTF-8"); |
String xml = (String) sm.execute(RequestUtils.getRequester(request, response), "GetCourseStudiesPlanXml", new Object[]{code,renew}); |
JAXBContext jc = JAXBContext.newInstance(Curso.class); |
Unmarshaller unmarshaller = jc.createUnmarshaller(); |
Curso curso = (Curso) unmarshaller.unmarshal(new StringReader(xml)); |
115,8 → 115,6 |
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); |
marshaller.marshal(curso, response.getOutputStream()); |
//SETTING XML in COURSE STUDIES PLAN |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
else if(service.equals("syncSystemPlans") && request.getParameter("systemUrl") != null && request.getParameter("setActive") != null) |
{ |
127,9 → 125,7 |
String systemUrl = request.getParameter("systemUrl"); |
boolean setActive = Boolean.parseBoolean(request.getParameter("setActive")); |
response.setContentType("application/xml"); |
AbstractDao.getCurrentSession().beginTransaction(); |
String log = new CoursesService().sincronizeCoursesStudiesPlans(systemUrl,setActive); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
String log = (String) sm.execute(RequestUtils.getRequester(request, response), "SincronizeCoursesStudiesPlans", new Object[]{systemUrl,setActive}); |
response.getWriter().write("<response><status>OK</status><log>" + log + "</log></response>"); |
} |
else |