/** * Loads a class with an instance of the OpenmrsClassLoader. Convenience method equivalent to * OpenmrsClassLoader.getInstance().loadClass(className); * * @param className the class to load * @return the class that was loaded * @throws ClassNotFoundException * @should load class with the OpenmrsClassLoader */ public static Class<?> loadClass(String className) throws ClassNotFoundException { return OpenmrsClassLoader.getInstance().loadClass(className); }
/** * Get the static/singular instance of the module class loader * * @return OpenmrsClassLoader */ public static OpenmrsClassLoader getInstance() { if (OpenmrsClassLoaderHolder.INSTANCE == null) { OpenmrsClassLoaderHolder.INSTANCE = new OpenmrsClassLoader(); } return OpenmrsClassLoaderHolder.INSTANCE; }
private DefaultMessageSourceServiceImpl() { InputStream stream = OpenmrsClassLoader.getInstance().getResourceAsStream("messages.properties"); if (stream != null) { OpenmrsUtil.loadProperties(props, stream); } }
while (drivers.hasMoreElements()) { Driver driver = drivers.nextElement(); if (driver.getClass().getClassLoader() == getInstance()) { try { DriverManager.deregisterDriver(driver); for (WeakReference<Class<?>> refClazz : getInstance().cachedClasses.values()) { if (refClazz == null) { continue; if (Modifier.isFinal(mods)) { if (!(field.getType().getName().startsWith("javax."))) { nullInstance(field.get(null)); getInstance().cachedClasses.clear();
/** * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, * javax.servlet.ServletResponse, javax.servlet.FilterChain) */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Set thread's class loader Thread.currentThread().setContextClassLoader(OpenmrsClassLoader.getInstance()); // Carry on up the chain chain.doFilter(request, response); }
@Test public void shouldUpgradeModule() { Module module = ModuleFactory.getModuleById(MODULE3_ID); assertTrue(module.getVersion().equals("1.0-SNAPSHOT")); URL url = OpenmrsClassLoader.getInstance().getResource("org/openmrs/module/include/test3-2.0-SNAPSHOT.omod"); module.setDownloadURL("file:" + url.getFile()); createWebInfFolderIfNotExist(); ModuleFactory.stopModule(module, false, true); // stop the module with these parameters so that mandatory modules can be upgraded WebModuleUtil.stopModule(module, ((XmlWebApplicationContext) applicationContext).getServletContext()); Module newModule = ModuleFactory.updateModule(module); WebModuleUtil.startModule(newModule, ((XmlWebApplicationContext) applicationContext).getServletContext(), false); //module3 should have upgraded from version 1.0 to 2.0 module = ModuleFactory.getModuleById(MODULE3_ID); assertTrue(module.getVersion().equals("2.0-SNAPSHOT")); }
Enumeration<URL> list = OpenmrsClassLoader.getInstance().getResources("moduleApplicationContext.xml"); while (list.hasMoreElements()) { xmlReader.loadBeanDefinitions(new UrlResource(list.nextElement()));
OpenmrsClassLoader.saveState(); SchedulerUtil.shutdown(); ServiceContext.destroyInstance(); OpenmrsClassLoader.destroyInstance(); ctx.setClassLoader(OpenmrsClassLoader.getInstance()); Thread.currentThread().setContextClassLoader(OpenmrsClassLoader.getInstance()); ctx.setClassLoader(OpenmrsClassLoader.getInstance()); Thread.currentThread().setContextClassLoader(OpenmrsClassLoader.getInstance()); OpenmrsClassLoader.restoreState(); SchedulerUtil.startup(Context.getRuntimeProperties()); OpenmrsClassLoader.setThreadsToNewClassLoader();
private OpenmrsClassScanner() { this.metadataReaderFactory = new SimpleMetadataReaderFactory(OpenmrsClassLoader.getInstance()); this.resourceResolver = new PathMatchingResourcePatternResolver(OpenmrsClassLoader.getInstance()); }
assertTrue(module.getVersion().equals("1.0-SNAPSHOT")); URL url = OpenmrsClassLoader.getInstance().getResource("org/openmrs/module/include/test1-2.0-SNAPSHOT.omod"); module.setDownloadURL("file:" + url.getFile());
Enumeration<URL> resources = OpenmrsClassLoader.getInstance().getResources(relPath); while (resources.hasMoreElements()) {
/** * @see org.openmrs.api.ObsService#registerHandler(String, String) */ @Override public void registerHandler(String key, String handlerClass) throws APIException { try { Class<?> loadedClass = OpenmrsClassLoader.getInstance().loadClass(handlerClass); registerHandler(key, (ComplexObsHandler) loadedClass.newInstance()); } catch (Exception e) { throw new APIException("unable.load.and.instantiate.handler", null, e); } }
/** * Determine whether a class was loaded by this class loader or one of its child class loaders. <br> * <br> * Borrowed from Tomcat's WebappClassLoader */ protected static boolean loadedByThisOrChild(Class<?> clazz) { boolean result = false; for (ClassLoader classLoader = clazz.getClassLoader(); null != classLoader; classLoader = classLoader.getParent()) { if (classLoader.equals(getInstance())) { result = true; break; } } return result; }
URL url = OpenmrsClassLoader.getInstance().getResource("org/openmrs/module/include/test3-1.0-SNAPSHOT.omod"); File file = new File(url.getFile()); module = ModuleFactory.loadModule(file);
cls = OpenmrsClassLoader.getInstance().loadClass(classString); + String.valueOf(cls == OpenmrsClassLoader.getInstance().loadClass(classString)));
if (classLoader == getInstance()) { continue; thread.setContextClassLoader(getInstance());
@Test @Verifies(value = "Should save archived form to the database", method = "reprocessArchivedForm") public void reprocessArchivedForm_shouldProcessForm() throws Exception { EncounterService encService = Context.getEncounterService(); String path = OpenmrsClassLoader.getInstance().getResource("archivedFormData.xml").getPath(); System.out.println("Path: "+path); //Get the SerializableFormObject SerializableFormObject formObject = SerializableFormObject.deserializeXml(path); Assert.assertEquals("da7f524f-27ce-4bb2-86d6-6d1d05312bd5",formObject.getPatientUuid()); Patient patient = Context.getPatientService().getPatientByUuid("da7f524f-27ce-4bb2-86d6-6d1d05312bd5"); int noEnc = encService.getEncountersByPatient(patient).size(); service.reprocessArchivedForm(path); int newNoEnc = encService.getEncountersByPatient(patient).size(); Assert.assertEquals(noEnc+1,newNoEnc); }
instance = OpenmrsClassLoader.getInstance().loadClass(handlerGlobalValue).newInstance();
/** * @see org.springframework.web.servlet.FrameworkServlet#initFrameworkServlet() */ @Override protected void initFrameworkServlet() throws ServletException, BeansException { // refresh the application context to look for module xml config files as well Thread.currentThread().setContextClassLoader(OpenmrsClassLoader.getInstance()); log.debug("Framework being initialized"); WebModuleUtil.setDispatcherServlet(this); super.initFrameworkServlet(); }
String classname = metadataReader.getClassMetadata().getClassName(); try { Class<?> metadata = OpenmrsClassLoader.getInstance().loadClass(classname); types.add(metadata);