code: @Override
      public void execute() throws MojoExecutionException, MojoFailureException {
          if (!classes.exists()) {
              FileUtils.mkdir(classes.getAbsolutePath());
          }
  
          List<File> entities = findEntityClassFiles();
          enhance(entities);
  
          File persistence = ensurePersistenceXml();
          final String path = getPathInBundle(persistence);
          if (path != null) {
              try {
                  BundlePackager.addExtraHeaderToBundleManifest(basedir, META_PERSISTENCE_HEADER,
                      path.replace("\\", "/")); // Invert path separator on windows.
              } catch (IOException e) {
                  throw new MojoExecutionException("Cannot save extra headers", e);
              }
          } else {
              getLog().warn("Cannot infer the path of the persistence.xml file in the bundle, " +
                      "do not forget to set the `Meta-Persistence` header in the `osgi.bnd` file");
          }
      }
docs: Perform whatever build-process behavior this <code>Mojo</code> implements.
  <br/>
  This is the main trigger for the <code>Mojo</code> inside the <code>Maven</code> system, and allows
  the <code>Mojo</code> to communicate errors.
  
  @throws org.apache.maven.plugin.MojoExecutionException if an unexpected problem occurs. Throwing this
  exception causes a "BUILD ERROR" message to be displayed.
  @throws org.apache.maven.plugin.MojoFailureException   if an expected problem (such as a compilation
  failure) occurs. Throwing this exception causes a "BUILD FAILURE" message to be displayed.