Re: [2.2] Configuration issues

2006-05-17 Thread Daniel Fagerstrom

Ralph Goers skrev:

Daniel Fagerstrom wrote:

No, I meant something different than the mechanism today, something 
that works like the PropertyOverrideConfigurer in Spring. Say that you 
have a configuration file like:


  


  

Then my idea was that you should be able to override the maxobjects 
property by just providing a property:


store.maxobjects=2000

The mechanism of today is more like the PropertyPlaceholderConfigurer 
in Spring and would require you to rewrite the configuration file like:


  

value="${store.use-cache-directory}"/>

  

and provide default property files for all properties.


Oh, OK. But we also support

   class="org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter"> 

 
resource://org/apache/cocoon/components/flow/javascript/fom/fom_system.js 


 ${javascript.reload-scripts}
 ${javascript.check-time}
   

Would this be replaced by

javascript.reload-scripts = true


It was just an example of a possible convention for using properties as 
paths in configuration files, I haven't tried to find a complete mapping 
yet.


But if we could find such a convention, it would save us the work to 
rewrite hundreds of configurations. So it would probably be worthwhile.


/Daniel


Re: [2.2] Configuration issues

2006-05-17 Thread Daniel Fagerstrom

Peter Hunsberger skrev:

On 5/17/06, Daniel Fagerstrom <[EMAIL PROTECTED]> wrote:




> 2. This works only as long as the user wants to use the same
> implementation for a component. Switching to an own implementation with
> an own configuration is not possible.
>
> Any idea on how to solve this?
Here the IMO best and most natural solution is to have different blocks
for different implementations. Say we have two different components that
implements the XsltProcessor inteface, the Xalan and the Saxon
implementation. Then if you have a Xalan block with its own embedded
configuration and a Saxon block with its own embedded configuration. If
you want to use the Xalan implementation you deploy the Xalan block and
if you want the Saxon implementation you deply the Saxon block.


Would this solution be able to deal with using both Saxon and Xalan or
two different versions of Saxon at different points in the same
pipeline?  In our case we have 1 critical XSLT that currently only
runs under Saxon 6 (I've tried repeatedly to get it to Saxon 8, but so
far no go).  Everything else exploits XSLT 2.0 and requires Saxon 8.
We mix these XSLT in the same pipelines all the time...


No, XSLT processors was a rather bad example as they not are 
interchangeable even if they implement the same interface.


In OSGi service is registred with the interfaces that it implements and 
optionally with a map with properties. A service can be looked up based 
on its interfaces and optionally with an LDAP style filter on the 
property map.


So in the above example, both implementations would be registered as 
XsltProcessors, then could also have properties describing vendor name 
and version.


A component that can do with any XsltProcessor would just lookup the 
XSLT service based on the interface. While a component with special 
needs would use a filter that describe version range and/or vendor. I 
don't know if anything like this would be possible with Spring.


/Daniel


Re: [2.2] Configuration issues

2006-05-17 Thread Ralph Goers

Daniel Fagerstrom wrote:

No, I meant something different than the mechanism today, something 
that works like the PropertyOverrideConfigurer in Spring. Say that you 
have a configuration file like:


  


  

Then my idea was that you should be able to override the maxobjects 
property by just providing a property:


store.maxobjects=2000

The mechanism of today is more like the PropertyPlaceholderConfigurer 
in Spring and would require you to rewrite the configuration file like:


  

value="${store.use-cache-directory}"/>

  

and provide default property files for all properties.


Oh, OK. But we also support

   class="org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter">
 
resource://org/apache/cocoon/components/flow/javascript/fom/fom_system.js

 ${javascript.reload-scripts}
 ${javascript.check-time}
   

Would this be replaced by

javascript.reload-scripts = true

i.e., How does it know when to look for attributes versus the value of 
child elements? Or would it just assume you won't have an attribute with 
the same name as a child element?


I'm actually surprised that the syntax for your example isn't

store.parameter.maxobjects = 2000.

But I've never looked into this feature in Spring.

Ralph



Re: [2.2] Configuration issues

2006-05-17 Thread Daniel Fagerstrom

Carsten Ziegeler skrev:

Daniel Fagerstrom wrote:

Here the IMO best and most natural solution is to have different blocks 
for different implementations. Say we have two different components that 
implements the XsltProcessor inteface, the Xalan and the Saxon 
implementation. Then if you have a Xalan block with its own embedded 
configuration and a Saxon block with its own embedded configuration. If 
you want to use the Xalan implementation you deploy the Xalan block and 
if you want the Saxon implementation you deply the Saxon block.


The result of this thinking is that you have typically smaller and more 
focused blocks, that contain components that are used togerther.


WDYT?

I'm not sure - on the one hand you're probably right. But this will lead
to too many blocks. If you think this through, this will require that
you make for each and every component an own block just to be able to
use a different implementation.


Might be, we maybe need some mechanism so that one can override a 
complete component configuration, not just its properties.


OTH, we have lots of components that wouldn't need to be components at 
all or at least not be replaceable. Also some blocks are far to fat, the 
core contains more than 100 components, while I would guess that most 
users only use a handful components from core. In many cases having 
blocks that implements a set of interfaces that works together, and 
being able to change the block to another one that implements the same 
interfaces, is a convenient way to switch implementation. It also keep 
the application lean.


/Daniel


Re: [2.2] Configuration issues

2006-05-17 Thread Daniel Fagerstrom

Ralph Goers skrev:



Daniel Fagerstrom wrote:

Carsten Ziegeler skrev:

I'm currently wondering what the best way to configure 2.2 from a user
perspective is. We now have includes for xconfs and property
replacements which is great.
Now, each block comes with its own configuration files: all of them are
stored in the jar and on deployment some of these files are extracted:
so in the end there are roles files in the jar, xconf and property files
on the WEB-INF folder.
A user should never touch/change these files - so only way to customize
the settings is through properties. This requires that each and every
user configurable value must be replaced with a property! Now while this
approach is fine it has at least two problems:
1. A huge number of properties which sooner or later will create a mess.
  
Requiring the user of the block to define every property is far to 
inconvenient and error prone. A much better model is to have default 
values in the configuration file in the block and make it possible for 
the block user to optionally override the default value with own 
properties. This is the way configuration is handled in OSGi with a 
declarative service configuration file that gives the default and a 
configuration service that can override the default. Spring has some 
similar mechanism with the PropertyOverrideConfigurer 
http://static.springframework.org/spring/docs/1.2.x/api/org/springframework/beans/factory/config/PropertyOverrideConfigurer.html. 



For the Avalon configurations we could find some convention for 
translating configuration file element paths to property strings and 
then write a implementation of the avalon Configuration that override 
the configuration file based configuration with the property values. 
And feed that overridable configuration to the component in the 
BeanPostProcessor for the Avalon life cycle.


This is already the way it works in both 2.1 and 2.2.  Cocoon provides 
values for everything in property files within the block. The user can 
then provide their own values which override them. I think Carsten is 
simply worried because there are a lot of values you can specify.


No, I meant something different than the mechanism today, something that 
works like the PropertyOverrideConfigurer in Spring. Say that you have a 
configuration file like:


  


  

Then my idea was that you should be able to override the maxobjects 
property by just providing a property:


store.maxobjects=2000

The mechanism of today is more like the PropertyPlaceholderConfigurer in 
Spring and would require you to rewrite the configuration file like:


  

value="${store.use-cache-directory}"/>

  

and provide default property files for all properties.

/Daniel



Re: [2.2] Configuration issues

2006-05-17 Thread Daniel Fagerstrom

Carsten Ziegeler skrev:

Reinhard Poetz wrote:

How does OSGi solve this?
Since OSGi4 declarative services are supported. Think of Spring dependency 
injection but considering interface/implementation relations. You can use the 
OSGi configuratonAdmin service to change an injected component or a component's 
properties.

Ok, but this is then configuration at runtime and not at development
time, right?


The configuration admin is called when a service (component) is registered.


Where are those values stored?


According to the spec they are stored persistently. The actual storage 
mechanism is not standardized though. In Felix they talking about 
connecting the configuration admin to the storage API from the directory 
project so that configurations can be stored in e.g. an LDAP server.


Reinhard and I have discussed initializing the configuration admin from 
an XML or property file.


Additionally we have the possibility to redisgn e.g. forms and portal to use the 
OSGi whiteboard pattern[1]. Using it makes extending them very simple as it 
makes extensions very simple - you just have to provide a component that 
implements a particular interface and it is automatically added as reference to 
another component.



I don't want to rewrite blocks in order to use OSGi and I think one of
our main goals for using OSGi is that this does not affect the way how I
develop blocks which means it is totally transparent. So imho we need an
OSGi-free way which works at development time.


The whiteboard pattern isn't about OSGi per se, but rather about how to 
organize extensible components in a plugin based architecture. The 
configuration model that is used for CForms is not suitable for a plugin 
architecture at all, as it assumes a single complete list of all 
components in one place. If you want to ad a component you need to edit 
the central configuration file.


With the whiteboard pattern, each plugin register its services, e.g. 
validators and widgets, in a registry (the whiteboard). Then the user, 
e.g. the form framework search for the services it needs from the 
registry. This is much more flexible and extensible than the current 
architecture.


/Daniel



Re: [2.2] Configuration issues

2006-05-17 Thread Peter Hunsberger

On 5/17/06, Daniel Fagerstrom <[EMAIL PROTECTED]> wrote:




> 2. This works only as long as the user wants to use the same
> implementation for a component. Switching to an own implementation with
> an own configuration is not possible.
>
> Any idea on how to solve this?
Here the IMO best and most natural solution is to have different blocks
for different implementations. Say we have two different components that
implements the XsltProcessor inteface, the Xalan and the Saxon
implementation. Then if you have a Xalan block with its own embedded
configuration and a Saxon block with its own embedded configuration. If
you want to use the Xalan implementation you deploy the Xalan block and
if you want the Saxon implementation you deply the Saxon block.


Would this solution be able to deal with using both Saxon and Xalan or
two different versions of Saxon at different points in the same
pipeline?  In our case we have 1 critical XSLT that currently only
runs under Saxon 6 (I've tried repeatedly to get it to Saxon 8, but so
far no go).  Everything else exploits XSLT 2.0 and requires Saxon 8.
We mix these XSLT in the same pipelines all the time...

--
Peter Hunsberger


Re: [2.2] Configuration issues

2006-05-17 Thread Reinhard Poetz

Carsten Ziegeler wrote:

Daniel Fagerstrom wrote:


Here the IMO best and most natural solution is to have different blocks 
for different implementations. Say we have two different components that 
implements the XsltProcessor inteface, the Xalan and the Saxon 
implementation. Then if you have a Xalan block with its own embedded 
configuration and a Saxon block with its own embedded configuration. If 
you want to use the Xalan implementation you deploy the Xalan block and 
if you want the Saxon implementation you deply the Saxon block.


The result of this thinking is that you have typically smaller and more 
focused blocks, that contain components that are used togerther.


WDYT?


I'm not sure - on the one hand you're probably right. But this will lead
to too many blocks. If you think this through, this will require that
you make for each and every component an own block just to be able to
use a different implementation.


What about having at least a configuration file for each and every component? 
This way, it would be simple to provide some overriding mechanism, e.g. all 
files in ./src/main/cocoon-xconf override files coming from a deployed block at 
deployment.


--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de


Re: [2.2] Configuration issues

2006-05-17 Thread Carsten Ziegeler
Daniel Fagerstrom wrote:

> Here the IMO best and most natural solution is to have different blocks 
> for different implementations. Say we have two different components that 
> implements the XsltProcessor inteface, the Xalan and the Saxon 
> implementation. Then if you have a Xalan block with its own embedded 
> configuration and a Saxon block with its own embedded configuration. If 
> you want to use the Xalan implementation you deploy the Xalan block and 
> if you want the Saxon implementation you deply the Saxon block.
> 
> The result of this thinking is that you have typically smaller and more 
> focused blocks, that contain components that are used togerther.
> 
> WDYT?
I'm not sure - on the one hand you're probably right. But this will lead
to too many blocks. If you think this through, this will require that
you make for each and every component an own block just to be able to
use a different implementation.

Carsten

-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


Re: [2.2] Configuration issues

2006-05-17 Thread Carsten Ziegeler
Ralph Goers wrote:
> I think Carsten is worried about the Portal. The portal has a lot of 
> configurable elements in it.
No actually I'm not worried about the portal - this will have a clean
solution for 2.2; I'm just more worried about core, for example how can
I configure my own store implementation without changing the core xconf?

Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


Re: [2.2] Configuration issues

2006-05-17 Thread Ralph Goers



Daniel Fagerstrom wrote:

Carsten Ziegeler skrev:

I'm currently wondering what the best way to configure 2.2 from a user
perspective is. We now have includes for xconfs and property
replacements which is great.
Now, each block comes with its own configuration files: all of them are
stored in the jar and on deployment some of these files are extracted:
so in the end there are roles files in the jar, xconf and property files
on the WEB-INF folder.
A user should never touch/change these files - so only way to customize
the settings is through properties. This requires that each and every
user configurable value must be replaced with a property! Now while this
approach is fine it has at least two problems:
1. A huge number of properties which sooner or later will create a mess.
  
Requiring the user of the block to define every property is far to 
inconvenient and error prone. A much better model is to have default 
values in the configuration file in the block and make it possible for 
the block user to optionally override the default value with own 
properties. This is the way configuration is handled in OSGi with a 
declarative service configuration file that gives the default and a 
configuration service that can override the default. Spring has some 
similar mechanism with the PropertyOverrideConfigurer 
http://static.springframework.org/spring/docs/1.2.x/api/org/springframework/beans/factory/config/PropertyOverrideConfigurer.html. 



For the Avalon configurations we could find some convention for 
translating configuration file element paths to property strings and 
then write a implementation of the avalon Configuration that override 
the configuration file based configuration with the property values. 
And feed that overridable configuration to the component in the 
BeanPostProcessor for the Avalon life cycle.
This is already the way it works in both 2.1 and 2.2.  Cocoon provides 
values for everything in property files within the block. The user can 
then provide their own values which override them. I think Carsten is 
simply worried because there are a lot of values you can specify.



2. This works only as long as the user wants to use the same
implementation for a component. Switching to an own implementation with
an own configuration is not possible.

Any idea on how to solve this?
Here the IMO best and most natural solution is to have different 
blocks for different implementations. Say we have two different 
components that implements the XsltProcessor inteface, the Xalan and 
the Saxon implementation. Then if you have a Xalan block with its own 
embedded configuration and a Saxon block with its own embedded 
configuration. If you want to use the Xalan implementation you deploy 
the Xalan block and if you want the Saxon implementation you deply the 
Saxon block.


The result of this thinking is that you have typically smaller and 
more focused blocks, that contain components that are used togerther.
I think Carsten is worried about the Portal. The portal has a lot of 
configurable elements in it.


WDYT?

/Daniel



Re: [2.2] Configuration issues

2006-05-17 Thread Daniel Fagerstrom

Carsten Ziegeler skrev:

I'm currently wondering what the best way to configure 2.2 from a user
perspective is. We now have includes for xconfs and property
replacements which is great.
Now, each block comes with its own configuration files: all of them are
stored in the jar and on deployment some of these files are extracted:
so in the end there are roles files in the jar, xconf and property files
on the WEB-INF folder.
A user should never touch/change these files - so only way to customize
the settings is through properties. This requires that each and every
user configurable value must be replaced with a property! Now while this
approach is fine it has at least two problems:
1. A huge number of properties which sooner or later will create a mess.
  
Requiring the user of the block to define every property is far to 
inconvenient and error prone. A much better model is to have default 
values in the configuration file in the block and make it possible for 
the block user to optionally override the default value with own 
properties. This is the way configuration is handled in OSGi with a 
declarative service configuration file that gives the default and a 
configuration service that can override the default. Spring has some 
similar mechanism with the PropertyOverrideConfigurer 
http://static.springframework.org/spring/docs/1.2.x/api/org/springframework/beans/factory/config/PropertyOverrideConfigurer.html.


For the Avalon configurations we could find some convention for 
translating configuration file element paths to property strings and 
then write a implementation of the avalon Configuration that override 
the configuration file based configuration with the property values. And 
feed that overridable configuration to the component in the 
BeanPostProcessor for the Avalon life cycle.



2. This works only as long as the user wants to use the same
implementation for a component. Switching to an own implementation with
an own configuration is not possible.

Any idea on how to solve this?
Here the IMO best and most natural solution is to have different blocks 
for different implementations. Say we have two different components that 
implements the XsltProcessor inteface, the Xalan and the Saxon 
implementation. Then if you have a Xalan block with its own embedded 
configuration and a Saxon block with its own embedded configuration. If 
you want to use the Xalan implementation you deploy the Xalan block and 
if you want the Saxon implementation you deply the Saxon block.


The result of this thinking is that you have typically smaller and more 
focused blocks, that contain components that are used togerther.


WDYT?

/Daniel



Re: [2.2] Configuration issues

2006-05-16 Thread Bertrand Delacretaz

On 5/16/06, Reinhard Poetz <[EMAIL PROTECTED]> wrote:


...As this will take some time I propose to do a a first beta release very soon
(last week of May) without configuration...


+1, there's plenty of stuff to digest anyway.

-Bertrand


Re: [2.2] Configuration issues

2006-05-16 Thread Ralph Goers



Reinhard Poetz wrote:


We should take some time to design the configuration and give room for 
discussions *before* somebody is implementing something.


As this will take some time I propose to do a a first beta release 
very soon (last week of May) without configuration.

+1.

Although this beta will be missing a lot it will provide a good basis to 
start encouraging feedback, and hopefully spur on some new activity.


Ralph


Re: [2.2] Configuration issues

2006-05-16 Thread Reinhard Poetz

Carsten Ziegeler wrote:

Reinhard Poetz wrote:


You *can* use the mechanisms I explained but you *don't have to*. If you want to 
benefit from from *particular* advantages that OSGi brings, you have to do 
something.




Ok, so we need another way :) I'll think about this in the next days. I
think without a proper solution 2.2 will be even worse than 2.1.x where
we have the nice patch tool.


We should take some time to design the configuration and give room for 
discussions *before* somebody is implementing something.


As this will take some time I propose to do a a first beta release very soon 
(last week of May) without configuration.


--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de


Re: [2.2] Configuration issues

2006-05-16 Thread Carsten Ziegeler
Reinhard Poetz wrote:

> 
> You *can* use the mechanisms I explained but you *don't have to*. If you want 
> to 
> benefit from from *particular* advantages that OSGi brings, you have to do 
> something.
> 
Ok, so we need another way :) I'll think about this in the next days. I
think without a proper solution 2.2 will be even worse than 2.1.x where
we have the nice patch tool.

Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


Re: [2.2] Configuration issues

2006-05-16 Thread Reinhard Poetz

Carsten Ziegeler wrote:

Reinhard Poetz wrote:


How does OSGi solve this?


Since OSGi4 declarative services are supported. Think of Spring dependency 
injection but considering interface/implementation relations. You can use the 
OSGi configuratonAdmin service to change an injected component or a component's 
properties.


Ok, but this is then configuration at runtime and not at development
time, right? Where are those values stored?


I will let you know as soon as I have time to work on this again (postponed it 
in favor of the 2.2beta1 release)



Additionally we have the possibility to redisgn e.g. forms and portal to use the 
OSGi whiteboard pattern[1]. Using it makes extending them very simple as it 
makes extensions very simple - you just have to provide a component that 
implements a particular interface and it is automatically added as reference to 
another component.




I don't want to rewrite blocks in order to use OSGi and I think one of
our main goals for using OSGi is that this does not affect the way how I
develop blocks which means it is totally transparent. So imho we need an
OSGi-free way which works at development time.


You *can* use the mechanisms I explained but you *don't have to*. If you want to 
benefit from from *particular* advantages that OSGi brings, you have to do 
something.


--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de


Re: [2.2] Configuration issues

2006-05-16 Thread Carsten Ziegeler
Reinhard Poetz wrote:
>> How does OSGi solve this?
> 
> Since OSGi4 declarative services are supported. Think of Spring dependency 
> injection but considering interface/implementation relations. You can use the 
> OSGi configuratonAdmin service to change an injected component or a 
> component's 
> properties.
Ok, but this is then configuration at runtime and not at development
time, right? Where are those values stored?

> 
> Additionally we have the possibility to redisgn e.g. forms and portal to use 
> the 
> OSGi whiteboard pattern[1]. Using it makes extending them very simple as it 
> makes extensions very simple - you just have to provide a component that 
> implements a particular interface and it is automatically added as reference 
> to 
> another component.
> 
I don't want to rewrite blocks in order to use OSGi and I think one of
our main goals for using OSGi is that this does not affect the way how I
develop blocks which means it is totally transparent. So imho we need an
OSGi-free way which works at development time.

Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


Re: [2.2] Configuration issues

2006-05-16 Thread Reinhard Poetz

Carsten Ziegeler wrote:

Reinhard Poetz wrote:
Do you want to solve this for our first release? If we add the "beta" postfix, 
adding some solution in the future isn't a problem. If you agree, I would like 
to postpone the discussion for the time after first beta release.


I personally would like to have this in the first beta release, so we
can see if this is the right solution and eventually change this in the
next beta :)


I would like to have a first beta release in May. If we're fast enough, I don't 
have a problem. I just wanted to say that finding a solution isn't a must.


@ your question: You probably don't like my answer but OSGi already solves this 
kind of problem for us. Considering this I would only go for a very simple 
solution so that user _can_ provide their own configuration files which are used 
_instead_ of a block's configuration. For the usual needs (forms, template, 
mail, apples, pdf block) this should be enough. Don't know about the portal 
which is probably the use case you're thinking of.


The portal is no problem as you have your own config file anyway. I'm
more thinking of core or some blocks were you just add your own
components or override some, like adding your own validator to cforms
(which is no problem) or overriding the default email validator with
your own one (which is a problem).

How does OSGi solve this?


Since OSGi4 declarative services are supported. Think of Spring dependency 
injection but considering interface/implementation relations. You can use the 
OSGi configuratonAdmin service to change an injected component or a component's 
properties.


Additionally we have the possibility to redisgn e.g. forms and portal to use the 
OSGi whiteboard pattern[1]. Using it makes extending them very simple as it 
makes extensions very simple - you just have to provide a component that 
implements a particular interface and it is automatically added as reference to 
another component.


[1] http://www.osgi.org/documents/osgi_technology/whiteboard.pdf

--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de


Re: [2.2] Configuration issues

2006-05-16 Thread Carsten Ziegeler
Reinhard Poetz wrote:
> Carsten Ziegeler wrote:
>> I'm currently wondering what the best way to configure 2.2 from a user
>> perspective is. We now have includes for xconfs and property
>> replacements which is great.
>> Now, each block comes with its own configuration files: all of them are
>> stored in the jar and on deployment some of these files are extracted:
>> so in the end there are roles files in the jar, xconf and property files
>> on the WEB-INF folder.
>> A user should never touch/change these files - so only way to customize
>> the settings is through properties. This requires that each and every
>> user configurable value must be replaced with a property! Now while this
>> approach is fine it has at least two problems:
>> 1. A huge number of properties which sooner or later will create a mess.
>> 2. This works only as long as the user wants to use the same
>> implementation for a component. Switching to an own implementation with
>> an own configuration is not possible.
>>
>> Any idea on how to solve this?
> 
> 
> Do you want to solve this for our first release? If we add the "beta" 
> postfix, 
> adding some solution in the future isn't a problem. If you agree, I would 
> like 
> to postpone the discussion for the time after first beta release.
I personally would like to have this in the first beta release, so we
can see if this is the right solution and eventually change this in the
next beta :)

> 
> @ your question: You probably don't like my answer but OSGi already solves 
> this 
> kind of problem for us. Considering this I would only go for a very simple 
> solution so that user _can_ provide their own configuration files which are 
> used 
> _instead_ of a block's configuration. For the usual needs (forms, template, 
> mail, apples, pdf block) this should be enough. Don't know about the portal 
> which is probably the use case you're thinking of.
The portal is no problem as you have your own config file anyway. I'm
more thinking of core or some blocks were you just add your own
components or override some, like adding your own validator to cforms
(which is no problem) or overriding the default email validator with
your own one (which is a problem).

How does OSGi solve this?

Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


Re: [2.2] Configuration issues

2006-05-16 Thread Reinhard Poetz

Carsten Ziegeler wrote:

I'm currently wondering what the best way to configure 2.2 from a user
perspective is. We now have includes for xconfs and property
replacements which is great.
Now, each block comes with its own configuration files: all of them are
stored in the jar and on deployment some of these files are extracted:
so in the end there are roles files in the jar, xconf and property files
on the WEB-INF folder.
A user should never touch/change these files - so only way to customize
the settings is through properties. This requires that each and every
user configurable value must be replaced with a property! Now while this
approach is fine it has at least two problems:
1. A huge number of properties which sooner or later will create a mess.
2. This works only as long as the user wants to use the same
implementation for a component. Switching to an own implementation with
an own configuration is not possible.

Any idea on how to solve this?



Do you want to solve this for our first release? If we add the "beta" postfix, 
adding some solution in the future isn't a problem. If you agree, I would like 
to postpone the discussion for the time after first beta release.


@ your question: You probably don't like my answer but OSGi already solves this 
kind of problem for us. Considering this I would only go for a very simple 
solution so that user _can_ provide their own configuration files which are used 
_instead_ of a block's configuration. For the usual needs (forms, template, 
mail, apples, pdf block) this should be enough. Don't know about the portal 
which is probably the use case you're thinking of.



--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de


[2.2] Configuration issues

2006-05-15 Thread Carsten Ziegeler
I'm currently wondering what the best way to configure 2.2 from a user
perspective is. We now have includes for xconfs and property
replacements which is great.
Now, each block comes with its own configuration files: all of them are
stored in the jar and on deployment some of these files are extracted:
so in the end there are roles files in the jar, xconf and property files
on the WEB-INF folder.
A user should never touch/change these files - so only way to customize
the settings is through properties. This requires that each and every
user configurable value must be replaced with a property! Now while this
approach is fine it has at least two problems:
1. A huge number of properties which sooner or later will create a mess.
2. This works only as long as the user wants to use the same
implementation for a component. Switching to an own implementation with
an own configuration is not possible.

Any idea on how to solve this?

Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/