001    package railo.runtime.functions.orm;
002    
003    import railo.runtime.PageContext;
004    import railo.runtime.exp.PageException;
005    import railo.runtime.listener.ApplicationContextPro;
006    import railo.runtime.orm.ORMConfiguration;
007    import railo.runtime.orm.ORMSession;
008    import railo.runtime.orm.ORMUtil;
009    
010    public class ORMReload {
011            public static String call(PageContext pc) throws PageException {
012                    
013                    // flush and close session
014                    ORMSession session = ORMUtil.getSession(pc,false);
015                    if(session!=null) {// MUST do the same with all sesson using the same engine
016                            ORMConfiguration config = session.getEngine().getConfiguration(pc);
017                            if(config.autoManageSession()) {
018                                    session.flush(pc);
019                                    session.close(pc);
020                            }
021                    }
022                    ((ApplicationContextPro)pc.getApplicationContext()).reinitORM(pc);
023                    ORMUtil.resetEngine(pc,true);
024                    return null;
025            }
026    }