Hi Lenya devs,

as you have noticed, I did quite a few commits in the new trunk. Most of the changes were related to the move from Avalon to Spring.

Dependency injection makes the code much easier to read, since we can get rid of the whole ServiceManager boilerplate stuff. The downside is that you have to maintain XML files to wire the components (beans) together. These XML files replace the old Avalon xconf patch files – there's none of this tedious patching business anymore!

Another great improvement are the RAD capabilities (RCL) of the Cocoon Maven plug-in. You can change a Java class, a Spring bean definition, or any other file and the changes are active when you reload the page. That's really cool.

The servlet service mechanism is another great feature. You can call a pipeline snippet that is provided by a block. A simple example is the prettyprinting module – you can just plug the service into your pipeline:

  <map:generate … />
  <map:transform type="servletService">
<map:parameter name="service" value="servlet:prettyprinting:/xml2nicexml"/>
  </map:transform>
  <map:serialize … />

I'm sure this will open lots of new possibilities to leverage modules.

Of course, there are thousands of open questions. Will the block concept cover everything modules are capable of ATM? Will it be much more powerful (e.g., block polymorphism)? Where do publications fit in? Maybe we should reconsider the publication concept (I'd like to get rid of the publication source directories – publications should be a run-time construct). How will fallback work with blocks? Should we provide an archetype to get started?

Of course everyone's opinion is highly appreciated. To get started, install Maven 2.0.9 and issue the following commands:

  svn co https://svn.apache.org/repos/asf/lenya/trunk
  cd trunk
  mvn install
  cd org.apache.lenya.webapp
  mvn jetty:run

Now you should see a simple unstyled welcome page at localhost:8888.

-- Andreas


--
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to