Class BndMavenPlugin

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

    @Mojo(name="bnd-process",
          defaultPhase=PROCESS_CLASSES,
          requiresDependencyResolution=COMPILE,
          threadSafe=true)
    public class BndMavenPlugin
    extends org.apache.maven.plugin.AbstractMojo
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String bnd
      Bnd instructions for this project specified directly in the pom file.
      private java.lang.String bndfile
      File path to a bnd file containing bnd instructions for this project.
      private org.sonatype.plexus.build.incremental.BuildContext buildContext  
      private java.io.File classesDir  
      private boolean includeClassesDir  
      private static org.slf4j.Logger logger  
      private static java.lang.String MANIFEST_LAST_MODIFIED  
      private java.io.File manifestPath  
      private static java.lang.String MARKED_FILES  
      private org.apache.maven.plugin.MojoExecution mojoExecution  
      private java.io.File outputDir  
      private static java.lang.String PACKAGING_JAR  
      private static java.lang.String PACKAGING_WAR  
      private java.util.List<java.lang.String> packagingTypes  
      private org.apache.maven.project.MavenProject project  
      private java.io.File propertiesFile  
      private java.util.List<org.apache.maven.model.Resource> resources  
      private org.apache.maven.settings.Settings settings  
      private boolean skip  
      private java.io.File sourceDir  
      private java.io.File targetDir  
      private static java.lang.String TSTAMP  
      private java.io.File warOutputDir  
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Constructor Summary

      Constructors 
      Constructor Description
      BndMavenPlugin()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.lang.StringBuilder addHeaderAttribute​(java.lang.StringBuilder builder, java.lang.String key, java.lang.String value, char separator)  
      private static java.lang.StringBuilder addHeaderValue​(java.lang.StringBuilder builder, java.lang.String value, char separator)  
      private org.codehaus.plexus.util.xml.Xpp3Dom defaultConfiguration()  
      void execute()  
      private void expandJar​(Jar jar, java.io.File dir)  
      private java.util.Optional<org.codehaus.plexus.util.xml.Xpp3Dom> getConfiguration​(java.util.List<org.apache.maven.model.Plugin> plugins)  
      private void loadParentProjectProperties​(Builder builder, org.apache.maven.project.MavenProject currentProject)  
      private java.io.File loadProjectProperties​(Builder builder, org.apache.maven.project.MavenProject bndProject, org.apache.maven.project.MavenProject pomProject, org.codehaus.plexus.util.xml.Xpp3Dom configuration)  
      private java.io.File loadProperties​(Builder builder)  
      private boolean manifestOutOfDate()  
      private void reportErrorsAndWarnings​(Builder builder)  
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • logger

        private static final org.slf4j.Logger logger
      • MANIFEST_LAST_MODIFIED

        private static final java.lang.String MANIFEST_LAST_MODIFIED
        See Also:
        Constant Field Values
      • targetDir

        @Parameter(defaultValue="${project.build.directory}",
                   readonly=true)
        private java.io.File targetDir
      • sourceDir

        @Parameter(defaultValue="${project.build.sourceDirectory}",
                   readonly=true)
        private java.io.File sourceDir
      • resources

        @Parameter(defaultValue="${project.build.resources}",
                   readonly=true)
        private java.util.List<org.apache.maven.model.Resource> resources
      • classesDir

        @Parameter(defaultValue="${project.build.outputDirectory}")
        private java.io.File classesDir
      • includeClassesDir

        @Parameter(defaultValue="true")
        private boolean includeClassesDir
      • outputDir

        @Parameter(defaultValue="${project.build.outputDirectory}")
        private java.io.File outputDir
      • warOutputDir

        @Parameter(defaultValue="${project.build.directory}/${project.build.finalName}")
        private java.io.File warOutputDir
      • manifestPath

        @Parameter(defaultValue="${project.build.outputDirectory}/META-INF/MANIFEST.MF")
        private java.io.File manifestPath
      • project

        @Parameter(defaultValue="${project}",
                   required=true,
                   readonly=true)
        private org.apache.maven.project.MavenProject project
      • settings

        @Parameter(defaultValue="${settings}",
                   readonly=true)
        private org.apache.maven.settings.Settings settings
      • mojoExecution

        @Parameter(defaultValue="${mojoExecution}",
                   readonly=true)
        private org.apache.maven.plugin.MojoExecution mojoExecution
      • skip

        @Parameter(property="bnd.skip",
                   defaultValue="false")
        private boolean skip
      • packagingTypes

        @Parameter(property="bnd.packagingTypes",
                   defaultValue="jar,war")
        private java.util.List<java.lang.String> packagingTypes
      • bndfile

        @Parameter(defaultValue="bnd.bnd")
        private java.lang.String bndfile
        File path to a bnd file containing bnd instructions for this project. Defaults to bnd.bnd. The file path can be an absolute or relative to the project directory.

        The bnd instructions for this project are merged with the bnd instructions, if any, for the parent project.

      • bnd

        @Parameter
        private java.lang.String bnd
        Bnd instructions for this project specified directly in the pom file. This is generally be done using a <![CDATA[]]> section. If the projects has a bnd file, then this configuration element is ignored.

        The bnd instructions for this project are merged with the bnd instructions, if any, for the parent project.

      • buildContext

        @Component
        private org.sonatype.plexus.build.incremental.BuildContext buildContext
      • propertiesFile

        private java.io.File propertiesFile
    • Constructor Detail

      • BndMavenPlugin

        public BndMavenPlugin()
    • Method Detail

      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException,
                            org.apache.maven.plugin.MojoFailureException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
        org.apache.maven.plugin.MojoFailureException
      • addHeaderValue

        private static java.lang.StringBuilder addHeaderValue​(java.lang.StringBuilder builder,
                                                              java.lang.String value,
                                                              char separator)
      • addHeaderAttribute

        private static java.lang.StringBuilder addHeaderAttribute​(java.lang.StringBuilder builder,
                                                                  java.lang.String key,
                                                                  java.lang.String value,
                                                                  char separator)
      • loadProperties

        private java.io.File loadProperties​(Builder builder)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • loadParentProjectProperties

        private void loadParentProjectProperties​(Builder builder,
                                                 org.apache.maven.project.MavenProject currentProject)
                                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • loadProjectProperties

        private java.io.File loadProjectProperties​(Builder builder,
                                                   org.apache.maven.project.MavenProject bndProject,
                                                   org.apache.maven.project.MavenProject pomProject,
                                                   org.codehaus.plexus.util.xml.Xpp3Dom configuration)
                                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getConfiguration

        private java.util.Optional<org.codehaus.plexus.util.xml.Xpp3Dom> getConfiguration​(java.util.List<org.apache.maven.model.Plugin> plugins)
      • defaultConfiguration

        private org.codehaus.plexus.util.xml.Xpp3Dom defaultConfiguration()
      • reportErrorsAndWarnings

        private void reportErrorsAndWarnings​(Builder builder)
                                      throws org.apache.maven.plugin.MojoFailureException
        Throws:
        org.apache.maven.plugin.MojoFailureException
      • expandJar

        private void expandJar​(Jar jar,
                               java.io.File dir)
                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • manifestOutOfDate

        private boolean manifestOutOfDate()