AndroMDA 2.1 released - Hibernate 2 supported

Discussions

News: AndroMDA 2.1 released - Hibernate 2 supported

  1. AndroMDA 2.1 released - Hibernate 2 supported (14 messages)

    AndroMDA is a code generation framework that follows the Model Driven Architecture (MDA) paradigm. It takes a UML model from a CASE-tool and generates classes and deployable components (J2EE or other) specific for your application architecture.

    XDoclet is used under the covers as the template generation framework, and many different output modules are available.

    This new release of AndroMDA can now generate code for Hibernate 2, the leading open source O/R mapping framework.

    Visit http://www.andromda.org and enjoy the new release!

    Matthias Bohlen
    AndroMDA lead architect

    Threaded Messages (14)

  2. Great news.
    I've been using AndroMDA for a couple of weeks now, and I've been
    able to create my own cartridge for hibernate 2.x using the DAO pattern.
    It was simple and works beautifully.
    The only thing that was missing for me was to have the ability to get
    the tagged values for assiations to have more control on the was androMDA
    generate associations, is it available on andromda 2.1?
  3. Looks interesting, a few questions for anybody using it

    1. Whats the quality documentation like?
    2. Are many people using it to develop production code?
    3. How extensible is it, are you restricted to someone else's way of developing, or can it be used to develop your oqn pattern of development?
    4. Is there good tool support (Ant, Maven etc.)?

    TIA
  4. 1) The docs are pretty good on their website. Not the best, but certainly not the worst.
    2) I've been using it for production code for the past half a year, on two separate projects (soon to be a 3rd). I find it extremely helpful.
    3) The extensibility is a mixed bag. On the one hand, it is very flexible because you can completely create your own set of templates. I've never been big on the packaged template approach, where you generate code the way someone else expects you to. If I'm using an MDA approach, I want a tool that lets me have complete control over the templates, since I want to use it to generate my project's code, not someone else's. In that regard, AndroMDA is excellent, since you can completely create your own templates and package them as a cartridge. Also, you can stick your own transformation helper into the velocity stack used for code generation, so you can write all of the custom helper methods you might need.
    I've found difficulty with the cartridge system. It's been a while since I last looked at this, but I recall some difficulty with the way the developers see how cartridges can be reused and my own desired use. I'd have to go back to find out the details. What they have isn't bad, though. I think my problem had something to do with the way EVERYTHING revolves around the use of stereotypes, but I've been able to work around this limitation successfully.
    The one other issue I'd have with the tool is the limited way in which you are able to work with generated file names. You can generate a file name using any combination of variables from the following 4: package name, class name, template name, or stereotype. You can't use any of the transformation methods you might use in your templates, just those 4 variables (and any static text you want). This has caused me to do some funky things with my template organization because I don't get the control over the template output filenames that I'd like. I've worked with other tools that expose the filename creation process to all of the same helpers and methods that you use to work within templates, and I've found it a nice feature.
    4) The tool support is pretty good. Ant is central to it's use, for most users, and that to me is a pretty good selling point. The ant scripts take a while for a reasonably sized model, as the model info is loaded and parsed, but other than that it works well. There's also support for Poseidon 2.x (a UML modeler) via a plugin, but last I checked that plugin was still in alpha. From what I understand, the poseidon plugin allows you to generate more quickly since it doesn't need to keep parsing the model in memory (I think Poseidon has the same in-memory representation of UML code that AndroMDA uses, or it can quickly adapt).

    Again, minor quibbles aside, I've found it to be a great tool, and you can't beat the price.
  5. How do folks use AndroMDA?[ Go to top ]

    I've been wondering about this for a while now so I'll just blurt it out: How are you, the AndroMDA user community, using the tool? Obviously, you're generating code but what kind of code? Do you make roundtrips or just generate the initial skeleton for your application?

    Please forgive me for not having tried AndroMDA for myself.
  6. How do folks use AndroMDA?[ Go to top ]

    I'm going strictly one-way, because I don't think round-trip is really feasible. I have my application architected in such a way that repeated generations won't overwrite existing code, so I am generating continuously throughout the project. It really helps me adopt architectural changes quickly, as well as deal with frequently changing requirements.
  7. How do folks use AndroMDA?[ Go to top ]

    have my application architected in such a way that repeated generations won't overwrite existing code, so I am generating continuously throughout the project.


    Drew,

    I'm interested in this approach, could you give us more detail on how you managed/structured this.

    cheers,
    rap
  8. Not overwritting[ Go to top ]

    You can use inheritance. So you always extend your generated codes. In this manner you won't overwrite the existing code.

    Lofi.
    http://www.openuss.org
  9. Not overwritting[ Go to top ]

    You can use inheritance. So you always extend your generated codes. In this manner you won't overwrite the existing code.

    The safety of that approach is obvious. Still, don't most MDA generators support preservation via patching?
  10. Drew, check out website www.seacloudsoft.com. You may find it solves the problems you find in AndroMDA.
  11. DAO cartridge for Hibernate[ Go to top ]

    Sounds good.
    AndroMDA 2.1 creates an EJB Session Bean to access Hibernate 2.x. This is unfortunate because if your hosting company only provides a JSP/Servlet engine, you cannot deploy the AndroMDA generated code for Hibernate.

    Will you be uploading your DAO Hibernate cartridge to the AndroMDA project? ;-)
  12. DAO cartridge for Hibernate[ Go to top ]

    I will, no prob :-)
  13. DAO cartridge for Hibernate[ Go to top ]

    I will, no prob :-)


    Cool - we're curiously waiting for your patch since I have the same web hosting restrictions (no session beans, servlet engine plus Hibernate, only!). :-)

    Cheers...
    Matthias
  14. DAO cartridge for Hibernate[ Go to top ]

    I will, no prob :-)


    Hi Herve,

    thanks for uploading the cartridge files. As soon as I have time, I'll try to use them.

    Cheers...
    Matthias
  15. The new release V2.1.1 contains a bug fix for the wizard that creates
    empty AndroMDA projects. The empty projects that use the
    Hibernate2 cartridge were not generated correctly - the
    schema export target in build.xml did not work because the
    old "cirrus.*" packages were still referenced instead of the
    new "net.sf.*" packages. This has been fixed.

    The other problem was that the empty UML model in the
    projects generated by the wizard was using stereotypes that
    were by far out of date. Now, the UML model contains the
    most current stereotypes as described in the AndroMDA
    documentation.

    The classpath in the empty projects now contains the
    andromda-java cartridge by default, too. This makes it easier
    for new users to generate code for classes with the
    stereotype "ValueObject".

    Have fun!
    Matthias