From c85efa1ec88898e1000189d9af3d7b964cec9ac3 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 27 Apr 2020 12:52:31 +0200 Subject: [PATCH] Reduce dependencies --- 0001-Disable-help-MOJO-generation.patch | 92 +++++++++++++++++++++++++ 0001-Port-to-plexus-utils-3.0.24.patch | 33 --------- 0002-Remove-dependency-on-jtidy.patch | 92 +++++++++++++++++++++++++ 0003-Disable-reporting.patch | 90 ++++++++++++++++++++++++ maven-plugin-tools.spec | 40 +++++++---- 5 files changed, 300 insertions(+), 47 deletions(-) create mode 100644 0001-Disable-help-MOJO-generation.patch delete mode 100644 0001-Port-to-plexus-utils-3.0.24.patch create mode 100644 0002-Remove-dependency-on-jtidy.patch create mode 100644 0003-Disable-reporting.patch diff --git a/0001-Disable-help-MOJO-generation.patch b/0001-Disable-help-MOJO-generation.patch new file mode 100644 index 0000000..220407c --- /dev/null +++ b/0001-Disable-help-MOJO-generation.patch @@ -0,0 +1,92 @@ +From 4d7b7bbd40fb82ef78f0a27135a8dc9075d132ea Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 27 Apr 2020 12:52:15 +0200 +Subject: [PATCH 1/3] Disable help MOJO generation + +--- + .../plugin/plugin/HelpGeneratorMojo.java | 20 +------------------ + .../generator/PluginDescriptorGenerator.java | 11 ---------- + 2 files changed, 1 insertion(+), 30 deletions(-) + +diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java +index 767567b..1004867 100644 +--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java ++++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java +@@ -28,8 +28,6 @@ import org.apache.maven.plugins.annotations.Mojo; + import org.apache.maven.plugins.annotations.Parameter; + import org.apache.maven.plugins.annotations.ResolutionScope; + import org.apache.maven.tools.plugin.generator.Generator; +-import org.apache.maven.tools.plugin.generator.PluginHelpGenerator; +-import org.codehaus.plexus.velocity.VelocityComponent; + + /** + * Generates a HelpMojo class. +@@ -58,12 +56,6 @@ public class HelpGeneratorMojo + @Parameter + private String helpPackageName; + +- /** +- * Velocity component. +- */ +- @Component +- private VelocityComponent velocity; +- + /** + * {@inheritDoc} + */ +@@ -77,7 +69,7 @@ public class HelpGeneratorMojo + */ + protected Generator createGenerator() + { +- return new PluginHelpGenerator().setHelpPackageName( helpPackageName ).setVelocityComponent( this.velocity ); ++ return null; + } + + /** +@@ -86,16 +78,6 @@ public class HelpGeneratorMojo + public void execute() + throws MojoExecutionException + { +- // force value for this plugin +- skipErrorNoDescriptorsFound = true; +- +- super.execute(); +- +- if ( !project.getCompileSourceRoots().contains( outputDirectory.getAbsolutePath() ) && !skip ) +- { +- project.addCompileSourceRoot( outputDirectory.getAbsolutePath() ); +- } +- + } + + } +diff --git a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java +index 1375cae..9e3d556 100644 +--- a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java ++++ b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java +@@ -66,22 +66,11 @@ public class PluginDescriptorGenerator + public void execute( File destinationDirectory, PluginToolsRequest request ) + throws GeneratorException + { +- // eventually rewrite help mojo class to match actual package name +- PluginHelpGenerator.rewriteHelpMojo( request, log ); +- + try + { + // write complete plugin.xml descriptor + File f = new File( destinationDirectory, "plugin.xml" ); + writeDescriptor( f, request, false ); +- +- // write plugin-help.xml help-descriptor +- MavenProject mavenProject = request.getProject(); +- +- f = new File( mavenProject.getBuild().getOutputDirectory(), +- PluginHelpGenerator.getPluginHelpPath( mavenProject ) ); +- +- writeDescriptor( f, request, true ); + } + catch ( IOException e ) + { +-- +2.25.2 + diff --git a/0001-Port-to-plexus-utils-3.0.24.patch b/0001-Port-to-plexus-utils-3.0.24.patch deleted file mode 100644 index a553bef..0000000 --- a/0001-Port-to-plexus-utils-3.0.24.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 690138ca262b03d7e43336dd9bfee2ca0e1b03f9 Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Thu, 12 May 2016 09:36:10 +0200 -Subject: [PATCH 3/3] Port to plexus-utils 3.0.24 - ---- - .../maven/tools/plugin/generator/PluginHelpGenerator.java | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java -index 23c3ed9..7543496 100644 ---- a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java -+++ b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java -@@ -302,7 +302,15 @@ public class PluginHelpGenerator - return; - } - -- Properties properties = PropertyUtils.loadProperties( tmpPropertiesFile ); -+ Properties properties; -+ try -+ { -+ properties = PropertyUtils.loadProperties( tmpPropertiesFile ); -+ } -+ catch ( IOException exc ) -+ { -+ properties = new Properties(); -+ } - - String helpPackageName = properties.getProperty( "helpPackageName" ); - --- -2.14.3 - diff --git a/0002-Remove-dependency-on-jtidy.patch b/0002-Remove-dependency-on-jtidy.patch new file mode 100644 index 0000000..a815d2a --- /dev/null +++ b/0002-Remove-dependency-on-jtidy.patch @@ -0,0 +1,92 @@ +From 39be64eff05c5db20b863ac971d2de5707ae8017 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 27 Apr 2020 12:56:04 +0200 +Subject: [PATCH 2/3] Remove dependency on jtidy + +--- + .../plugin/generator/GeneratorUtils.java | 55 +------------------ + 1 file changed, 1 insertion(+), 54 deletions(-) + +diff --git a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java +index 771b08b..0346778 100644 +--- a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java ++++ b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java +@@ -51,7 +51,6 @@ import org.apache.maven.reporting.MavenReport; + import org.codehaus.plexus.component.repository.ComponentDependency; + import org.codehaus.plexus.util.StringUtils; + import org.codehaus.plexus.util.xml.XMLWriter; +-import org.w3c.tidy.Tidy; + + /** + * Convenience methods to play with Maven plugins. +@@ -254,58 +253,6 @@ public final class GeneratorUtils + return decoded.toString(); + } + +- /** +- * Fixes some javadoc comment to become a valid XHTML snippet. +- * +- * @param description Javadoc description with HTML tags, may be null. +- * @return The description with valid XHTML tags, never null. +- */ +- public static String makeHtmlValid( String description ) +- { +- if ( StringUtils.isEmpty( description ) ) +- { +- return ""; +- } +- +- String commentCleaned = decodeJavadocTags( description ); +- +- // Using jTidy to clean comment +- Tidy tidy = new Tidy(); +- tidy.setDocType( "loose" ); +- tidy.setXHTML( true ); +- tidy.setXmlOut( true ); +- tidy.setInputEncoding( "UTF-8" ); +- tidy.setOutputEncoding( "UTF-8" ); +- tidy.setMakeClean( true ); +- tidy.setNumEntities( true ); +- tidy.setQuoteNbsp( false ); +- tidy.setQuiet( true ); +- tidy.setShowWarnings( false ); +- try +- { +- ByteArrayOutputStream out = new ByteArrayOutputStream( commentCleaned.length() + 256 ); +- tidy.parse( new ByteArrayInputStream( commentCleaned.getBytes( "UTF-8" ) ), out ); +- commentCleaned = out.toString( "UTF-8" ); +- } +- catch ( UnsupportedEncodingException e ) +- { +- // cannot happen as every JVM must support UTF-8, see also class javadoc for java.nio.charset.Charset +- } +- +- if ( StringUtils.isEmpty( commentCleaned ) ) +- { +- return ""; +- } +- +- // strip the header/body stuff +- String ls = System.getProperty( "line.separator" ); +- int startPos = commentCleaned.indexOf( "" + ls ) + 6 + ls.length(); +- int endPos = commentCleaned.indexOf( ls + "" ); +- commentCleaned = commentCleaned.substring( startPos, endPos ); +- +- return commentCleaned; +- } +- + /** + * Converts a HTML fragment as extracted from a javadoc comment to a plain text string. This method tries to retain + * as much of the text formatting as possible by means of the following transformations: +@@ -337,7 +284,7 @@ public final class GeneratorUtils + + try + { +- parser.parse( new StringReader( makeHtmlValid( html ) ), htmlCallback, true ); ++ parser.parse( new StringReader( html ), htmlCallback, true ); + } + catch ( IOException e ) + { +-- +2.25.2 + diff --git a/0003-Disable-reporting.patch b/0003-Disable-reporting.patch new file mode 100644 index 0000000..48e9e0c --- /dev/null +++ b/0003-Disable-reporting.patch @@ -0,0 +1,90 @@ +From 8d455cd296ab9b3d762ddac71b3f51df234b66c1 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 27 Apr 2020 12:57:13 +0200 +Subject: [PATCH 3/3] Disable reporting + +--- + .../plugin/generator/GeneratorUtils.java | 62 ------------------- + 1 file changed, 62 deletions(-) + +diff --git a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java +index 0346778..6ac66f8 100644 +--- a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java ++++ b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/GeneratorUtils.java +@@ -47,7 +47,6 @@ import org.apache.maven.model.Dependency; + import org.apache.maven.plugin.descriptor.MojoDescriptor; + import org.apache.maven.plugin.descriptor.PluginDescriptor; + import org.apache.maven.project.MavenProject; +-import org.apache.maven.reporting.MavenReport; + import org.codehaus.plexus.component.repository.ComponentDependency; + import org.codehaus.plexus.util.StringUtils; + import org.codehaus.plexus.util.xml.XMLWriter; +@@ -592,65 +591,4 @@ public final class GeneratorUtils + return packageName; + } + +- /** +- * @param impl a Mojo implementation, not null +- * @param project a MavenProject instance, could be null +- * @return true is the Mojo implementation implements MavenReport, +- * false otherwise. +- * @throws IllegalArgumentException if any +- */ +- @SuppressWarnings( "unchecked" ) +- public static boolean isMavenReport( String impl, MavenProject project ) +- throws IllegalArgumentException +- { +- if ( impl == null ) +- { +- throw new IllegalArgumentException( "mojo implementation should be declared" ); +- } +- +- ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); +- if ( project != null ) +- { +- List classPathStrings; +- try +- { +- classPathStrings = project.getCompileClasspathElements(); +- if ( project.getExecutionProject() != null ) +- { +- classPathStrings.addAll( project.getExecutionProject().getCompileClasspathElements() ); +- } +- } +- catch ( DependencyResolutionRequiredException e ) +- { +- throw new IllegalArgumentException( e ); +- } +- +- List urls = new ArrayList<>( classPathStrings.size() ); +- for ( String classPathString : classPathStrings ) +- { +- try +- { +- urls.add( new File( classPathString ).toURL() ); +- } +- catch ( MalformedURLException e ) +- { +- throw new IllegalArgumentException( e ); +- } +- } +- +- classLoader = new URLClassLoader( urls.toArray( new URL[urls.size()] ), classLoader ); +- } +- +- try +- { +- Class clazz = Class.forName( impl, false, classLoader ); +- +- return MavenReport.class.isAssignableFrom( clazz ); +- } +- catch ( ClassNotFoundException e ) +- { +- return false; +- } +- } +- + } +-- +2.25.2 + diff --git a/maven-plugin-tools.spec b/maven-plugin-tools.spec index ee02d56..841e99e 100644 --- a/maven-plugin-tools.spec +++ b/maven-plugin-tools.spec @@ -8,15 +8,18 @@ BuildArch: noarch Source0: http://repo2.maven.org/maven2/org/apache/maven/plugin-tools/%{name}/%{version}/%{name}-%{version}-source-release.zip -Patch0: 0001-Port-to-plexus-utils-3.0.24.patch +Patch1: 0001-Disable-help-MOJO-generation.patch +Patch2: 0002-Remove-dependency-on-jtidy.patch +Patch3: 0003-Disable-reporting.patch BuildRequires: maven-local BuildRequires: mvn(com.thoughtworks.qdox:qdox) -BuildRequires: mvn(net.sf.jtidy:jtidy) BuildRequires: mvn(org.apache.ant:ant) BuildRequires: mvn(org.apache.ant:ant-launcher) -BuildRequires: mvn(org.apache.maven.doxia:doxia-sink-api) -BuildRequires: mvn(org.apache.maven.doxia:doxia-site-renderer) +BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) +BuildRequires: mvn(org.apache.maven.surefire:maven-surefire-common) BuildRequires: mvn(org.apache.maven:maven-artifact) BuildRequires: mvn(org.apache.maven:maven-compat) BuildRequires: mvn(org.apache.maven:maven-core) @@ -24,20 +27,12 @@ BuildRequires: mvn(org.apache.maven:maven-model) BuildRequires: mvn(org.apache.maven:maven-parent:pom:) BuildRequires: mvn(org.apache.maven:maven-plugin-api) BuildRequires: mvn(org.apache.maven:maven-repository-metadata) -BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) -BuildRequires: mvn(org.apache.maven.reporting:maven-reporting-api) -BuildRequires: mvn(org.apache.maven.reporting:maven-reporting-impl) -BuildRequires: mvn(org.apache.maven.surefire:maven-surefire-common) -BuildRequires: mvn(org.apache.velocity:velocity) BuildRequires: mvn(org.codehaus.modello:modello-maven-plugin) BuildRequires: mvn(org.codehaus.plexus:plexus-ant-factory) BuildRequires: mvn(org.codehaus.plexus:plexus-archiver) BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) BuildRequires: mvn(org.codehaus.plexus:plexus-component-metadata) BuildRequires: mvn(org.codehaus.plexus:plexus-utils) -BuildRequires: mvn(org.codehaus.plexus:plexus-velocity) BuildRequires: mvn(org.ow2.asm:asm) BuildRequires: mvn(org.ow2.asm:asm-commons) @@ -130,7 +125,9 @@ API documentation for %{name}. %prep %setup -q -%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %pom_remove_plugin :maven-enforcer-plugin @@ -139,11 +136,26 @@ API documentation for %{name}. UTF-8" # Remove test dependencies because tests are skipped anyways. -%pom_xpath_remove "pom:dependency[pom:scope='test']" +%pom_xpath_remove -r "pom:dependency[pom:scope='test']" +%pom_remove_dep -r :easymock + +%pom_xpath_remove "pom:execution[pom:id='generated-helpmojo']" maven-plugin-plugin %pom_disable_module maven-script-beanshell maven-script %pom_disable_module maven-plugin-tools-beanshell maven-script +%pom_remove_dep -r :maven-reporting-impl +%pom_remove_dep -r :maven-reporting-api +%pom_remove_dep -r :plexus-velocity +%pom_remove_dep -r :velocity +%pom_remove_dep -r :jtidy +%pom_remove_dep -r :doxia-sink-api +%pom_remove_dep -r :doxia-site-renderer + +rm maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/Plugin{Help,Xdoc}Generator.java +rm maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/PluginReport.java + + %build %mvn_build -s -f