Reinhard Poetz skrev:
Daniel Fagerstrom wrote:
Upayavira skrev:
Daniel Fagerstrom wrote:
Upayavira wrote:
...
We can also release with non OSGi blocks. The blocks are ongoing work,
the most important thing that lacks is "two level configuration". As
discussed before the component configuration is part of the block and
constant, so they need to be parametrized in some way for making them
user configurable. We have not had much discussion about how to do
this yet.
My understanding is that a user can parameterize a block at deployment
(which is supported by the block deployer) if he wants. Otherwise the
default values are taken.
Yes, but that says nothing about the details about parametrization of
components (which isn't implemented yet), does it?
Also the APIs and concepts for blocks need to actually be used for
some real life examples before we can be convinced that we got it right.
Of course. I'm working on getting trunk as far as making it very simple
to use it for custom projects. Then I will start to rework at least one
of my projects to use blocks and learn more about their real life usage.
We should make it easy that at least we developers (and some brave
users) can start to experiment.
Hope to be able to use it in my projects as well.
Gradual steps, release often is good.
Agree, but as it will be the first release from trunk the threshold is
higher.
IMO we should consolidate the current status and make trunk useable for
projects again which should result in agreeing on our external contracts.
Yes
Making life harder for future
exciting developments by releasing too early isn't good.
Exactly, one point i that trunk contains nice mechanisms for
parameterizing components and sitemaps at a global level and also for
having foreign component managers within sitemaps. While very usefull
for the current development style in Cocoon they are not very relevant
for blocks. For blocks we should avoid global configurations as it is
in the way for splitting Cocoon in small reusable parts. And also
component configurations in sitemaps is rather unnecessary when we
have component configurations on the block level.
So what should we do about introducing things that we know that we
will want to remove in a later release?
As long as we have milestone releases, I have no problem with sitemap
classloaders and sitemap application containers. If both features become
block functionality, people have to migrate. (IIRC also Eclipse had some
incompatible changes in their 3.0 milestone series.)
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.
If this is the case, then it would seem timely to improve these
interfaces now, as 2.2 given the greater flexibility could become
_the_
future Cocoon, and we may miss the boat if we don't make this
change now.
Yes, I feel some urgency. With enough focus and dedication on
refactoring Cocoon and finish the blocks Cocoon can be the Rich Server
Platform (http://www.infonoia.com/en/content.jsp?d=inf.05.07). And
regain its momentum. Focusing on 2.2 seem more like losing valuable
time
for me.
Well, define 2.2 :-)
I presume you mean releasing a Maven based Cocoon without a ready blocks
system would loose valuable momentum.
Yes.
Do you have a roadmap on what's open?
* Component handling - design issues
* 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 ;)
* Multi part MIME handling - not part of the blocks architecture to
simplify things, would make most sense to put in a ServletFilter IMO
* Error handling - there is sophisticated creation of error messages in
the CocoonServlet, where is the right place for it in the blocks
architecture?
* JARed blocks - the BlocksManager assumes that the wiring location
points to unpacked blocks, implement support for packed blocks.
I think these are the main issues.
/Daniel