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

Fenix 3

Fenix 3

João Carvalho

May 08, 2014

More Decks by João Carvalho

Other Decks in Programming


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

    4 Extracted Spaces, Parking and ID Cards Rewritten CMS Cleanup
  2. 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
  3. 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)
  4. 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
  5. 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!
  6. @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"); } !
  7. ! @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 { }
  8. 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>
  9. 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
  10. 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" />
  11. 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 (!)