private void validateProperties(RecoveryProperties properties) {
			if (isNullOrWhitespace(properties.getUsername())) {
				throw new RecoveryException("No username provided");
			}
			if (isNullOrWhitespace(properties.getPassword())) {
				throw new RecoveryException("No password provided");
			}
			if (isNullOrWhitespace(properties.getHostname())) {
				throw new RecoveryException("No hostname provided");
			}
			if (isNullOrWhitespace(properties.getSchema())) {
				throw new RecoveryException("No schema provided");
			}
			if (isNullOrWhitespace(properties.getBackupPath())) {
				throw new RecoveryException("No backup path provided");
			} else {
				File file = new File(properties.getBackupPath());
				if (!file.exists()) {
					throw new RecoveryException("Backup path does not exist: " + properties.getBackupPath());
				} else if (!file.isDirectory()) {
					throw new RecoveryException("Backup path is not a directory: " + properties.getBackupPath());
				} else if (!file.canRead() || !file.canWrite()) {
					throw new RecoveryException("Backup path read / write permissions not valid: " + properties.getBackupPath());
				}
			}
		}