We are on the home stretch to releasing a power-packed version 0.8 of this project. This thread contains some of the things that are coming.
The big piece of it will be a refactored IoC container. A key aspect of this refactoring is the fact that we have separated configuration information from the actual container and its factories. In the process, while supporting current formats, we have added two more.
- Current PyContainer format will be supported as-is, however instead of using XmlApplicationContext("app-context.xml"), you must switch over to ApplicationContext(PyContainerConfig("app-context.xml")).
- Current DecoratorBasedApplicationContext has been replaced with ApplicationContext(YourClassThatExtendsPythonConfi g()), however it still has the same @component function decorator.
- A new Spring Python XSD spec has been defined that looks much more similar to the Spring Java configuration format => XMLConfig
- Just for fun, and to prove how flexible this new refactoring is, we throw in SpringJavaConfig. This lets you parse existing Java-based formats by simply: ctx = ApplicationContext(SpringJavaConfig("my-java-spring-app-context.xml"))
A really big piece of this refactoring is the fact that ref components can reference ANY component from ANY input source, regardless of format. For example, your configuration meta-data can be spread across PyContainer XML files, Spring Python XML files, pure python coded containers, AND Spring Java configuration.
In this situation, a component in the first XML can reference a component found in one of the other three locations.
ctx = ApplicationContext([PyContainerConfig("some-legacy.xml"), XMLConfig("migrated_parts.xml"),
a) When you upgrade to this version, you MUST replace XmlApplicationContext("your-app-context.xml") with ApplicationContext(PyContainerConfig("your-app-context.xml")).
b) If you have been using the pycontainer library directly, I regret to inform you that it has been removed and will probably break your application. We have written an XSD spec to capture its format, and a parser as well, but we are no longer using the library. PyContainer, while a good start to spring board this project into action, has proven to be too much of a challenge to extend.
To get a sneak at the documentation, see http://springpython.webfactional.com...omponents.html (NOTE: This is NOT the main site, but a build copy based on the JIRA issue tracking