- This topic has 3 replies, 2 voices, and was last updated 14 years, 3 months ago by davemeurer.
-
AuthorPosts
-
Greg SoulsbyMemberLove the whole MyEclipse story, well done.
Now I have my first scaffolded app running I am looking at the development of more apps, and maintenance strategy. Would like to bring the same rigor to both as you give me with the scaffolding process.
I would like to maximise tailoring programmatically / systematically.
For some requirements I could change the templates used in the scaffolding? Another approach would be apply changes using Aspects, right?
As a beginner in MyEclispe, Spring and Aspects I am afraid of breaking something.
Do you have any advice for these use case examples?
1) Link to our css and javascript files, not the default ones
2) Create web page layouts to our format
3) Add methods that empty / drop / dump the table to all DAO class
4) Add a method that creates the table to all DAO class
5) Replace the implimentation of a method with one of our own
davemeurerMemberHello,
Thanks for the kind words!For some requirements I could change the templates used in the scaffolding?
Correct. Extending the templates used in the MyEclipse for Spring generation can actually be done today in version 8.6. It does require building an Eclipse plugin, and we are not sure whether people are ready to take on that kind of challenge. So, we are working on a more optimal solution and gathering feedback on the types of extensions people would like to build – one that we’ve heard a lot about is the web layer. Let me know if you have other ideas.
I can offer a document we’ve created that describes the steps involved in creating an Eclipse plug-in project and extending the generation templates. If you are interested in that document, please PM or email me at dmeurer [at] skywaysoftware [dot] com
Another approach would be apply changes using Aspects, right?
Yes, however I’m not sure that is the best practice. What we usually see is folks using scaffolding, and then manually modifying the code to their specific needs. Version 8.6 also introduces our first version of Code Assistants, which provides help with Spring and JAX-WS annotations. You can see more with our Spring Annotator Code Assistants Tutorial, or Code Assistants Video.
1) Link to our css and javascript files, not the default ones
2) Create web page layouts to our formatCurrently, there are several approaches that we’ve seen our users do here. Again, we are looking into making it easier for folks to extend our generation engine so something like this can be easier in the product.
One thing to mention that isn’t apparent the first time you scaffold is that any changes in the styles.css or sitemesh files can be preserved the second time you scaffold, and that’s controlled via checkboxs in the scaffolding wizard that you will only see after multiple scaffolds. You can see this in action in the Rescaffolding video. A tutorial and details in a document should be published soon.3) Add methods that empty / drop / dump the table to all DAO class
4) Add a method that creates the table to all DAO class
5) Replace the implimentation of a method with one of our ownI would consider all these to be part of the java code, which contains some preservation technology so rescaffolding won’t affect new methods. Now, to include these methods a part of the scaffolding engine every time you start a new project or rescaffold is yet another type of extension that can be done today through eclipse plugin development and what we are evaluating to make easier for future releases.
Let us know what you think.
Kind regards,
Dave
Greg SoulsbyMemberThanks of the reply. I will definatly work towards the plugins.
Another approach would be apply changes using Aspects, right?
Yes, however I’m not sure that is the best practiceWhat are some of the issues? For something like error handling, its got to be fine. But say I wanted to inject a single method in one class, could I not code the method in a class I might call “apendium”, inject it into the target class using a pointcut and then when I build / rebuild apps just include “apendium” class and the aspect code? What problem can you see?
davemeurerMemberNo problems, it should work fine. Sorry if my response insinuated there would be issues. I’ve just usually seen the Aspects approach for cross-cutting concerns.
-
AuthorPosts