Giacomo Pati wrote:
<snip/>
In Reinhards document it is META-INF/block.xml on the Wiki it's
COB-INF/block.xml. So we need to make a decision:-)
Please use META-INF/block.xml, AFAIK we agreed on making our blocks valid JAR
files. The skeleton in my tutorial should be compiled and packaged to an archive
having following content:
/JAR-FILE-ROOT
+-com
| +-mycompany
| +-blocks
| +-myblock
| +-MyCocoonAction.class
+-META-INF
| +-block.xml
| +-com
| +-mycompany
| +-blocks
| +-myblock
| +-pom.xml
+-cocoon-app
+-sitemap.xmap
+-test.xml
If we follow the default Maven directory structure as outlined in my tutorial,
the archive will be created automatically for us.
Now to answer your question ;) the position of the .xconf of a block
is defined in the components element of block.xml.
Ok, looking at [1] it is defined in the block.xconf file, which is
located in COB-INF (or WEB-INF or META-INF respectively). Is that still
correct?
I'm not sure where block.xconf should go to. I'd put it under cocoon-app and not
under META-INF. WDOT?
Do we need a different mechanism to include those (is copying over
to the
Cocoon WEB-INF/xconf an option for rapid development)?
For blocks the component configuration file is intended to be fixed
and included in the block jar. So it is never copied anywhere as in
2.2 before M2. User configurability is solved with using block
properties in the configuration file instead. Whether this will be
enough is an open question. But I guess most agree with that the copy
and modify approach to configurations in 2.1 not is the way to go.
For rapid development the wiring.xml (or some development time
equivalent) should point to the source code of the respective blocks,
rather than on some packaged and deployed blocks.
Forget it. The current inclusion mechanism with the xconf directory in
WEB-INF is obsolete I guess.
yes
How can one ev. define logkit.xml stuff if they want to have their own
logging factory/target/category for the components defined in the block
(asuming logkit is still the main logging system in Cocoon)?
That is an open question, we have not discussed that much. In the
current implementation I have just reused the existing Cocoon
mechanism with centralized log configurations in /WEB-INF, and is
feeding the Logger to all the blocks. But I would much prefer to
distribute configurations and maybe even choice of logging framework
to the individual blocks. OTH completely distributed logging with
numerous log strategies in the same applications, will be nightmare
when trying to see what got wrong so some level of centralization is
required.
WDYT?
I'd pretty much like distributed logging configuration (whereas
distributed logging implementation might be overkill).
I want to see this too. But I think we should wait a bit with finding solutions
for this.
Same applies to stuff going into web.xmlof the context?
After the refactoring I actually use the ServletContext, with a few
extra methods for all block context information and inter block
communication. Everything isn't implemented yet, but the idea is that
the individual blocks get a context object that wrapps the servlet
context from the container and in some cases add and in some cases
overide the content of that.
But this is also a rather open question. The current implementation
uses the o.a.c.core.Settings interface that Carsten have developed and
that have a rather neat impelemntation where you can combine the
web.xml parameters with Java properties. But the bad thing about it in
the block context is that it is centralized. We need to discuss what
settings that need to be centralized and what we want to handle on the
block level.
One thing of the web.xml is configuration stuff that is passed to the
Servlet (which is Cocoon) deployed. This is not troubling me (we do have
other mechanisms to pass down configuration values as you've described).
The other thing is container configuration as defined by the Servlet
Spec (security, mime types, and alike). Blocks might want to define
security policies for the URL they are mounted on.
good points, but same again here: we should wait until we have a simple block
based application running and then we can talk about this, logging configuration
and settings/property management.
[1] http://wiki.apache.org/cocoon/BlocksDefinition
--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}
web(log): http://www.poetz.cc
--------------------------------------------------------------------