WOApplication.ApplicationWillFinishLaunchingNotification,
ERXApplication.ApplicationDidCreateNotification,
    public static void setUpFrameworkPrincipalClass(Class c) {        try {            NSLog.debug.appendln("Loaded items: " + initializedFrameworks);            if(observer == null) {                observer = new Observer();                NSNotificationCenter center = NSNotificationCenter.defaultCenter();                center.addObserver(observer,                        new NSSelector("finishInitialization",  ERXConstant.NotificationClassArray),                        WOApplication.ApplicationWillFinishLaunchingNotification,                        null);                           }            if (initializedFrameworks.objectForKey(c.getName()) == null) {                NSLog.debug.appendln("Starting up: " + c.getName());                try {                    Field f = c.getField("REQUIRES");                    Class requires[] = (Class[]) f.get(c);                    for (int i = 0; i < requires.length; i++) {                        Class requirement = requires[i];                        setUpFrameworkPrincipalClass(requirement);                    }                } catch (NoSuchFieldException e) {                    // nothing                    // NSLog.debug.appendln("No requirements: " + c.getName());                } catch (IllegalAccessException e) {                    NSLog.err.appendln("Can't read field REQUIRES from " + c.getName() + ", check if it is 'public static Class[] REQUIRES= new Class[] {...}' in this class");                    NSForwardException._runtimeExceptionForThrowable(e);                }                ERXFrameworkPrincipal principal = (ERXFrameworkPrincipal)c.newInstance();                initializedFrameworks.setObjectForKey(principal,c.getName());                principal.initialize();                launchingFrameworks.addObject(principal);                NSLog.debug.appendln("Initialized : " + c.getName());            } else {                NSLog.debug.appendln("Was already inited: " + c.getName());            }        } catch (InstantiationException e) {            throw NSForwardException._runtimeExceptionForThrowable(e);        } catch (IllegalAccessException e) {            throw NSForwardException._runtimeExceptionForThrowable(e);        }    }