/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.test.runner.maven;
import java.io.File;
import java.io.FileReader;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Creates Maven {@link Model}.
*
* @since 4.0
*/
public class MavenModelFactory {
protected static final Logger LOGGER = LoggerFactory.getLogger(MavenModelFactory.class);
/**
* Creates a {@link Model} by reading the {@code pom.xml} file.
*
* @param pomFile to parse and read the model
* @return {@link Model} representing the Maven project from pom file.
*/
public static Model createMavenProject(File pomFile) {
MavenXpp3Reader mavenReader = new MavenXpp3Reader();
if (pomFile != null && pomFile.exists()) {
try (FileReader reader = new FileReader(pomFile)) {
Model model = mavenReader.read(reader);
model.setPomFile(pomFile);
return model;
} catch (Exception e) {
throw new RuntimeException("Couldn't get Maven Artifact from pom: " + pomFile);
}
}
throw new IllegalArgumentException("pom file doesn't exits for path: " + pomFile);
}
}