Skip to content

Portal

You are here: Home » Blogs » Plone Conference 2005 » Vienna Plone Conference 2005 BLOG » Archive » 2005 » September » 21 » archgenxml

archgenxml

ArchGenXML in Practice Philipp Auersperg Jens Klein

Fields
You can copy fields

There are new tagged values and there is a registry for tagged values and properties. The documentation is generated ;-)

Interface containment

Mixinclass tabs by interface
If a class implements some interface it can be contained in a container. We will show hot wo use unit tests, it speeds up the production process. You define an itherface for the container class and you introduce a new class or product you can plug it in because it has the same interface.
When you have a new content type or a new skin you have to go to the installer and have to refresh the product. New types get registered into the types registry. ArchgenXML updates the versio.txt file every time it generates code. YOu can click refresh and it is installed again and up to date.

This interface containment feature is quite interesting and important.

Q: does it restrict the addability to add content to that container only
A: Yes it is the 'composite' relation.

You don't loose your code.
There are protected sections you should put your code in there:

Q: What is a copy type
A: Jens: If you have a schema you have a base schema with title or id. If you want to have title again you have to define it all again, With copy you can over-register just one Field. They are copied into your model / schema with the same name.

Unit Tests can be modeled automatically
At the snow sprint plannings have been made. Bibliotheka Herziana has sponsored testing. The Package has to be named test and has the stereotype test.

Who does use unit tests?
[...people raise hands...]
Who was just to laszy to do it?
[...people raise hands...]

The reason why we wanted to generate unit tests was...
should we force the user to model unit tests implicitly?

doc_testcase
interface_testcase

You write how the framework should behave. You test every meaningful fature of it.

Yoou generate a doctest which is trivial but makes life easier. We look ath the generated source code. There is a doc folder and the test. A silly sample is being generated, too. Just write the python prompt, then the statement. The expected result will be written beyond. Jim presented Z3 in Goldegg this is when Phil saw this first.

Who knows how to run tests with zope?

We just use zopectl script with the parameter test

Q: Are the new stereotypes available?
A: All are registered in the registry and documented (therefore) taggedvaluesupport.py

Reinhard van Ries did great contributions on documentation. We did not have time for documenting all.

./bin/zopectl test --libdir OurProduct

[...output is shown at the screen...Phil intentionally produces an error...It would break...]



Workflow modeling

You create a 'State Diagram' in Poseidon Quick example

States of persons: sane, drunk
transitions: drink and sleep

The product is being refreshed in quickinstaller. We forget to name the workflow and have a default name 'Zustandsdiagramm_1' now, but anyways we go to a person and have state transitions shown. I drink and get drunk i sleep and am sane again.

There is a Mailing List.

The slides will be on the conference website.

Q: Is round trip pure speculative or are there distinct plans?
A: The Problem is very sensitive. Eiter it does not work at all, otherwise the system eats up your code. Phil has some idea on how to do it and it involves a lot of work. More priority is supporting Five and Zope 3. Phil is happy that Jim Fulton is here to help in finding the right architecture to do it.

Bibliotheka Herziana has been sponsoring a lot of development of ArchGenXML. Martin Raspe will be talking about model driven development in his talk soon.

Posted by blogger on 2005-09-21 11:43

Trackback

The URI to TrackBack this entry is: http://gogo.bluedynamics.net/plone/blogs/pc2005/blog/archive/2005/09/21/archgenxml/trackback

name correction

Posted by reinout at 2005-09-21 15:25
It's not "Reinhard van Ries" but "Reinout van Rees". Pretty good for a transcript of a spoken foreign name :-)
 

Personal tools