Package spoon.support.compiler
Class SpoonPom
java.lang.Object
spoon.support.compiler.SpoonPom
- All Implemented Interfaces:
SpoonResource
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Additional options for maven invocations. -
Constructor Summary
ConstructorDescriptionSpoonPom(String path, MavenLauncher.SOURCE_TYPE sourceType, Environment environment)
Extract the information from the pomSpoonPom(String path, MavenLauncher.SOURCE_TYPE sourceType, Environment environment, Pattern profileFilter)
Extract the information from the pomSpoonPom(String path, SpoonPom parent, MavenLauncher.SOURCE_TYPE sourceType, Environment environment)
Extract the information from the pomSpoonPom(String path, SpoonPom parent, MavenLauncher.SOURCE_TYPE sourceType, Environment environment, Pattern profileFilter)
Extract the information from the pom -
Method Summary
Modifier and TypeMethodDescriptionString[]
buildClassPath(String mvnHome, MavenLauncher.SOURCE_TYPE sourceType, org.slf4j.Logger LOGGER, boolean forceRefresh)
Call maven invoker to generate the classpath.String[]
buildClassPath(String mvnHome, MavenLauncher.SOURCE_TYPE sourceType, org.slf4j.Logger LOGGER, boolean forceRefresh, SpoonPom.MavenOptions mavenOptions)
Call maven invoker to generate the classpath.getClasspathTmpFiles(String fileName)
Get the list of classpath files generated by mavenGets the parent of this resource on the file system.org.apache.maven.model.Model
getModel()
Get the Project Object ModelGet the list of modules defined in this POMgetName()
Gets the name of this resource.Get the parent directoryGet the parent modelgetPath()
Gets this resource path.Get the list of source directories of the projectint
Get the source version of the projectGet the list of test directories of the projectstatic String
Try to guess Maven home when none is provided.boolean
Tells if this resource is an archive.boolean
isFile()
Tells if this resource is a file.toFile()
Gets the corresponding file if possible (returns null if this resource does not correspond to any file on the filesystem).toString()
-
Constructor Details
-
SpoonPom
public SpoonPom(String path, MavenLauncher.SOURCE_TYPE sourceType, Environment environment) throws IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserExceptionExtract the information from the pom- Parameters:
path
- the path to the pom- Throws:
IOException
- when the file does not existorg.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.XmlPullParserExceptionExtract the information from the pom- Parameters:
path
- the path to the pomprofileFilter
- regex pattern to filter profiles when expanding defined modules. Only modules in matching profiles are expanded- Throws:
IOException
- when the file does not existorg.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.XmlPullParserExceptionExtract the information from the pom- Parameters:
path
- the path to the pomparent
- the parent pom- Throws:
IOException
- when the file does not existorg.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.XmlPullParserExceptionExtract the information from the pom- Parameters:
path
- the path to the pomparent
- the parent pomprofileFilter
- regex pattern to filter profiles when expanding defined modules. Only modules in matching profiles are expanded- Throws:
IOException
- when the file does not existorg.codehaus.plexus.util.xml.pull.XmlPullParserException
- when the file is corrupted
-
-
Method Details
-
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
Get the list of source directories of the project- Returns:
- the list of source directories
-
getTestDirectories
Get the list of test directories of the project- Returns:
- the list of test directories
-
getClasspathTmpFiles
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
-
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 m2repositorysourceType
- the source type (App, test, or all)LOGGER
- Logger used for maven outputforceRefresh
- 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 m2repositorysourceType
- the source type (App, test, or all)LOGGER
- Logger used for maven outputforceRefresh
- if true forces the invocation of maven to regenerate classpathmavenOptions
- additional options to pass to maven
-
getParentPom
Get the parent model- Returns:
- the parent model
-
getParent
Get the parent directory- Specified by:
getParent
in interfaceSpoonResource
- Returns:
- the parent directory
-
getFileSystemParent
Description copied from interface:SpoonResource
Gets the parent of this resource on the file system.- Specified by:
getFileSystemParent
in interfaceSpoonResource
-
getName
Description copied from interface:SpoonResource
Gets the name of this resource.- Specified by:
getName
in interfaceSpoonResource
-
isFile
public boolean isFile()Description copied from interface:SpoonResource
Tells if this resource is a file.- Specified by:
isFile
in interfaceSpoonResource
-
isArchive
public boolean isArchive()Description copied from interface:SpoonResource
Tells if this resource is an archive.- Specified by:
isArchive
in interfaceSpoonResource
-
getPath
Description copied from interface:SpoonResource
Gets this resource path.- Specified by:
getPath
in interfaceSpoonResource
-
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 interfaceSpoonResource
-