Total estimado: 54mins (1min) Start Eclipse-Application (struts-rewriting project as an Eclipse Plugin) from within Eclipse. (7min) In the nested Eclipse, checkout a fresh Fenix copy. (0min) Close the nested Eclipse if memory is short. (5min) Compile the fresh Fenix copy. (1min) Update the directory in SampleHandler.java, ActionServletPlaceholder.java, Parser.scala and ActionMappingCreator.java. (3min) In the outer Eclipse, add the new fresh project as a reference. Refresh it and synchronize, there should be some hundreds of new files. (1min) Change the struts-rewriting project dependency to the new fresh fenix project. Run the Standalone-Parser (RefactorStart's main). (1min) Refresh the new project. (1min) Create a new jar from the fenix-web-framework and put it in the new fenix (remove old one). Update the build_compile.xml to match its version. Update it in Eclipse's projects. (0min) Create a new symlink in apache tomcat webapps to the ciapl jar of the new project. (4min) Backup the project folder to another place. (3min) Start Eclipse-Application. Refresh the project and update the fenix-web-framework jar. Press "Sample Menu" + "Sample Command". (5min) On the Outer Eclipse, run Parser.scala's main. (1min) Copy the *.xml files present in the struts-parser project to the web/WEB-INF/conf folder of the fresh project. (3min) Refresh the project in Nested Eclipse. (3min) Manually modify Custom Mapping classes of the following three examples (in comment in ActionMappingCreator): SearchGrantOwnerAction - facultyAdmOffice.xml QualificationAction - person.xml CareerAction - teacher.xml (5min) Backup the project folder to another place (different from first one). (5min) Manually fix the following code: net.sourceforge.fenixedu.presentationTier.Action.masterDegree.administrativeOffice.gratuity.FixSibsConflictsDispatchAction @Exceptions({ @ExceptionHandling(type = NonExistingActionException.class, handler = FenixErrorExceptionHandler.class) }) net.sourceforge.fenixedu.presentationTier.Action.masterDegree.administrativeOffice.gratuity.StudentSituationDispatchAction @Exceptions({ @ExceptionHandling(type = NonExistingActionException.class, handler = FenixErrorExceptionHandler.class) }) net.sourceforge.fenixedu.presentationTier.Action.masterDegree.administrativeOffice.guide.reimbursementGuide.CreateReimbursementGuideDispatchAction @Exceptions({ @ExceptionHandling(type = FenixActionException.class, handler = FenixErrorExceptionHandler.class), @ExceptionHandling(type = NoEntryChosenActionException.class, handler = FenixErrorExceptionHandler.class), @ExceptionHandling(type = InvalidSituationActionException.class, handler = FenixErrorExceptionHandler.class) }) net.sourceforge.fenixedu.applicationTier.Servico.teacher.DeleteProfessorship public class ExistingAssociatedCredits extends FenixServiceException { net.sourceforge.fenixedu.presentationTier.Action.teacher.professorship.RemoveProfessorshipAction @ExceptionHandling(type = net.sourceforge.fenixedu.applicationTier.Servico.exceptions.notAuthorizedServiceDeleteException.class, key = "message.professorship.isResponsibleFor", handler = org.apache.struts.action.ExceptionHandler.class, path = "/showTeacherProfessorshipsForManagement.do", scope = "request"), @ExceptionHandling(type = net.sourceforge.fenixedu.applicationTier.Servico.teacher.DeleteProfessorship.ExistingAssociatedCredits.class, key = "message.existing.associatedCredits", handler = org.apache.struts.action.ExceptionHandler.class, path = "/showTeacherProfessorshipsForManagement.do", scope = "request") }) net.sourceforge.fenixedu.presentationTier.Action.student.finalDegreeWork.FinalDegreeWorkAttributionDA @ExceptionHandling(type = net.sourceforge.fenixedu.applicationTier.Servico.student.ConfirmAttributionOfFinalDegreeWork.NoAttributionToConfirmException.class, key = "error.message.NoAttributionToConfirmException", handler = net.sourceforge.fenixedu.presentationTier.config.FenixErrorExceptionHandler.class, scope = "request"), @ExceptionHandling(type = net.sourceforge.fenixedu.applicationTier.Servico.student.CheckCandidacyConditionsForFinalDegreeWork.NoDegreeStudentCurricularPlanFoundException.class, key = "error.message.NoDegreeStudentCurricularPlanFoundException", handler = net.sourceforge.fenixedu.presentationTier.config.FenixErrorExceptionHandler.class, scope = "request") }) (5min) Clean-all e recompile [Debug](1min) Add the print to the FenixDispatchAction