Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fenix 3

Fenix 3

Eb987f4f2b2d43faa8b3b5a377713913?s=128

João Carvalho

May 08, 2014
Tweet

Transcript

  1. FenixEdu 3 What changed, and why you should care João

    Carvalho May 2014
  2. What’s new in FenixEdu 3?

  3. Bennu 3 Groups Portal Management/Monitoring goodies Bootstrap process standardisation Renderers

    4 Extracted Spaces, Parking and ID Cards Rewritten CMS Cleanup
  4. Great impact in daily development

  5. Bennu 3

  6. Groups

  7. In the beginning…

  8. Fenix Groups

  9. POJOs with logic

  10. None
  11. Bennu 2

  12. Persistent Groups

  13. Bennu 3 Groups

  14. Bennu 3 Groups Best of both worlds POJO logic Persistent

    serialisation Feels like a Fenix Group, behaves like a Bennu Group POJOs on the API, persistent under the hood User oriented
  15. Portal

  16. None
  17. Bennu Portal

  18. Bennu Portal UI Integration Framework Well-defined functionality model for menu

    rendering Declarative functionalities Access Control Dynamic theming support Both server-side and client-side injection Underlying frameworks need only to present the body Semantic URLs (Immutable)
  19. MenuContainer MenuItem MenuFunctionality 1 * Portal Configuration

  20. None
  21. None
  22. None
  23. None
  24. None
  25. Monitoring Tools

  26. Domain Browser

  27. None
  28. None
  29. System Info Panel

  30. None
  31. Health checks

  32. None
  33. None
  34. Loggers

  35. None
  36. Bootstrap

  37. None
  38. None
  39. None
  40. None
  41. Renderers 4

  42. Renderers 4 No more web.xml servlet declarations! Fully compliant Portal

    Backend Removed Contexts and ContextBaseAction Declarative functionality detection Removed ContextPath injector! No need for tiles! @Forward can be configured even if tiles is not used
  43. Renderers 4 Removed hacks to support Faces pages Checksum Rewriter

    Improvements Now only runs for Struts pages Now accepts empty <img> and <a> tags Removed *-mapped filters and request/response wrappers Improved logging across the Framework Removed RenderersPlugin EL is now enabled!
  44. Example

  45. @StrutsFunctionality(app = StudentViewApp.class, path = "time-table", titleKey = "link.my.timetable") @Mapping(module

    = "student", path = "/studentTimeTable") @Forwards(@Forward(name = "showTimeTable", path = “(…)/classTimeTable.jsp”)) public class ViewStudentTimeTable extends FenixDispatchAction { ! @EntryPoint public ActionForward prepare(ActionMapping mapping, (…)) { return mapping.findForward("showTimeTable"); } ! public ActionForward forwardToShowTimeTable((…)) { PortalLayoutInjector.skipLayoutOn(request); return mapping.findForward("showTimeTable"); } !
  46. ! @StrutsApplication(bundle = "TitlesResources", path = "student", titleKey = "private.student",

    accessGroup = “role(STUDENT)”, hint = “Student") @Mapping(module = "student", path = "/showStudentPortal") @Forwards(@Forward(name = "studentPortal", path = "/student/main_bd.jsp")) public class ShowStudentPortalDA extends Action { } ! @Mapping(module = "student", path = "/registration", functionality = ViewStudentTimeTable.class) public class RegistrationDAForStudent extends RegistrationDA { } @StrutsApplication(path = "consult", titleKey = "consult", bundle = "StudentResources", accessGroup = “role(STUDENT)”, hint = "Student") public static class StudentViewApp { }
  47. Expression Language + JSTL <logic:present name="LOGGED_USER_ATTRIBUTE" property="person.homepage"> <logic:present name="LOGGED_USER_ATTRIBUTE" property="person.homepage.activated">

    <logic:equal name="LOGGED_USER_ATTRIBUTE" property="person.homepage.activated" value="true"> <p> <bean:write name="LOGGED_USER_ATTRIBUTE" property=“person.homepage.fullPath"/>. </p> </logic:equal> </logic:present> </logic:present> <c:if test=“${LOGGED_USER_ATTRIBUTE.person.homepage.activated}”> <p> ${LOGGED_USER_ATTRIBUTE.person.homepage.fullPath} </p> </c:if> <li class=“${something.name == ‘xpto’ ? ‘active’ : ‘’}”> (…) </li>
  48. Bennu Spring 1.0.0

  49. Small integration layer

  50. FenixEdu 3

  51. FenixEdu 3 Upgrade to Bennu 3 / Renderers 4 Tiles

    removal (except from public pages) CMS simplification Parking / IDCards / Spaces extraction Removal of many deprecated functionalities Improved error handling, better error messages
  52. JSF + Portal

  53. JSF + Portal @StrutsFunctionality(app = StudentViewApp.class, path = "calendar", titleKey

    = "link.title.calendar") @Mapping(path = "/studentCalendar", module = "student") public class ViewStudentCalendar extends FacesEntryPoint { ! } /student/studentCalendar.{jsp,faces} <fp:select actionClass="net.sourceforge.fenixedu.presentationTier.Action.student.ViewStudentCalendar" />
  54. Deletions The “Content” superclass and all related domain/controllers Support requests,

    Library Cards, Seminaries, TSD, Micro-Payments, Cron, FAQs, New Tests, DSpace, Pending Requests, XFire (SOAP), GWT, DomainBrowser Unified the several “application url” properties into a single one Manager/Operator duplication Most of the Research Portal Language (!)
  55. FenixEdu 3 What changed, and why you should care João

    Carvalho May 2014