Removing Roo with push-in refactoring
Spring Roo is responsible for managing the AspectJ ITDs in a Roo project. As AspectJ ITDs are managed by Roo, you must not modify them. In some situations you may want to modify the AspectJ ITD files to serve your application's requirements. For instance, you may want to modify implementation of a method in an AspectJ ITD file.
In the Sending emails using JavaMail API recipe of Chapter 6, Emailing, Messaging, Spring Security, Solr, and GAE we copied the create(...)
method from FlightController_Roo_Controller.aj
file to FlightController.java
file because we wanted to modify the implementation of create(...)
method. If Roo finds a method defined in the Java source file, it removes the method with the same signature from the corresponding AspectJ ITD file. So, when we copied the create(...)
method to the FlightController.java
file, Roo removed the create(...)
method from the FlightController_Roo_Controller.aj
file. The copy paste approach can be quite daunting...