ArchGenXML
ArchGenXML is a code generator. It builds on architecture-centric, model-based and test-driven development. Generates Python code from UML-Models (XMI-Format). It's optimized for the generation of code based on the Archetypes framework.
Project Description
With ArchGenXML you can create working python code without writing one single line of python. It is is a commandline utility that generates fully functional Zope Products based on the Archetypes framework from UML models using XMI (.xmi, .zargo, .zuml) files. The most common use case is to generate a set of custom content types, possibly with a few tools, a CMFMember type and some workflows thrown in.
In practice, you draw your UML diagrams in a tool like Poseidon or ObjectDomain which has the ability to generate XMI files. Once you are ready to test your product, you run ArchGenXML on the XMI file, which will generate the product directory. After generation, you will be able to install your product in Plone and have your new content types, tools and workflows available.
At present, round-trip support is not implemented: Custom code can't be converted back into XMI (and thus diagams). However, you can re-generate your product over existing code. Method bodies and certain "protected" code sections will be preserved. This means that you can evolve your product's public interfaces, its methods and its attributes in the UML model, without fear of losing your hand-written code.
Why should I use ArchGenXML?
Major reasons:
- You want to save time
- You are a lazy programmer
- You don't like to reinvent the wheel
- You dont like copying and pasting code and bugs
- You make heavy use of references and interfaces
- You have big projects with many different custom types
- You want or need a well-documented interface to your product
- You like structured model- and pattern-driven software development
- You want to maintain your project in future without getting a headache
and many more good and odd other reasons.
Contributors
The project was initially started by Phil Auersperg. Thanks to his laziness :-)
Authors
Phil Auersperg (Project Leader) -- "BlueDynamics Alliance, Freinberg":http://www.bluedynamics.com/, "phil@bluedynamics.com":mailto:phil@bluedynamics.com, IRC-nick: zwork;
Jens Klein (Maintainer & Release Manager, lots of code and Doc-Writer) -- "BlueDynamics Alliance, Innsbruck":http://www.bluedynamics.com/, "jens@bluedynamics.com":mailto:jens@bluedynamics.com, IRC-nick: jensens;
Reinout van Rees (Maintainer, Improvements, lots of cleanup, unit-tests) -- "Zest software":http://zestsoftware.nl/, "reinout@vanrees.org":mailto:reinout@vanrees.org, IRC-nick: reinout;
Martin Aspeli (Improvements, bug fixes and documentation) -- "Martin Aspeli":mailto:optilude@gmx.net, IRC-Nick: optilude;
Fabiano Weimar dos Santos (Ideas, Testing, Bugfixing, Workflow) -- "Weimar Desenvolvimento e Consultoria em Informatica Ltda.":http://www.xiru.org/, "xiru@xiru.org":mailto:xiru@xiru.org, IRC-Nick: Xiru,
and others -- thanks to everybody who contributed with testing, doc-writing or code-pieces!
Sponsors
- BlueDynamics Alliance, Austria
- ZestSoftware, Netherlands
- Lots of features in this code was created for and sponsored by the ZUCCARO project. ZUCCARO (Zope-based Universally Configurable Classes for Academic Research Online) is a database framework for the Humanities developed by the Bibliotheca Hertziana, Max Planck Institute for Art History For further information: "zuccaro.biblhertz.it":http://zuccaro.biblhertz.it/
- Xiru.org, Brazil (Fabiano Weimar dos Santos) sponsors a valuable amount of money into workflow support.
- PilotSystems, Paris, France (David Sapiro)
- OpenSource.ag, Innsbruck, Austria (Georg Pleger)
- Telesis.at, Austria (Jodok Batlogg)
If you want to contribute ArchGenXML by improving the code, helping with documentation or sponsoring money to make us improve it, please contact one of us.
Self-Certification
[ ] Internationalized
[X] Unit tests
[X] End-user documentation
[ ] Internal documentation (documentation, interfaces, etc.)
[X] Existed and maintained for at least 6 months
[X] Installs and uninstalls cleanly
[X] Code structure follows best practice
Current Release
ArchGenXML 2.6
Released Mar 10, 2011 — tested with Plone 4, Plone 3
Plone4 compat
More about this release…
-
Get
ArchGenXML
for
all platforms
- Python egg
- If you are using Plone 3.2 or higher, you probably want to install this product with buildout. See our tutorial on installing add-on products with buildout for more information.
All Releases
| Version | Released | Description | Compatibility | Status |
|---|---|---|---|---|
| 2.6 | Mar 10, 2011 | Plone4 compat More about this release… |
Plone 4
Plone 3
|
final |
| 2.2 | Jan 21, 2009 | Release now. There may be bugs left in the issue tracker. But 2.2 is so much better than 2.1 - it needs a release. More about this release… |
Plone 3
Plone 2.5
|
final |
| 2.1 | Jul 13, 2008 | Minor bugs fixed, minor features added. More about this release… |
Plone 2.5
Plone 3
|
final |
| 2.0 | Mar 19, 2008 | A big cleanup, nothings on the same place! Generates code for Plone 2.5.3+ and Plone 3.0 More about this release… |
Plone 2.5
Plone 3
|
final |
| 1.6.0 | Release aiming at plone 2.5/3.0. It should support creating nice tidy zope3-using plone products: view classes, zope3 interfaces, etc. Also some internal cleanup (use setup.py, give every internal template its own view class). More about this release… |
Plone 2.5
Plone 3
|
beta | |
| 1.5.2 | Feb 09, 2007 | Stable ArchGenXML for Plone 2.1 and 2.5. No more new features in v1.5 in future, just bugfixing. Features are for v1.6 targetting at Plone 2.5 and 3.0. They are developed on svn-trunk. v1.5 is branched away. More about this release… |
Plone 2.5
Plone 2.1
|
final |
| 1.5.0 | Aug 26, 2006 | Plone2.1/2.5-only release. Compared to 1.4 there are bugfixes, plone 2.1/2.5 goodies by default (like rename-after-creation) and some very limited zope3 interface support. More about this release… |
Plone 2.5
Plone 2.1
|
final |
| 1.4.1 | Jan 09, 2006 | bugfix release More about this release… |
Plone 2.1.2
Plone 2.1.1
Plone 2.1
Plone 2.0.5
|
final |
| 1.4.0-beta1 | ArchGenXML is very stable since some months. Now we release ArchGenXML 1.4 as beta. It means feature freeze for trunk until final is out. We added lots of new features, unfortunaly not all of them are documented: a task where you can help! More about this release… |
Plone 2.1
Plone 2.0.5
Plone 2.0.4
Plone 2.0.3
|
beta | |
| 1.4.0-RC2 | Nov 27, 2005 | activated i18ndude 2.x support, minor polishing, documentation completed. More about this release… |
Plone 2.1.2
Plone 2.1.1
Plone 2.1
Plone 2.0.5
Archetypes 1.3.5
Archetypes 1.3.4
Zope 2.8.4
Zope 2.7.8
|
release-candidate |
| 1.4.0-RC1 | Oct 29, 2005 | The first release candidate for 1.4.0. There are only a few changes from beta2, so we're hoping for a quick final release. More about this release… |
Plone 2.1
Plone 2.0.5
Archetypes 1.3.3
|
release-candidate |
| 1.4.0 | Dec 06, 2005 | Since several companies around the globe used this now released code-base in several real-life projects for their customers, we can call ArchGenXML with this release 100% production ready. More about this release… |
Plone 2.1.2
Plone 2.1.1
Plone 2.1
Plone 2.0.5
Archetypes 1.3.6
Archetypes 1.3.5
Archetypes 1.3.4
|
final |
| 1.2-beta1 | beta snapshot More about this release… |
Plone 2.0.5
Plone 2.0.4
Plone 2.0.3
Archetypes 1.3.2
Archetypes 1.3.1
Archetypes 1.3
|
beta | |
| 1.1 | Apr 03, 2005 | stable release More about this release… |
Plone 2.0.5
Plone 2.0.4
Plone 2.0.3
Archetypes 1.3.1
Archetypes 1.3
|
final |

