Source:
public ChainedProperties(String confFileName, ClassLoader classLoader, boolean populateDefaults) { this.props = new ArrayList<Properties>(); this.defaultProps = new ArrayList<Properties>(); addProperties( System.getProperties() ); loadProperties( System.getProperty( "drools." + confFileName ), this.props ); loadProperties( System.getProperty( "user.home" ) + "/drools." + confFileName, this.props ); loadProperties( "drools." + confFileName, this.props ); ClassLoader confClassLoader = classLoader; loadProperties( getResources( "META-INF/drools." + confFileName, confClassLoader ), this.props, confClassLoader ); loadProperties( getResources( "/META-INF/drools." + confFileName, confClassLoader ), this.props, confClassLoader ); confClassLoader = Thread.currentThread().getContextClassLoader(); loadPropertiesFromClassLoader( confFileName, classLoader, confClassLoader ); try { confClassLoader = ClassLoader.getSystemClassLoader(); loadPropertiesFromClassLoader( confFileName, classLoader, confClassLoader ); } catch (Throwable t) { } if ( !populateDefaults ) { return; } confClassLoader = classLoader; loadProperties( getResources( "META-INF/drools.default." + confFileName, confClassLoader ), this.defaultProps, confClassLoader ); loadProperties( getResources( "/META-INF/drools.default." + confFileName, confClassLoader ), this.defaultProps, confClassLoader ); confClassLoader = Thread.currentThread().getContextClassLoader(); loadDefaultsFromClassLoader( confFileName, classLoader, confClassLoader ); try { confClassLoader = ClassLoader.getSystemClassLoader(); loadDefaultsFromClassLoader( confFileName, classLoader, confClassLoader ); } catch (Throwable t) { } if (this.defaultProps.isEmpty()) { try { Class<?> c = Class.forName("org.drools.compiler.lang.MVELDumper", false, classLoader); URL confURL = c.getResource("/META-INF/drools.default." + confFileName); loadProperties(confURL, this.defaultProps); } catch (ClassNotFoundException e) { } } }

Target:
public ChainedProperties(String confFileName, ClassLoader classLoader, boolean populateDefaults) { this.props = new ArrayList<Properties>(); this.defaultProps = new ArrayList<Properties>(); addProperties( System.getProperties() ); loadProperties( System.getProperty( "drools." + confFileName ), this.props ); loadProperties( System.getProperty( "user.home" ) + "/drools." + confFileName, this.props ); loadProperties( "drools." + confFileName, this.props ); loadProperties( getResources( "META-INF/drools." + confFileName, classLoader ), this.props, classLoader ); loadProperties( getResources( "/META-INF/drools." + confFileName, classLoader ), this.props, classLoader ); loadPropertiesFromClassLoader( confFileName, classLoader, Thread.currentThread().getContextClassLoader() ); ClassLoader systemClassLoader = null; try { systemClassLoader = ClassLoader.getSystemClassLoader(); } catch (SecurityException se) { } loadPropertiesFromClassLoader( confFileName, classLoader, systemClassLoader ); if ( !populateDefaults ) { return; } loadProperties( getResources( "META-INF/drools.default." + confFileName, classLoader ), this.defaultProps, classLoader ); loadProperties( getResources( "/META-INF/drools.default." + confFileName, classLoader ), this.defaultProps, classLoader ); loadDefaultsFromClassLoader( confFileName, classLoader, Thread.currentThread().getContextClassLoader() ); loadDefaultsFromClassLoader( confFileName, classLoader, systemClassLoader ); if (this.defaultProps.isEmpty()) { try { Class<?> c = Class.forName("org.drools.compiler.lang.MVELDumper", false, classLoader); URL confURL = c.getResource("/META-INF/drools.default." + confFileName); loadProperties(confURL, this.defaultProps); } catch (ClassNotFoundException e) { } } }