docs: private void generatePom(LibertyFeature feature, List<MavenCoordinates> featureCompileDependencies, Map<String, LibertyFeature> allFeatures, File outputDir,
  			Constants.ArtifactType type) throws MavenRepoGeneratorException {
  		MavenCoordinates coordinates = feature.getMavenCoordinates();
  		Model model = new Model();
  		model.setModelVersion(Constants.MAVEN_MODEL_VERSION);
  		model.setGroupId(coordinates.getGroupId());
  		model.setArtifactId(coordinates.getArtifactId());
  		model.setVersion(coordinates.getVersion());
  		model.setName(feature.getName());
  		model.setDescription(feature.getDescription());
  		model.setPackaging(type.getType());
  		setLicense(model, coordinates.getVersion(), true, feature.isRestrictedLicense(), Constants.WEBSPHERE_LIBERTY_FEATURES_GROUP_ID.equals(coordinates.getGroupId()));
  		boolean isWebsphereLiberty = Constants.WEBSPHERE_LIBERTY_FEATURES_GROUP_ID.equals(coordinates.getGroupId());
  		if (!isWebsphereLiberty){
  			setScmDevUrl(model);
  		}
  		
  		List<Dependency> dependencies = new ArrayList<Dependency>();
  		model.setDependencies(dependencies);
  					
  		// ESA depends on other ESAs
  		List<LibertyFeature> requiredFeatures = getRequiredFeatures(feature, allFeatures);
  		if (!requiredFeatures.isEmpty()) {
  			for (LibertyFeature requiredFeature : requiredFeatures) {
  				MavenCoordinates requiredArtifact = requiredFeature.getMavenCoordinates();
  				addDependency(dependencies, requiredArtifact, type,null);
  			}
  		}
  				
  		if (featureCompileDependencies != null) {
  			for (MavenCoordinates requiredArtifact : featureCompileDependencies) {
  				addDependency(dependencies, requiredArtifact, null,null);
  			}
  		}
  		
  		File artifactDir = new File(outputDir, Utils.getRepositorySubpath(coordinates));
  		File targetFile = new File(artifactDir, Utils.getFileName(coordinates, Constants.ArtifactType.POM));
  		
  		try {
  			Writer writer = new FileWriter(targetFile);
  			new MavenXpp3Writer().write( writer, model );
  			writer.close();
  		} catch (IOException e) {
  			throw new MavenRepoGeneratorException("Could not write POM file " + targetFile, e);
  		}
  		
  	}