public class ThreadContext { private final String dbpath; private final NSFComponentModule module; private final String servername; private final String username; public ThreadContext(String username, String servername, String dpath, NSFComponentModule module) { this.username = username; this.servername = servername; this.dbpath = dpath; this.module = module; } public lotus.domino.Database getContextDatabase() { try { getSessionAsUser().getDatabase(this.servername, this.dbpath); } catch (Throwable t) { t.printStackTrace(); } return null; } public lotus.domino.Session getSessionAsUser() { NotesContext nc = new NotesContext(this.module); NotesContext.initThread(nc); try { long hList = com.ibm.domino.napi.c.NotesUtil.createUserNameList(username); return XSPNative.createXPageSession(username, hList, true, false); } catch (Throwable t) { t.printStackTrace(); } return null; } public void initClassLoader(Thread t) { t.setContextClassLoader(this.module.getModuleClassLoader()); } }