I've done some more historical research and now want to keep the include element and am inclined to keep the import element with its current name. Discussion inline.

On Nov 18, 2005, at 3:35 PM, David Jencks wrote:

It's become apparent recently that some of the elements in our plans related to classloading are a bit confusing. In particular, there is an include element that no one is sure what is for and is not used, and a similarly named import element that is like the parentId, only better :-). Also the lists of special classes for the classloader are in between the import and dependency elements.

I'd like to change the schema for all plans to use this:

    <xs:group name="classloader-infoGroup">
        <xs:sequence>
<xs:element ref="sys:parent" minOccurs="0" maxOccurs="unbounded"/> <!-- <xs:element name="include" type="sys:dependencyType" minOccurs="0" maxOccurs="unbounded"/>--> <xs:element ref="sys:dependency" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="sys:hidden-classes" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="sys:non-overridable-classes" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>

Now I want:

    <xs:group name="classloader-infoGroup">
        <xs:sequence>
<xs:element ref="sys:import" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="include" type="sys:dependencyType" minOccurs="0" maxOccurs="unbounded"/> <!-- this should be a ref also --> <xs:element ref="sys:dependency" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="sys:hidden-classes" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="sys:non-overridable-classes" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:group>



The differences are that:

import is renamed parent. This seems less confusing to me. I can support backwards compatibility in most plans, although perhaps not plain gbean plans.

Reasons for keeping import:
1. We have already put out M5 using import, and I remember promising that we wouldn't change the xml incompatibly.
2.  Apparently the term import is used by osgi for a similar purpose.


include is removed.

Reasons for keeping include:
What include does is to copy the contents of the dependency into the car file. This is not particularly useful for server side configurations that depend on other configurations, and really need a repository. However, its really intended for building small executable jars that include everything they need to run. For instance the shutdown jar would be an ideal candidate for this. We can include as much kernel, gbeans, etc as we need and still fit it all into a single jar that can be moved around away from the repo and still work without reliance on fragile mechanisms such as manifest classpath.


the class lists are moved to the end. This makes more sense to me, in that first we have the info on what goes into the current classloader in the way of parents and contents, and then we have the modifications to that list.

I still want to do this.

thanks
david jencks


Comments?

thanks
david jencks


Reply via email to