@Override
	protected void doStart() throws ServiceException {
		super.doStart();
		
		this.logger = LoggingService.getInstance(getCore());
		if (this.filename == null) {
			this.properties = new Properties();
			return;
		}

		File file = new File(this.filename);
		if (!file.exists() || file.isDirectory()) {
			this.logger.logWarning(LOGGING_SOURCE, "unable to locate properties file " + file.getAbsolutePath());			
			this.properties = new Properties();
			return;
		}
		
		try {
			FileInputStream fis = new FileInputStream(file);
			this.properties = new Properties();
			this.properties.load(fis);
			fis.close();
		} catch (Exception e) {
			this.logger.logError(LOGGING_SOURCE, "unable to load properties from " + file.getAbsolutePath());
			throw new ServiceException("unable to load properties file", e);
		}
		
		this.logger.logNotice(LOGGING_SOURCE, "properties loaded from file " + file.getAbsolutePath());
	}