[xmvn] Install effective POMs into a separate directory
Mikolaj Izdebski
mizdebsk at fedoraproject.org
Mon Feb 25 08:17:04 UTC 2013
commit e176466b18f1d9adf96d2f7a0cca27448e15c6a1
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Mon Feb 25 08:35:27 2013 +0100
Install effective POMs into a separate directory
With this patch XMvn MOJO will install raw POMs into
/usr/share/maven-poms as this was always done.
Additionally effective POMs will be installed into some other location
(perhaps /usr/share/maven-fragments) for every non-POM artifact.
xmvn-effective-pom.patch | 84 ++++++++++++++++++++++++++++++++++++++++++++++
xmvn.spec | 7 +++-
2 files changed, 90 insertions(+), 1 deletions(-)
---
diff --git a/xmvn-effective-pom.patch b/xmvn-effective-pom.patch
new file mode 100644
index 0000000..0971acb
--- /dev/null
+++ b/xmvn-effective-pom.patch
@@ -0,0 +1,84 @@
+diff --git a/xmvn-core/src/main/java/org/fedoraproject/maven/Configuration.java b/xmvn-core/src/main/java/org/fedoraproject/maven/Configuration.java
+index 8c5e8a6..b2996a3 100644
+--- a/xmvn-core/src/main/java/org/fedoraproject/maven/Configuration.java
++++ b/xmvn-core/src/main/java/org/fedoraproject/maven/Configuration.java
+@@ -114,6 +114,13 @@ public class Configuration
+ return Paths.get( installPomDir );
+ }
+
++ private static String installEffectivePomDir = "usr/share/maven-effective-poms";
++
++ public static Path getInstallEffectivePomDir()
++ {
++ return Paths.get( installEffectivePomDir );
++ }
++
+ private static String installDepmapDir = "usr/share/maven-fragments";
+
+ public static Path getInstallDepmapDir()
+diff --git a/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java b/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java
+index 39a8db4..09e127d 100644
+--- a/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java
++++ b/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java
+@@ -66,7 +66,6 @@ public class InstallMojo
+
+ Path jppGroup;
+ Path jppName;
+- Path pomFile;
+ DependencyVisitor metadata = targetPackage.getMetadata();
+
+ if ( file != null )
+@@ -77,11 +76,7 @@ public class InstallMojo
+ + "\" has unsupported extension. The only supported extension is \".jar\"" );
+ }
+
+- pomFile = Files.createTempFile( "xmvn-" + artifactId + "-", ".pom.xml" );
+- DependencyExtractor.simplifyEffectiveModel( project.getModel() );
+- DependencyExtractor.writeModel( project.getModel(), pomFile );
+ List<Path> extraList = new LinkedList<>();
+-
+ for ( Rule rule : Configuration.getInstallFiles() )
+ {
+ String name = rule.match( groupId, artifactId, version );
+@@ -101,10 +96,14 @@ public class InstallMojo
+ targetPackage.addJarFile( file, baseFile, extraList );
+
+ DependencyExtractor.getJavaCompilerTarget( project, metadata );
++
++ Path effectivePomFile = Files.createTempFile( "xmvn-" + artifactId + "-", ".pom.xml" );
++ DependencyExtractor.simplifyEffectiveModel( project.getModel() );
++ DependencyExtractor.writeModel( project.getModel(), effectivePomFile );
++ targetPackage.addEffectivePomFile( effectivePomFile, jppGroup, jppName );
+ }
+ else
+ {
+- pomFile = project.getFile().toPath();
+ jppGroup = Paths.get( "JPP" ).resolve( Configuration.getInstallName() );
+ jppName = Paths.get( groupId + "@" + artifactId );
+
+@@ -112,7 +111,7 @@ public class InstallMojo
+ DependencyExtractor.generateRawRequires( rawModel, metadata );
+ }
+
+- targetPackage.addPomFile( pomFile, jppGroup, jppName );
++ targetPackage.addPomFile( project.getFile().toPath(), jppGroup, jppName );
+ targetPackage.createDepmaps( groupId, artifactId, version, jppGroup, jppName );
+
+ DependencyExtractor.generateEffectiveRuntimeRequires( project.getModel(), metadata );
+diff --git a/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/Package.java b/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/Package.java
+index a228971..2df3434 100644
+--- a/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/Package.java
++++ b/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/Package.java
+@@ -86,6 +86,12 @@ public class Package
+ addFile( file, Configuration.getInstallPomDir(), pomName, 0644 );
+ }
+
++ public void addEffectivePomFile( Path file, Path jppGroupId, Path jppArtifactId )
++ {
++ Path pomName = Paths.get( jppGroupId.toString().replace( '/', '.' ) + "-" + jppArtifactId + ".pom" );
++ addFile( file, Configuration.getInstallEffectivePomDir(), pomName, 0644 );
++ }
++
+ private static boolean containsNativeCode( Path jar )
+ throws IOException
+ {
diff --git a/xmvn.spec b/xmvn.spec
index 43a0ae6..c860e72 100644
--- a/xmvn.spec
+++ b/xmvn.spec
@@ -1,11 +1,12 @@
Name: xmvn
Version: 0.3.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Local Extensions for Apache Maven
License: ASL 2.0
URL: http://mizdebsk.fedorapeople.org/xmvn
BuildArch: noarch
Source0: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.xz
+Patch: %{name}-effective-pom.patch
BuildRequires: maven-local
BuildRequires: beust-jcommander
@@ -31,6 +32,7 @@ This package provides %{summary}.
%prep
%setup -q
+%patch -p1
%build
%mvn_file ":{xmvn-{core,connector}}" %{name}/@1 %{_datadir}/%{name}/lib/@1
@@ -56,6 +58,9 @@ This package provides %{summary}.
%doc LICENSE NOTICE
%changelog
+* Mon Feb 25 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 0.3.1-2
+- Install effective POMs into a separate directory
+
* Thu Feb 7 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 0.3.1-1
- Update to upstream version 0.3.1
More information about the scm-commits
mailing list