Accepting request 691088 from home:fstrba:maven

OBS-URL: https://build.opensuse.org/request/show/691088
OBS-URL: https://build.opensuse.org/package/show/Java:packages/maven-plugin-bundle?expand=0&rev=1
This commit is contained in:
Fridrich Strba 2019-04-03 12:18:02 +00:00 committed by Git OBS Bridge
commit 204b785d04
8 changed files with 556 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,255 @@
From ac9f85cd5fdab1d51defa363b31235c45560c7f6 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Fri, 12 Feb 2016 09:45:20 +0100
Subject: [PATCH 1/4] Port to current maven-dependency-tree
---
pom.xml | 2 +-
.../apache/felix/bundleplugin/BundleAllPlugin.java | 54 ++++++++++++----------
.../apache/felix/bundleplugin/BundlePlugin.java | 30 ++++++------
3 files changed, 46 insertions(+), 40 deletions(-)
diff --git a/pom.xml b/pom.xml
index dfbf237..46b2ba6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -192,7 +192,7 @@
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-dependency-tree</artifactId>
- <version>2.1</version>
+ <version>3.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
diff --git a/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java b/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
index f3b5509..6591923 100644
--- a/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
+++ b/src/main/java/org/apache/felix/bundleplugin/BundleAllPlugin.java
@@ -21,8 +21,10 @@ package org.apache.felix.bundleplugin;
import java.io.File;
import java.io.FilenameFilter;
+import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Deque;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -38,7 +40,6 @@ import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactCollector;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolver;
@@ -49,13 +50,14 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
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.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.shared.dependency.tree.DependencyNode;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
+import org.apache.maven.shared.dependency.graph.DependencyNode;
import org.codehaus.plexus.util.FileUtils;
import aQute.bnd.osgi.Analyzer;
@@ -92,24 +94,18 @@ public class BundleAllPlugin extends ManifestPlugin
*/
@Parameter( property = "wrapImportPackage", defaultValue = "*" )
private String wrapImportPackage;
-
@Component
private ArtifactFactory m_factory;
@Component
private ArtifactMetadataSource m_artifactMetadataSource;
- @Component
- private ArtifactCollector m_collector;
-
/**
* Artifact resolver, needed to download jars.
*/
@Component
private ArtifactResolver m_artifactResolver;
- @Component
- private DependencyTreeBuilder m_dependencyTreeBuilder;
@Component
private MavenProjectBuilder m_mavenProjectBuilder;
@@ -180,17 +176,19 @@ public class BundleAllPlugin extends ManifestPlugin
try
{
- dependencyTree = m_dependencyTreeBuilder.buildDependencyTree( project, localRepository, m_factory,
- m_artifactMetadataSource, null, m_collector );
+ ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
+ request.setProject(getProject());
+ request.setRepositorySession(session.getRepositorySession());
+ dependencyTree = m_dependencyGraphBuilder.buildDependencyGraph(request, null);
}
- catch ( DependencyTreeBuilderException e )
+ catch ( DependencyGraphBuilderException e )
{
throw new MojoExecutionException( "Unable to build dependency tree", e );
}
BundleInfo bundleInfo = new BundleInfo();
- if ( !dependencyTree.hasChildren() )
+ if ( dependencyTree.getChildren().isEmpty())
{
/* no need to traverse the tree */
return bundleRoot( project, bundleInfo );
@@ -198,20 +196,27 @@ public class BundleAllPlugin extends ManifestPlugin
getLog().debug( "Will bundle the following dependency tree" + LS + dependencyTree );
- for ( Iterator it = dependencyTree.inverseIterator(); it.hasNext(); )
+ Deque<DependencyNode> stack = new ArrayDeque<DependencyNode>();
+ stack.push(dependencyTree);
+ Set<DependencyNode> visited = new HashSet<DependencyNode>();
+ while (!stack.isEmpty())
{
- DependencyNode node = ( DependencyNode ) it.next();
- if ( !it.hasNext() )
+ DependencyNode node = stack.pop();
+ if (visited.contains(node))
{
- /* this is the root, current project */
- break;
+ continue;
}
-
- if ( node.getState() != DependencyNode.INCLUDED )
+ visited.add(node);
+ if (node.getChildren() != null)
{
- continue;
+ stack.addAll(node.getChildren());
}
+ //if ( node.getState() != DependencyNode.INCLUDED )
+ //{
+ // continue;
+ //}
+
if ( Artifact.SCOPE_SYSTEM.equals( node.getArtifact().getScope() ) )
{
getLog().debug( "Ignoring system scoped artifact " + node.getArtifact() );
@@ -235,12 +240,11 @@ public class BundleAllPlugin extends ManifestPlugin
node.getArtifact().setFile( artifact.getFile() );
- int nodeDepth = node.getDepth();
- if ( nodeDepth > maxDepth )
+ if ( stack.size() > maxDepth )
{
/* node is deeper than we want */
getLog().debug(
- "Ignoring " + node.getArtifact() + ", depth is " + nodeDepth + ", bigger than " + maxDepth );
+ "Ignoring " + node.getArtifact() + ", depth is " + stack.size() + ", bigger than " + maxDepth );
continue;
}
diff --git a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index 1dcf1c1..3e4384e 100644
--- a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -72,15 +72,15 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
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.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.MavenProjectHelper;
import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
import org.apache.maven.shared.dependency.graph.DependencyNode;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
import org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
import org.apache.maven.shared.osgi.Maven2OsgiConverter;
import org.codehaus.plexus.archiver.UnArchiver;
@@ -225,9 +225,6 @@ public class BundlePlugin extends AbstractMojo
@Component
protected MavenProjectBuilder mavenProjectBuilder;
- @Component
- private DependencyTreeBuilder dependencyTreeBuilder;
-
/**
* The dependency graph builder to use.
*/
@@ -347,7 +344,10 @@ public class BundlePlugin extends AbstractMojo
DependencyNode dependencyGraph;
try
{
- dependencyGraph = m_dependencyGraphBuilder.buildDependencyGraph( mavenProject, null );
+ ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
+ request.setProject(mavenProject);
+ request.setRepositorySession(session.getRepositorySession());
+ dependencyGraph = m_dependencyGraphBuilder.buildDependencyGraph( request, null );
}
catch ( DependencyGraphBuilderException e )
{
@@ -758,7 +758,7 @@ public class BundlePlugin extends AbstractMojo
// We need to find the direct dependencies that have been included in the uber JAR so that we can modify the
// POM accordingly.
private void createDependencyReducedPom( Set<String> artifactsToRemove )
- throws IOException, DependencyTreeBuilderException, ProjectBuildingException
+ throws IOException, DependencyGraphBuilderException, ProjectBuildingException
{
Model model = project.getOriginalModel();
List<Dependency> dependencies = new ArrayList<Dependency>();
@@ -901,24 +901,26 @@ public class BundlePlugin extends AbstractMojo
}
public boolean updateExcludesInDeps( MavenProject project, List<Dependency> dependencies, List<Dependency> transitiveDeps )
- throws DependencyTreeBuilderException
+ throws DependencyGraphBuilderException
{
- org.apache.maven.shared.dependency.tree.DependencyNode node = dependencyTreeBuilder.buildDependencyTree(project, localRepository, artifactFactory,
- artifactMetadataSource, null,
- artifactCollector);
+ ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
+ request.setProject(project);
+ request.setRepositorySession(session.getRepositorySession());
+ DependencyNode node = dependencyGraphBuilder.buildDependencyGraph(request, null);
boolean modified = false;
Iterator it = node.getChildren().listIterator();
while ( it.hasNext() )
{
- org.apache.maven.shared.dependency.tree.DependencyNode n2 = (org.apache.maven.shared.dependency.tree.DependencyNode) it.next();
+ DependencyNode n2 = (DependencyNode) it.next();
Iterator it2 = n2.getChildren().listIterator();
while ( it2.hasNext() )
{
- org.apache.maven.shared.dependency.tree.DependencyNode n3 = (org.apache.maven.shared.dependency.tree.DependencyNode) it2.next();
+ DependencyNode n3 = (DependencyNode) it2.next();
//anything two levels deep that is marked "included"
//is stuff that was excluded by the original poms, make sure it
//remains excluded IF promoting transitives.
- if ( n3.getState() == org.apache.maven.shared.dependency.tree.DependencyNode.INCLUDED )
+ //if ( n3.getState() == org.apache.maven.shared.dependency.tree.DependencyNode.INCLUDED )
+ if (true)
{
//check if it really isn't in the list of original dependencies. Maven
//prior to 2.0.8 may grab versions from transients instead of
--
2.14.3

View File

@ -0,0 +1,25 @@
From 17a505c7c7924540f9636e3cd2700cc25a59447e Mon Sep 17 00:00:00 2001
From: Mat Booth <mat.booth@redhat.com>
Date: Thu, 14 Apr 2016 17:00:23 +0100
Subject: [PATCH 2/4] Fix for new maven archiver
---
src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index 3e4384e..a42d6ef 100644
--- a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -1104,7 +1104,7 @@ public class BundlePlugin extends AbstractMojo
* Grab customized manifest entries from the maven-jar-plugin configuration
*/
MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
- String mavenManifestText = new MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
+ String mavenManifestText = new MavenArchiver().getManifest( m_mavenSession, currentProject, archiveConfig ).toString();
addMavenDescriptor = addMavenDescriptor && archiveConfig.isAddMavenDescriptor();
Manifest mavenManifest = new Manifest();
--
2.14.3

View File

@ -0,0 +1,46 @@
From 5e514316b5cfbe769b21dc089e2631a9c302dd19 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Thu, 12 May 2016 09:24:36 +0200
Subject: [PATCH 3/4] Port to plexus-utils 3.0.24
---
pom.xml | 2 +-
src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java | 9 ++++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 46b2ba6..144f5ad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -197,7 +197,7 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>3.0.10</version>
+ <version>3.0.24</version>
</dependency>
<dependency>
<groupId>org.sonatype.plexus</groupId>
diff --git a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index a42d6ef..c858b6b 100644
--- a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -1806,7 +1806,14 @@ public class BundlePlugin extends AbstractMojo
File filterFile = new File( i.next() );
if ( filterFile.isFile() )
{
- properties.putAll( PropertyUtils.loadProperties( filterFile ) );
+ try
+ {
+ properties.putAll( PropertyUtils.loadProperties( filterFile ) );
+ }
+ catch ( IOException exc )
+ {
+ // Ignore
+ }
}
}
--
2.14.3

View File

@ -0,0 +1,77 @@
From e0f3d1cddc9ce70d8290aafbdaa36e3aa56e5e9d Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Wed, 12 Oct 2016 23:43:00 +0200
Subject: [PATCH 4/4] Use Maven 3 APIs
---
pom.xml | 17 +++++++++++------
.../org/apache/felix/bundleplugin/BundlePlugin.java | 4 ++--
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/pom.xml b/pom.xml
index 144f5ad..cf3d7dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -182,7 +192,17 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
- <version>2.2.0</version>
+ <version>3.3.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-compat</artifactId>
+ <version>3.3.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.reporting</groupId>
+ <artifactId>maven-reporting-impl</artifactId>
+ <version>2.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
@@ -225,11 +234,6 @@
<version>1.1</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.jdom</groupId>
- <artifactId>jdom</artifactId>
- <version>1.1</version>
- </dependency>
</dependencies>
<reporting>
diff --git a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index c858b6b..5023569 100644
--- a/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -46,7 +46,6 @@ import java.util.TreeMap;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
-import org.apache.felix.bundleplugin.pom.PomWriter;
import org.apache.maven.archiver.ManifestSection;
import org.apache.maven.archiver.MavenArchiveConfiguration;
import org.apache.maven.archiver.MavenArchiver;
@@ -63,6 +62,7 @@ import org.apache.maven.model.Exclusion;
import org.apache.maven.model.License;
import org.apache.maven.model.Model;
import org.apache.maven.model.Resource;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -864,7 +864,7 @@ public class BundlePlugin extends AbstractMojo
try
{
- PomWriter.write( w, model, true );
+ new MavenXpp3Writer().write( w, model );
}
finally
{
--
2.14.3

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d05a772623f1856cdf69bd3c569edd838145044aecfa6ad1864ee6de7e08243c
size 1348331

126
maven-plugin-bundle.spec Normal file
View File

@ -0,0 +1,126 @@
#
# spec file for package maven-plugin-bundle
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global site_name maven-bundle-plugin
%bcond_with obr
%bcond_without reporting
Name: maven-plugin-bundle
Version: 3.5.1
Release: 0
Summary: Maven Bundle Plugin
License: Apache-2.0
Group: Development/Libraries/Java
URL: http://felix.apache.org
Source0: http://repo2.maven.org/maven2/org/apache/felix/%{site_name}/%{version}/%{site_name}-%{version}-source-release.tar.gz
# Needs polishing to be sent upstream
Patch0: 0001-Port-to-current-maven-dependency-tree.patch
# New maven-archiver removed some deprecated methods we were using
Patch1: 0002-Fix-for-new-maven-archiver.patch
# Port to newer Plexus utils
Patch2: 0003-Port-to-plexus-utils-3.0.24.patch
# Port to newer Maven
Patch3: 0004-Use-Maven-3-APIs.patch
BuildRequires: fdupes
BuildRequires: maven-local
BuildRequires: mvn(biz.aQute.bnd:biz.aQute.bndlib)
BuildRequires: mvn(org.apache.felix:felix-parent:pom:)
BuildRequires: mvn(org.apache.felix:org.apache.felix.utils)
BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin)
BuildRequires: mvn(org.apache.maven.shared:maven-dependency-tree)
BuildRequires: mvn(org.apache.maven:maven-archiver)
BuildRequires: mvn(org.apache.maven:maven-compat)
BuildRequires: mvn(org.apache.maven:maven-core)
BuildRequires: mvn(org.codehaus.plexus:plexus-utils)
BuildRequires: mvn(org.osgi:osgi.core)
BuildRequires: mvn(org.sonatype.plexus:plexus-build-api)
BuildArch: noarch
%if %{with obr}
BuildRequires: mvn(net.sf.kxml:kxml2)
BuildRequires: mvn(org.apache.felix:org.apache.felix.bundlerepository)
BuildRequires: mvn(xpp3:xpp3)
%endif
%if %{with reporting}
BuildRequires: mvn(org.apache.maven.doxia:doxia-sink-api)
BuildRequires: mvn(org.apache.maven.doxia:doxia-site-renderer)
BuildRequires: mvn(org.apache.maven.reporting:maven-reporting-impl)
%endif
%description
Provides a maven plugin that supports creating an OSGi bundle
from the contents of the compilation classpath along with its
resources and dependencies. Plus a zillion other features.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
API documentation for %{name}.
%prep
%setup -q -n %{site_name}-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
find -name '*.jar' -delete
%pom_change_dep :org.osgi.core :osgi.core
# Bundled class from old maven-dependency-tree
rm -r src/main/java/org/apache/maven/shared/dependency
# Bundled classes from old maven
rm -r src/main/java/org/apache/felix/bundleplugin/pom
# There is forked version of maven-osgi in
# src/{main,test}/java/org/apache/maven
%if %{with obr}
# Deps unbundled from felix-bundlerepository
%pom_add_dep xpp3:xpp3
%pom_add_dep net.sf.kxml:kxml2
%else
rm -rf src/main/java/org/apache/felix/obrplugin/
%pom_remove_dep :org.apache.felix.bundlerepository
%endif
%if %{without reporting}
rm -f src/main/java/org/apache/felix/bundleplugin/baseline/BaselineReport.java
%pom_remove_dep :doxia-sink-api
%pom_remove_dep :doxia-site-renderer
%pom_remove_dep :maven-reporting-impl
%endif
%build
# Tests depend on bundled JARs
%{mvn_build} -f
%install
%mvn_install
%fdupes -s %{buildroot}%{_javadocdir}
%files -f .mfiles
%license LICENSE NOTICE
%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE
%changelog