2011/10/8 Russell E Glaue <firstname.lastname@example.org>
On 10/06/2011 10:31 PM, Ivan wrote:
> 2011/10/7 Russell E Glaue <email@example.com <mailto:firstname.lastname@example.org>>
>Yes, I understand that it is optional. Sorry I was not clear. I was meaning if
> To make this clear, and allow me to ask a question, let's look at an example
> case study, and tell me if this is how it will happen.
> A Geronimo User is running G2.2 and want to deploy a G3.0 server side-by-side.
> User has a web application with the deployment plan "WEB-INF/geronimo-web.xml"
> To be able to deploy to both servers, you are suggesting the User needs a second
> deployment plan "WEB-INF/geronimo-web_3.0.0.xml".
> After which, during the User's testing of G3.0.0, G3.0.1 is released and the
> User upgrades to G3.0.1.
> I did not mean that the users have to provide an extra file for 3.0.0
> server. It is only required when some incompatible features are used. e.g.
> import-package. For the server deployer, it will first check whether there is a
> specific plan file for the current version, say geronimo-web_3.0.1.xml, if it
> exists, use that file, or it will check the geronimo-web.xml file.
the developer wants to use the optional geronimo-web_3.0.0.xml file, do they
have to rename it to geronimo-web_3.0.1.xml when they upgrade G3 from 3.0.0 to
3.0.1? And you answered that below, in the next block, which is we could read
them all in.
Which one has precedence? geronimo-web.xml or geronimo-web_3.0.1.xml
So I mean, if some feature is declared in both, but configured differently among
both, which one is the final accepted configuration? I would assume that the
version-suffix deployment plan holds the final configuration - is this your
We could search for all files matching the name /geronimo-web.*\.xml/, sort
> Are you saying the User needs to either rename "WEB-INF/geronimo-web_3.0.0.xml"
> to "WEB-INF/geronimo-web_3.0.1.xml", or create a new deployment plan as
> That sounds fine to me for small case scenarios like this.
> For the minor version, maybe we could make the algorithm more elegant, the
> deployer will also check the file for 3.0.0 exists if current version is 3.0.1 ?
them, and read the content in accordingly, overlaying the structure on top of
each other as we ascend from geronimo-web.xml to geronimo-web_X.X.X.xml.
Firstly, if there are multiple files in the directory, it looks to me that only one will be used, as merging multiple files may introduce some odd issues.
For the precedence order, my rough idea is :
a. strict version matches
b. backward searching all the files belong to the same major and minor version. If the running server is 3.0.21, the deployer could search 3.0.20 -> 3.0.0
c. default file, e.g. geronimo-web.xml
If a user wants to deploy in both Geronimo versions, this will certainly require
> Can I ask just for the sake of asking, assuming we are not removing schema
> elements of the deployment plan between maintenance revisions, is it sufficient
> to recognize the deployment plan by minor revision instead of by maintenance
> We usually do NOT remove the unused elements in the schema files, and with
> this, it is possible to keep forward-compatibility, which means those old
> deployment plan files could still be used without no change in the new server,
> and deployer will print some warning message to notify the users those unused
> elements are deprecated. The problem here is that, how to make the
> back-compatibility, and how to make the deployment plan with new added elements
> could be used in a previous server.
them to be pragmatic about it. But I think it is a good idea. A developer can
maintain a web application for an older version, while at the same time testing
it with a newer version using the suffix-versioned deployment plan. I know, in
real life, our developers with my employer would benefit every time I upgrade
versions and the schema changes. We have ran into hiccups in this migration
process, which your suggestion would help alleviate.
But my previous question:
Do we add schema for new features in maintenance releases?
Say between G3.0.0 and G3.0.21?
Or do we restrict adding schema for new features to minor releases?
Say between G3.0.0 and G3.1.0?
I think that it depends on, and so far I did not see there is a related rule in the community. Please figure it out if I missed it :-)
Mostly, schema files will not change usually, and we even do not update the schema versions if we only add the new elements (this is actually what we always do), which will not break the compatibility, those old files could be validated successfully with the new schema.
The recent big changes in the schema is incoming Geronimo 3.0 beta. due to the OSGi integration, and it only add new elements.
I ask because I was considering it would be less confusing and more easily
manageable if the version-suffix deployment plans we maintained at the minor
version, rather than the maintenance version - this is as long as we are
restricting schema changes to minor releases - we probably would not want to do
this as I suggest if we allow schema changes in maintenance releases.
Yes, any new feature should not bring confusion to the users, or it is not a good feature :-) In my expectation, the users only need to add a new version-suffix deployment plan files id they have to take advantage of those new features, and usually, they just need to leave the files there. e.g. If the application has to support both geronimo-2.1/2.2/3.0, and a new file is required for 3.0, he could just create a default file geronimo-web.xml for 2.1 and 2.2, and one new file geronimo-web-3.0.0.xml for 3.0. In the future, if a new feature is imported in 3.0.12, they could just create a file named geronimo-web-3.0.12 there.
> <mailto:email@example.com <mailto:firstname.lastname@example.org>>>
> So instead of "WEB-INF/geronimo-web_3.0.0.xml" and
> "WEB-INF/geronimo-web_3.0.1.xml", the deployment plan file
> "WEB-INF/geronimo-web_3.0.xml" would suffice and cover both cases.
> On 10/05/2011 07:59 PM, Ivan wrote:
> > I think that the number should be consistent with the running Geronimo
> > and it looks to me this change is kept in the all future versions
> > 2011/10/4 Russell E Glaue <email@example.com
> > This would be a good option to support cross version compatibility.
> > Would the suffix remain the same for minor releases, or would we
> increment the
> > version number in the suffix (i.e. geronimo-web_3.0.1.xml)?
> > In what future version would this feature be deprecated? Or would we
> > this methodology in all future versions?
> > -RG
> > On 10/01/2011 02:43 AM, Ivan wrote:
> > > Hi, although we are trying to make the deployment plan compatible among
> > > different versions,there are still differences. e.g. some OSGi
> metadata are
> > > imported in the latest 3.0 release. So, if the users would hope to
> use the
> > same
> > > application package for different versions, there may be an issue. I am
> > thinking
> > > that we could use version as suffix for the deployment plans. For
> the web
> > > application, Geronimo will first try to find a
> geronimo-web_3.0.0.xml in the
> > > WEB-INF directory, if not it will uses geronimo-web.xml file. With this,
> > it may
> > > get the life easier.
> > > Thoughts ?
> > >
> > > --
> > > Ivan
> > --
> > Ivan