private void readMetadata(Properties properties) {
		String dsFile = properties.getProperty(IWProperties.P_DS_FILE);
		dsFile = CommonUtil.checkAndRelocateFolder(mainFolder, dsFile, CommonUtil.PATH_PATTERN);
		metadata.setLocation(dsFile);

		String specFile = properties.getProperty(IWProperties.P_DS_SPEC);
		specFile = CommonUtil.checkAndRelocateFolder(mainFolder, specFile, CommonUtil.PATH_PATTERN);
		metadata.setSpecFile(specFile);
		
		if (dsFile == null) {
			errorMessage = "Unable to process data source file: " + dsFile;
		}
		if (specFile == null) {
			errorMessage = "Unable to process data source spec file: " + specFile;
		}
		
		if (properties.containsKey(IWProperties.P_DS_METADATA)) {
			String metadataFile = properties.getProperty(IWProperties.P_DS_METADATA);
			metadataFile = CommonUtil.checkAndRelocateFolder(mainFolder, metadataFile, CommonUtil.PATH_PATTERN);
			readMetadataFromJSON(metadataFile);
		} else {
			if (properties.containsKey(IWProperties.P_DS_TITLE)) {
				metadata.setTitle(properties.getProperty(IWProperties.P_DS_TITLE));
			}
			if (properties.containsKey(IWProperties.P_DS_ACRONYM)) {
				metadata.setAcronym(properties.getProperty(IWProperties.P_DS_ACRONYM));
			}
			if (properties.containsKey(IWProperties.P_DS_DESCRIPTION)) {
				metadata.setDescription(properties.getProperty(IWProperties.P_DS_DESCRIPTION));
			}
			if (properties.containsKey(IWProperties.P_DS_HOMEPAGE)) {
				metadata.setUrl(properties.getProperty(IWProperties.P_DS_HOMEPAGE));
			}
			if (properties.containsKey(IWProperties.P_DS_RELEASEDATE)) {
				metadata.setReleaseDate(properties.getProperty(IWProperties.P_DS_RELEASEDATE));
			}
		}
	}