Reinhard Poetz skrev:
Daniel Fagerstrom wrote:

I have not that much problem with the sitemap stuff, it shouldn't be that hard to migrate them. I'm more concerned about the Core and Settings objects, that is part of the trunk contract and that doesn't fit well into a splited up non-monolithic architecture.

Hmm, which external contracts are affected by how the "framework" works? The only contract I see is where block.xml is located (/META-INF/block.xml) and which XML (defined by the namespace). This way the framework (and the deployer) find out whether they can work with a given block or not. Do you see any other dependencies?

Ok, I talked about a 2.2 release in general, the block fw is a separate concern and shouldn't be affected by the mentioned objects (except that it has been a real pain to refactor away the dependence on them and that there still is some work to be done).

Currently you can configure the deployer which blocks-fw you want to use (which is the actual core IMHO) and blocks-fw depends on the legacy core. As said, this is completly unrelated to the blocks.

My intension is to remove the block fw dependencies on cocoon-core, still some work left.

Do you have a roadmap on what's open?


* Component handling - design issues

ok, that's the main question that needs to be answered

* Logging - I put it in the BlocksManager but didn't give it much thought, here is a new chance for all logging enthusiasts to discuss ;)

hehe

I don't know that much about logging. But my main thoughts is that logging need to be a centralized service, common for all blocks (separate logging solutions for each block would be a pain).

The logging implementation is contained in a block (that is installed early) and makes the logger available as a service that other block can get through the service manager. This way the logging implementation is chosen by the choice of logging block. Observe that I only is talking about the blocks fw, within a block an ordinary ECM can be set up and it will inject the logger in its managed objects through the usual Avalon style.

Using the same logger interface everywhere is also practical I guess we continue to use the o.a.avalon.framework.logger.Logger one.

* Multi part MIME handling - not part of the blocks architecture to simplify things, would make most sense to put in a ServletFilter IMO

ok (haven't thought about this yet)

I think it makes most sense to let multi part MIME be centralized and at the start of the call chain, it doesn't make sense to have it at the block level AFAICS. So we could make it part of the BlocksManager, but I prefer to keep the BlocksManager focused, so a filter before the BlocksManager seem to be a good alternative.

That also means that the multi part MIME handler is reusable for others (or that we can use another implementation if we want). Setting up a filter isn't such a big deal, so it is easy to do even outside a servlet container.

* Error handling - there is sophisticated creation of error messages in the CocoonServlet, where is the right place for it in the blocks architecture?

ok (haven't thought about this yet either)

Neither have I.

* JARed blocks - the BlocksManager assumes that the wiring location points to unpacked blocks, implement support for packed blocks.

ok, IMHO a nice to have for me and transparent for the user.

Do you mind if I create JIRA tasks for them? I would like to use the roadmap feature of JIRA to make it visible for lurkes on what we are doing.

Quite the opposite, JIRA issues would be good.

/Daniel