Robert Burrell Donkin ha scritto: > On Tue, Nov 18, 2008 at 9:19 AM, Stefano Bagnara <[EMAIL PROTECTED]> wrote: >> Robert Burrell Donkin ha scritto: >>> On Mon, Nov 17, 2008 at 8:35 AM, Stefano Bagnara <[EMAIL PROTECTED]> wrote: > > <snip> > >>>> I'm fine with repackaging, but we should remember that this will mean >>>> that we need many <mailetpackages>/<matcherpackages> in our config, and >>>> that we won't provide backward compatibility for config.xml unless we >>>> add some hardcoded hack or we add a compatibility layer with >>>> matchers/mailets in the old places. > > AIUI packaging is important for OSGi. splitting packages across jars > is not good. so i think it's worthwhile thinking about repackaging. > > we're going to need new mailet loading mechanisms in any case. for > example, the sieve mailet needs an IoC mailet loader (eg spring). > > <snip> > >>>> I don't know anymore if we are still on a backward compatible config.xml >>>> or if we decided to abandon that goal. >>> IMHO more detail is needed about what a commitment means in detail >>> >>> are we committing to: >>> >>> 1. maintain compatibility with 2.3 or with earlier versions of 3.0? >>> 2. maintain compatibility with custom configurations? >> What we tried to commit in past was being able to start james trunk with >> most james 2.3 user's *config.xml*. This meant adding many hacks every >> time we changed the granularity of components in order to keep the old >> conf working, or almost working. > > ok > > so: we're considering backwards compatibility for the config.xml (not > assembly etc) against the 2.3 user config.xml > > AIUI no schema exists for config.xml so there isn't any clear way to > know exactly what this commitment would mean. perhaps we need to > create a clear schema for 2.3.
Every mailet has its own properties and xml tags. So there is no easy way to write a schema. Talking about config.xml compatibility means IMHO having compatibility for the default configuration and the variations we propose in comments. IMO 99% of users only changes values for already existing tags without altering the tag structure of the config.xml (excluding the mailet/matcher configuration). >> IMHO either we keep this and really try to run james 2.3 config.xml or >> we completely give up with phoenix style config.xml and introduce a >> whole new method to configure. Having a similar config method with an >> incompatible "runtime" will make people to try to use their config (even >> if we explain what is compatible and what is not) and we'll spend too >> much time in user support. > > i see your point. on the other hand, not offering an upgrade path for > existing users seems a little wrong. Upgrade path is a cost. Having the "upgrade path" as a show stopper for the next release could mean decrease probability to have a new release anytime. IMO 3.0 new features. If, at that time, users need an upgrade path we'll evaluate what kind of upgrade path is needed (automatic tool, vs documentation) and maybe release a 3.01/3.1 including the upgrade tools. > i would really like to be able to load the configuration from more > than one document. i find a single configuration file inconvenient. This is not a technical issue: phoenix can load each component configuration from its own file. I don't have a preference on the configuration style ATM, but I remember some PMC was against splitting the config in multiple files. If you have something in mind please make an example so we have something to evaluate and compare pro/cons. >> Furthermore IMO we should keep (or provide support for) *bidirectional* >> compatibility for the storage layers (db/dbfile/file for >> mail/spool/users repository). This is a must to let people try the new >> code and eventually revert to their old installation if something does >> not work as expected. As a system administrator I'll think thrice before >> upgrading something that change my data format. We still have people >> trying to use james 2.2.0 !?!?! and it is a PITA to support these people >> (at least for me as I used james 2.2.0 more than 3 years ago the last time). > > if this is required for every possible combination of stores then this > would be a big commitment As long as we have a bridge to current MailRepository/SpoolRepository/UsersRepository interface it should work. The fact is that not only users but also developers will not upgrade if they don't know they can start the old tool if something goes wrong. I, for example, won't be able to test a new version in production if this requirement is not met. The trunk from some months ago did work fine on the same data as 2.3.1 (I don't know what is the current status). > if one standard store were picked then it might be feasible to offer > bidirectional compatibility just to that Unfortunately file,db and dbfile are both used equally as far as I can tell supporting users. While I see the cost of supporting backward compatibility I don't see really a gain in dropping part of them. BTW this discussion belong to when some concrete proposal will be made about new storage types (or new interfaces to the storage). There is no need to discuss about hypothetical changes. (I remember 3 years ago we discussed about a new storage type.. everyone, of course, forgot what we discussed as it did not happen soon). Stefano --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
