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 ClassesModifier and TypeClassDescription(package private) static final class
Compares class file format versions. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.codehaus.plexus.archiver.manager.ArchiverManager
private static final GroupKey
private JavadocBlockTagsToXhtmlConverter
(package private) MojoAnnotationsScanner
static final String
private org.eclipse.aether.RepositorySystem
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondiscoverClasses
(com.thoughtworks.qdox.JavaProjectBuilder builder) List
<org.apache.maven.plugin.descriptor.MojoDescriptor> execute
(PluginToolsRequest request) Execute the mojo extraction.private void
extendJavaProjectBuilder
(com.thoughtworks.qdox.JavaProjectBuilder builder, List<File> sourceDirectories, 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, String classifier) extractFieldsAnnotations
(com.thoughtworks.qdox.model.JavaClass javaClass, Map<String, com.thoughtworks.qdox.model.JavaClass> javaClassesMap) extract fields that are either parameters or components.extractMethodsAnnotations
(com.thoughtworks.qdox.model.JavaClass javaClass, Map<String, com.thoughtworks.qdox.model.JavaClass> javaClassesMap) extract methods that are parameters.protected MojoAnnotatedClass
findClassWithExecuteAnnotationInParentHierarchy
(MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) private com.thoughtworks.qdox.model.DocletTag
findInClassHierarchy
(com.thoughtworks.qdox.model.JavaClass javaClass, String tagName) protected List
<ComponentAnnotationContent> getComponentParent
(MojoAnnotatedClass mojoAnnotatedClass, List<ComponentAnnotationContent> componentAnnotationContents, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) protected Map
<String, ComponentAnnotationContent> getComponentsParentHierarchy
(MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) (package private) 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) Returns theGroupKey
of extractor, asMojoScanner
will execute them grouped, and ordered within groups.getName()
Returns the "name" (id) of the extractor.protected List
<ParameterAnnotationContent> getParametersParent
(MojoAnnotatedClass mojoAnnotatedClass, List<ParameterAnnotationContent> parameterAnnotationContents, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) protected Map
<String, ParameterAnnotationContent> getParametersParentHierarchy
(MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) (package private) String
getRawValueFromTaglet
(com.thoughtworks.qdox.model.DocletTag docletTag, ConverterContext context) boolean
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, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses, Map<String, com.thoughtworks.qdox.model.JavaClass> javaClassesMap, JavadocLinkGenerator linkGenerator) from sources scan to get @since and @deprecated and description of classes and fields.private Map
<String, MojoAnnotatedClass> scanAnnotations
(PluginToolsRequest request) private com.thoughtworks.qdox.JavaProjectBuilder
scanJavadoc
(PluginToolsRequest request, Collection<MojoAnnotatedClass> mojoAnnotatedClasses) private List
<org.apache.maven.plugin.descriptor.MojoDescriptor> toMojoDescriptors
(Map<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 Details
-
NAME
- See Also:
-
GROUP_KEY
-
CLASS_VERSION_TO_JAVA_STRING
- See Also:
-
mojoAnnotationsScanner
-
repositorySystem
@Inject private org.eclipse.aether.RepositorySystem repositorySystem -
archiverManager
@Inject private org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager -
javadocInlineTagsToHtmlConverter
-
javadocBlockTagsToHtmlConverter
-
-
Constructor Details
-
JavaAnnotationsMojoDescriptorExtractor
public JavaAnnotationsMojoDescriptorExtractor()
-
-
Method Details
-
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
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 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 Map<String,MojoAnnotatedClass> scanAnnotations(PluginToolsRequest request) throws ExtractionException - Throws:
ExtractionException
-
scanJavadoc
private com.thoughtworks.qdox.JavaProjectBuilder scanJavadoc(PluginToolsRequest request, Collection<MojoAnnotatedClass> mojoAnnotatedClasses) throws ExtractionException - Throws:
ExtractionException
-
isMojoAnnnotatedClassCandidate
-
populateDataFromJavadoc
protected void populateDataFromJavadoc(com.thoughtworks.qdox.JavaProjectBuilder javaProjectBuilder, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses, Map<String, com.thoughtworks.qdox.model.JavaClass> javaClassesMap, JavadocLinkGenerator linkGenerator) from sources scan to get @since and @deprecated and description of classes and fields. -
getDescriptionFromElement
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
String getRawValueFromTaglet(com.thoughtworks.qdox.model.DocletTag docletTag, ConverterContext context) -
findInClassHierarchy
private com.thoughtworks.qdox.model.DocletTag findInClassHierarchy(com.thoughtworks.qdox.model.JavaClass javaClass, String tagName) - Parameters:
javaClass
- not nulltagName
- not null- Returns:
- docletTag instance
-
extractFieldsAnnotations
private Map<String,com.thoughtworks.qdox.model.JavaAnnotatedElement> extractFieldsAnnotations(com.thoughtworks.qdox.model.JavaClass javaClass, Map<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 Map<String,com.thoughtworks.qdox.model.JavaAnnotatedElement> extractMethodsAnnotations(com.thoughtworks.qdox.model.JavaClass javaClass, Map<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
-
extendJavaProjectBuilderWithSourcesJar
protected void extendJavaProjectBuilderWithSourcesJar(com.thoughtworks.qdox.JavaProjectBuilder builder, org.apache.maven.artifact.Artifact artifact, PluginToolsRequest request, String classifier) throws ExtractionException - Throws:
ExtractionException
-
extendJavaProjectBuilder
private void extendJavaProjectBuilder(com.thoughtworks.qdox.JavaProjectBuilder builder, org.apache.maven.project.MavenProject project) -
extendJavaProjectBuilder
-
toMojoDescriptors
private List<org.apache.maven.plugin.descriptor.MojoDescriptor> toMojoDescriptors(Map<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, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) -
getParametersParentHierarchy
protected Map<String,ParameterAnnotationContent> getParametersParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) -
getParametersParent
protected List<ParameterAnnotationContent> getParametersParent(MojoAnnotatedClass mojoAnnotatedClass, List<ParameterAnnotationContent> parameterAnnotationContents, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) -
getComponentsParentHierarchy
protected Map<String,ComponentAnnotationContent> getComponentsParentHierarchy(MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) -
getComponentParent
protected List<ComponentAnnotationContent> getComponentParent(MojoAnnotatedClass mojoAnnotatedClass, List<ComponentAnnotationContent> componentAnnotationContents, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) -
getFromProjectReferences
protected org.apache.maven.project.MavenProject getFromProjectReferences(org.apache.maven.artifact.Artifact artifact, org.apache.maven.project.MavenProject project)
-