Class SpoonPom

java.lang.Object
spoon.support.compiler.SpoonPom
All Implemented Interfaces:
SpoonResource

public class SpoonPom extends Object implements SpoonResource
  • Constructor Details

    • SpoonPom

      public SpoonPom(String path, MavenLauncher.SOURCE_TYPE sourceType, Environment environment) throws IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserException
      Extract the information from the pom
      Parameters:
      path - the path to the pom
      Throws:
      IOException - when the file does not exist
      org.codehaus.plexus.util.xml.pull.XmlPullParserException - when the file is corrupted
    • SpoonPom

      public SpoonPom(String path, MavenLauncher.SOURCE_TYPE sourceType, Environment environment, Pattern profileFilter) throws IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserException
      Extract the information from the pom
      Parameters:
      path - the path to the pom
      profileFilter - regex pattern to filter profiles when expanding defined modules. Only modules in matching profiles are expanded
      Throws:
      IOException - when the file does not exist
      org.codehaus.plexus.util.xml.pull.XmlPullParserException - when the file is corrupted
    • SpoonPom

      public SpoonPom(String path, SpoonPom parent, MavenLauncher.SOURCE_TYPE sourceType, Environment environment) throws IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserException
      Extract the information from the pom
      Parameters:
      path - the path to the pom
      parent - the parent pom
      Throws:
      IOException - when the file does not exist
      org.codehaus.plexus.util.xml.pull.XmlPullParserException - when the file is corrupted
    • SpoonPom

      public SpoonPom(String path, SpoonPom parent, MavenLauncher.SOURCE_TYPE sourceType, Environment environment, Pattern profileFilter) throws IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserException
      Extract the information from the pom
      Parameters:
      path - the path to the pom
      parent - the parent pom
      profileFilter - regex pattern to filter profiles when expanding defined modules. Only modules in matching profiles are expanded
      Throws:
      IOException - when the file does not exist
      org.codehaus.plexus.util.xml.pull.XmlPullParserException - when the file is corrupted
  • Method Details

    • getModules

      public List<SpoonPom> getModules()
      Get the list of modules defined in this POM
      Returns:
      the list of modules
    • getModel

      public org.apache.maven.model.Model getModel()
      Get the Project Object Model
      Returns:
      the Project Object Model
    • getSourceDirectories

      public List<File> getSourceDirectories()
      Get the list of source directories of the project
      Returns:
      the list of source directories
    • getTestDirectories

      public List<File> getTestDirectories()
      Get the list of test directories of the project
      Returns:
      the list of test directories
    • getClasspathTmpFiles

      public List<File> getClasspathTmpFiles(String fileName)
      Get the list of classpath files generated by maven
      Returns:
      the list of classpath files
    • getSourceVersion

      public int getSourceVersion()
      Get the source version of the project
      Returns:
      the source version of the project
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • guessMavenHome

      public static String guessMavenHome()
      Try to guess Maven home when none is provided.
      Returns:
      the path toward maven install on the local machine.
      Throws:
      SpoonException - if path to maven executable is wrong, process is interrupted, or maven home could not be found.
    • buildClassPath

      public String[] buildClassPath(String mvnHome, MavenLauncher.SOURCE_TYPE sourceType, org.slf4j.Logger LOGGER, boolean forceRefresh)
      Call maven invoker to generate the classpath. Either M2_HOME must be initialized, or the command mvn must be in PATH.
      Parameters:
      mvnHome - the path to the m2repository
      sourceType - the source type (App, test, or all)
      LOGGER - Logger used for maven output
      forceRefresh - if true forces the invocation of maven to regenerate classpath
      Returns:
      the complete classpath of the requested source types
    • buildClassPath

      public String[] buildClassPath(String mvnHome, MavenLauncher.SOURCE_TYPE sourceType, org.slf4j.Logger LOGGER, boolean forceRefresh, SpoonPom.MavenOptions mavenOptions)
      Call maven invoker to generate the classpath. Either M2_HOME must be initialized, or the command mvn must be in PATH.
      Parameters:
      mvnHome - the path to the m2repository
      sourceType - the source type (App, test, or all)
      LOGGER - Logger used for maven output
      forceRefresh - if true forces the invocation of maven to regenerate classpath
      mavenOptions - additional options to pass to maven
    • getParentPom

      public SpoonPom getParentPom()
      Get the parent model
      Returns:
      the parent model
    • getParent

      public SpoonFolder getParent()
      Get the parent directory
      Specified by:
      getParent in interface SpoonResource
      Returns:
      the parent directory
    • getFileSystemParent

      public File getFileSystemParent()
      Description copied from interface: SpoonResource
      Gets the parent of this resource on the file system.
      Specified by:
      getFileSystemParent in interface SpoonResource
    • getName

      public String getName()
      Description copied from interface: SpoonResource
      Gets the name of this resource.
      Specified by:
      getName in interface SpoonResource
    • isFile

      public boolean isFile()
      Description copied from interface: SpoonResource
      Tells if this resource is a file.
      Specified by:
      isFile in interface SpoonResource
    • isArchive

      public boolean isArchive()
      Description copied from interface: SpoonResource
      Tells if this resource is an archive.
      Specified by:
      isArchive in interface SpoonResource
    • getPath

      public String getPath()
      Description copied from interface: SpoonResource
      Gets this resource path.
      Specified by:
      getPath in interface SpoonResource
    • toFile

      public File toFile()
      Description copied from interface: SpoonResource
      Gets the corresponding file if possible (returns null if this resource does not correspond to any file on the filesystem).
      Specified by:
      toFile in interface SpoonResource