private static void read()
	{
		FileInputStream fisTmp = null;
		Properties props = new Properties();

		try
		{
			fisTmp = new FileInputStream(EzimConf.getConfFilename());
			props.load(fisTmp);
		}
		catch(FileNotFoundException fnfe)
		{
			// we can safely ignore this
			EzimLogger.getInstance().warning(fnfe.getMessage(), fnfe);
		}
		catch(Exception e)
		{
			EzimLogger.getInstance().severe(e.getMessage(), e);
		}
		finally
		{
			try
			{
				if (fisTmp != null) fisTmp.close();
			}
			catch(Exception e)
			{
				EzimLogger.getInstance().severe(e.getMessage(), e);
			}
		}

		try
		{
			for(Field fld: EzimConf.class.getFields())
			{
				EzimSetting setting  = fld.getAnnotation(EzimSetting.class);

				if (null == setting) continue;

				try
				{
					fld.set
					(
						null
						, EzimConf.castFromStr
						(
							setting.type()
							, props.getProperty
							(
								setting.name()
								, setting.defaultValue()
							)
						)
					);
				}
				catch(Exception e)
				{
					EzimLogger.getInstance().warning
					(
						"Cannot set property \"" + fld.getName() + "\"."
						, e
					);
				}
			}
		}
		catch(Exception e)
		{
			EzimLogger.getInstance().severe(e.getMessage(), e);
		}
	}