Class JavaAnnotationsMojoDescriptorExtractor
- java.lang.Object
-
- org.codehaus.plexus.logging.AbstractLogEnabled
-
- org.apache.maven.tools.plugin.extractor.annotations.JavaAnnotationsMojoDescriptorExtractor
-
- All Implemented Interfaces:
MojoDescriptorExtractor
,org.codehaus.plexus.logging.LogEnabled
@Named("java-annotations") @Singleton public class JavaAnnotationsMojoDescriptorExtractor extends org.codehaus.plexus.logging.AbstractLogEnabled implements MojoDescriptorExtractor
JavaMojoDescriptorExtractor, a MojoDescriptor extractor to read descriptors from java classes with annotations. Notice that source files are also parsed to get description, since and deprecation information.- Since:
- 3.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
JavaAnnotationsMojoDescriptorExtractor.ClassVersionComparator
Compares class file format versions.
-
Field Summary
Fields Modifier and Type Field Description private org.codehaus.plexus.archiver.manager.ArchiverManager
archiverManager
private static java.util.Map<java.lang.Integer,java.lang.String>
CLASS_VERSION_TO_JAVA_STRING
private static GroupKey
GROUP_KEY
private JavadocBlockTagsToXhtmlConverter
javadocBlockTagsToHtmlConverter
private JavadocInlineTagsToXhtmlConverter
javadocInlineTagsToHtmlConverter
(package private) MojoAnnotationsScanner
mojoAnnotationsScanner
static java.lang.String
NAME
private org.eclipse.aether.RepositorySystem
repositorySystem
-
Constructor Summary
Constructors Constructor Description JavaAnnotationsMojoDescriptorExtractor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass>
discoverClasses(com.thoughtworks.qdox.JavaProjectBuilder builder)
java.util.List<org.apache.maven.plugin.descriptor.MojoDescriptor>
execute(PluginToolsRequest request)
Execute the mojo extraction.private void
extendJavaProjectBuilder(com.thoughtworks.qdox.JavaProjectBuilder builder, java.util.List<java.io.File> sourceDirectories, java.util.Set<org.apache.maven.artifact.Artifact> artifacts)
private void
extendJavaProjectBuilder(com.thoughtworks.qdox.JavaProjectBuilder builder, org.apache.maven.project.MavenProject project)
protected void
extendJavaProjectBuilderWithSourcesJar(com.thoughtworks.qdox.JavaProjectBuilder builder, org.apache.maven.artifact.Artifact artifact, PluginToolsRequest request, java.lang.String classifier)
private java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaAnnotatedElement>
extractFieldsAnnotations(com.thoughtworks.qdox.model.JavaClass javaClass, java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass> javaClassesMap)
extract fields that are either parameters or components.private java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaAnnotatedElement>
extractMethodsAnnotations(com.thoughtworks.qdox.model.JavaClass javaClass, java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass> javaClassesMap)
extract methods that are parameters.protected MojoAnnotatedClass
findClassWithExecuteAnnotationInParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
private com.thoughtworks.qdox.model.DocletTag
findInClassHierarchy(com.thoughtworks.qdox.model.JavaClass javaClass, java.lang.String tagName)
protected java.util.List<ComponentAnnotationContent>
getComponentParent(MojoAnnotatedClass mojoAnnotatedClass, java.util.List<ComponentAnnotationContent> componentAnnotationContents, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
protected java.util.Map<java.lang.String,ComponentAnnotationContent>
getComponentsParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
(package private) java.lang.String
getDescriptionFromElement(com.thoughtworks.qdox.model.JavaAnnotatedElement element, JavaClassConverterContext context)
Returns the XHTML description from the given element.protected org.apache.maven.project.MavenProject
getFromProjectReferences(org.apache.maven.artifact.Artifact artifact, org.apache.maven.project.MavenProject project)
GroupKey
getGroupKey()
Returns theGroupKey
of extractor, asMojoScanner
will execute them grouped, and ordered within groups.java.lang.String
getName()
Returns the "name" (id) of the extractor.protected java.util.List<ParameterAnnotationContent>
getParametersParent(MojoAnnotatedClass mojoAnnotatedClass, java.util.List<ParameterAnnotationContent> parameterAnnotationContents, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
protected java.util.Map<java.lang.String,ParameterAnnotationContent>
getParametersParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
(package private) java.lang.String
getRawValueFromTaglet(com.thoughtworks.qdox.model.DocletTag docletTag, ConverterContext context)
boolean
isDeprecated()
Returnstrue
if extractor is deprecated.private boolean
isMojoAnnnotatedClassCandidate(MojoAnnotatedClass mojoAnnotatedClass)
private boolean
isPublicSetterMethod(com.thoughtworks.qdox.model.JavaMethod method)
protected void
populateDataFromJavadoc(com.thoughtworks.qdox.JavaProjectBuilder javaProjectBuilder, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses, java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass> javaClassesMap, JavadocLinkGenerator linkGenerator)
from sources scan to get @since and @deprecated and description of classes and fields.private java.util.Map<java.lang.String,MojoAnnotatedClass>
scanAnnotations(PluginToolsRequest request)
private com.thoughtworks.qdox.JavaProjectBuilder
scanJavadoc(PluginToolsRequest request, java.util.Collection<MojoAnnotatedClass> mojoAnnotatedClasses)
private java.util.List<org.apache.maven.plugin.descriptor.MojoDescriptor>
toMojoDescriptors(java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses, org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor)
-
Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor
getRequiredJavaVersion
-
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
GROUP_KEY
private static final GroupKey GROUP_KEY
-
CLASS_VERSION_TO_JAVA_STRING
private static final java.util.Map<java.lang.Integer,java.lang.String> CLASS_VERSION_TO_JAVA_STRING
- See Also:
- JVMS 4.1
-
mojoAnnotationsScanner
@Inject MojoAnnotationsScanner mojoAnnotationsScanner
-
repositorySystem
@Inject private org.eclipse.aether.RepositorySystem repositorySystem
-
archiverManager
@Inject private org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager
-
javadocInlineTagsToHtmlConverter
@Inject private JavadocInlineTagsToXhtmlConverter javadocInlineTagsToHtmlConverter
-
javadocBlockTagsToHtmlConverter
@Inject private JavadocBlockTagsToXhtmlConverter javadocBlockTagsToHtmlConverter
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from interface:MojoDescriptorExtractor
Returns the "name" (id) of the extractor.- Specified by:
getName
in interfaceMojoDescriptorExtractor
-
isDeprecated
public boolean isDeprecated()
Description copied from interface:MojoDescriptorExtractor
Returnstrue
if extractor is deprecated.- Specified by:
isDeprecated
in interfaceMojoDescriptorExtractor
-
getGroupKey
public GroupKey getGroupKey()
Description copied from interface:MojoDescriptorExtractor
Returns theGroupKey
of extractor, asMojoScanner
will execute them grouped, and ordered within groups. Must never returnnull
.- Specified by:
getGroupKey
in interfaceMojoDescriptorExtractor
-
execute
public java.util.List<org.apache.maven.plugin.descriptor.MojoDescriptor> execute(PluginToolsRequest request) throws ExtractionException, org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException
Description copied from interface:MojoDescriptorExtractor
Execute the mojo extraction.- Specified by:
execute
in interfaceMojoDescriptorExtractor
- Parameters:
request
- ThePluginToolsRequest
containing information for the extraction process.- Returns:
- a list of mojo descriptors. These may return HTML values for some fields.
- Throws:
ExtractionException
- if anyorg.apache.maven.plugin.descriptor.InvalidPluginDescriptorException
- if any
-
scanAnnotations
private java.util.Map<java.lang.String,MojoAnnotatedClass> scanAnnotations(PluginToolsRequest request) throws ExtractionException
- Throws:
ExtractionException
-
scanJavadoc
private com.thoughtworks.qdox.JavaProjectBuilder scanJavadoc(PluginToolsRequest request, java.util.Collection<MojoAnnotatedClass> mojoAnnotatedClasses) throws ExtractionException
- Throws:
ExtractionException
-
isMojoAnnnotatedClassCandidate
private boolean isMojoAnnnotatedClassCandidate(MojoAnnotatedClass mojoAnnotatedClass)
-
populateDataFromJavadoc
protected void populateDataFromJavadoc(com.thoughtworks.qdox.JavaProjectBuilder javaProjectBuilder, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses, java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass> javaClassesMap, JavadocLinkGenerator linkGenerator)
from sources scan to get @since and @deprecated and description of classes and fields.
-
getDescriptionFromElement
java.lang.String getDescriptionFromElement(com.thoughtworks.qdox.model.JavaAnnotatedElement element, JavaClassConverterContext context)
Returns the XHTML description from the given element. This may refer to either goal, parameter or component.- Parameters:
element
- the element for which to generate the descriptioncontext
- the context with which to call the converter- Returns:
- the generated description
-
getRawValueFromTaglet
java.lang.String getRawValueFromTaglet(com.thoughtworks.qdox.model.DocletTag docletTag, ConverterContext context)
-
findInClassHierarchy
private com.thoughtworks.qdox.model.DocletTag findInClassHierarchy(com.thoughtworks.qdox.model.JavaClass javaClass, java.lang.String tagName)
- Parameters:
javaClass
- not nulltagName
- not null- Returns:
- docletTag instance
-
extractFieldsAnnotations
private java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaAnnotatedElement> extractFieldsAnnotations(com.thoughtworks.qdox.model.JavaClass javaClass, java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass> javaClassesMap)
extract fields that are either parameters or components.- Parameters:
javaClass
- not null- Returns:
- map with Mojo parameters names as keys
-
extractMethodsAnnotations
private java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaAnnotatedElement> extractMethodsAnnotations(com.thoughtworks.qdox.model.JavaClass javaClass, java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass> javaClassesMap)
extract methods that are parameters.- Parameters:
javaClass
- not null- Returns:
- map with Mojo parameters names as keys
-
isPublicSetterMethod
private boolean isPublicSetterMethod(com.thoughtworks.qdox.model.JavaMethod method)
-
discoverClasses
protected java.util.Map<java.lang.String,com.thoughtworks.qdox.model.JavaClass> discoverClasses(com.thoughtworks.qdox.JavaProjectBuilder builder)
-
extendJavaProjectBuilderWithSourcesJar
protected void extendJavaProjectBuilderWithSourcesJar(com.thoughtworks.qdox.JavaProjectBuilder builder, org.apache.maven.artifact.Artifact artifact, PluginToolsRequest request, java.lang.String classifier) throws ExtractionException
- Throws:
ExtractionException
-
extendJavaProjectBuilder
private void extendJavaProjectBuilder(com.thoughtworks.qdox.JavaProjectBuilder builder, org.apache.maven.project.MavenProject project)
-
extendJavaProjectBuilder
private void extendJavaProjectBuilder(com.thoughtworks.qdox.JavaProjectBuilder builder, java.util.List<java.io.File> sourceDirectories, java.util.Set<org.apache.maven.artifact.Artifact> artifacts)
-
toMojoDescriptors
private java.util.List<org.apache.maven.plugin.descriptor.MojoDescriptor> toMojoDescriptors(java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses, org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor) throws org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException
- Throws:
org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException
-
findClassWithExecuteAnnotationInParentHierarchy
protected MojoAnnotatedClass findClassWithExecuteAnnotationInParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
-
getParametersParentHierarchy
protected java.util.Map<java.lang.String,ParameterAnnotationContent> getParametersParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
-
getParametersParent
protected java.util.List<ParameterAnnotationContent> getParametersParent(MojoAnnotatedClass mojoAnnotatedClass, java.util.List<ParameterAnnotationContent> parameterAnnotationContents, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
-
getComponentsParentHierarchy
protected java.util.Map<java.lang.String,ComponentAnnotationContent> getComponentsParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
-
getComponentParent
protected java.util.List<ComponentAnnotationContent> getComponentParent(MojoAnnotatedClass mojoAnnotatedClass, java.util.List<ComponentAnnotationContent> componentAnnotationContents, java.util.Map<java.lang.String,MojoAnnotatedClass> mojoAnnotatedClasses)
-
getFromProjectReferences
protected org.apache.maven.project.MavenProject getFromProjectReferences(org.apache.maven.artifact.Artifact artifact, org.apache.maven.project.MavenProject project)
-
-