// First initialize basic properties (things that do not depend on anything else)
for (Iterator descriptorEnum = descriptors.iterator(); descriptorEnum.hasNext();) {
try {
ClassDescriptor descriptor = (ClassDescriptor)descriptorEnum.next();
AbstractSession session = getSessionForClass(descriptor.getJavaClass());
if (descriptor.requiresInitialization()) {
descriptor.preInitialize(session);
}
//check if inheritance is involved in aggregate relationship, and let the parent know the child descriptor
if (descriptor.isAggregateDescriptor() && descriptor.isChildDescriptor()) {