From: Chad B. <cha...@gm...> - 2005-08-31 00:18:33
|
Matthias Bohlen wrote: >Hi guys, > >tonight, I thought about how a Spring metamodel should look like so >that we can get from UML to code in three transformations: > >1) UML to Spring >2) Spring to 3GL >3) 3GL to Java text > >Looking at the current metafacades, I wanted to divide the code into >three categories: > >Cat#1) PIM processing code >Cat#2) PSM processing code >Cat#3) pure helper methods for templates > >These three categories would then have to be redesigned into: > >1) A model-to-model transformation script: UML to Spring >2) A model-to-model transformation script: Spring to 3GL >3) PSM metafacades, written in Java as usual > >I found good examples for each of them, e.g.: > >1) SpringServiceLogic.getOperations() collects operations from the ><<Service>> class and from abstract superclasses of it. This is >already a pure M2M transformation. > >2) SpringDependencyLogicImpl.handleGetTransformationConstantValue() >calculates an integer constant to be used to index transformations >from entities to value objects (note the different meaning of the word >"transformation" here). > >3) SpringServiceLogic.getRemoteURL() builds a String representation >from various settings that come from tagged values. > >So, how about this migration path from the current Spring metafacades >to a Spring metamodel (note: this applies to the Spring cartridge >alone, for bpm4struts, I suggest a totally different approach!): > >a) I design one metaclass for each existing metafacade, plus >additional metaclasses like "Dao" and "ValueObjectTransformation". > >b) For each metafacade operation, I look at its category: Cat#1 and >Cat#2 methods have to be rewritten in ATL. Cat#3 methods have to be >moved to new PSM metafacades created in step c). > >c) For each one of the PSM metaclasses, I design one or more >metafacades that still support the templates. All Cat#3 methods of the >original metafacades will be moved into these new metafacades and will >be simplified. > >All this should start with a very basic metamodel. As a proof of >concept, I'll deliberately ignore all complexity and will try to model >basic Services, Entities and their DAOs with only create, update and >remove methods, no queries and value object transformations, yet. > >What do you think? > >Cheers, >Matthias > >P.S.: BTW, I found a strange thing in SpringServiceLogicImpl.java: > protected java.lang.String handleGetBeanName() > { > return this.getBeanName(false); > } > > How would it cause an endless loop? getBeanName(false) is different than getBeanName(). >Doesn't that cause an endless loop with a stack overflow? > >P.P.S: What worries me is the question: How do I access namespace >properties from inside an ATL script? > > >--- > >Matthias Bohlen >"Consulting that helps project teams to succeed..." > >Internet: > http://www.mbohlen.de/ > mb...@mb... > >Phone: +49 (170) 772 8545 > > > > >------------------------------------------------------- >SF.Net email is Sponsored by the Better Software Conference & EXPO >September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices >Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA >Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > > > |