You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2017/02/20 11:35:58 UTC

[8/8] buildr git commit: Simplify the integration of custom_pom extension into the core

Simplify the integration of custom_pom extension into the core


Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/75e72a94
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/75e72a94
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/75e72a94

Branch: refs/heads/master
Commit: 75e72a94f2d340deaadab9720eb2bd70bd9c8b24
Parents: ab1554b
Author: Peter Donald <pe...@realityforge.org>
Authored: Mon Feb 20 22:32:52 2017 +1100
Committer: Peter Donald <pe...@realityforge.org>
Committed: Mon Feb 20 22:34:46 2017 +1100

----------------------------------------------------------------------
 addon/buildr/bnd.rb              |  2 ++
 lib/buildr/java/custom_pom.rb    | 25 -------------------------
 lib/buildr/java/packaging.rb     |  3 +++
 lib/buildr/packaging/artifact.rb | 24 +++++++++++++++---------
 lib/buildr/packaging/package.rb  |  3 ++-
 spec/packaging/packaging_spec.rb | 10 +++++++++-
 6 files changed, 31 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/buildr/blob/75e72a94/addon/buildr/bnd.rb
----------------------------------------------------------------------
diff --git a/addon/buildr/bnd.rb b/addon/buildr/bnd.rb
index fa8c331..03ec68a 100644
--- a/addon/buildr/bnd.rb
+++ b/addon/buildr/bnd.rb
@@ -96,6 +96,8 @@ module Buildr
         super
         @params = {}
         enhance do
+          pom.invoke rescue nil if pom && pom != self && classifier.nil?
+
           filename = self.name
           # Generate BND file with same name as target jar but different extension
           bnd_filename = filename.sub /(\.jar)?$/, '.bnd'

http://git-wip-us.apache.org/repos/asf/buildr/blob/75e72a94/lib/buildr/java/custom_pom.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/java/custom_pom.rb b/lib/buildr/java/custom_pom.rb
index 4a4ee9f..7f52ea8 100644
--- a/lib/buildr/java/custom_pom.rb
+++ b/lib/buildr/java/custom_pom.rb
@@ -256,31 +256,6 @@ module Buildr
         end
         @pom
       end
-
-      after_define do |project|
-        project.packages.select { |pkg| pkg.is_a?(ActsAsArtifact) }.each do |pkg|
-          if pkg.type.to_s == 'jar' && pkg.classifier.nil?
-            class << pkg
-              def pom_xml
-                self.pom.content
-              end
-
-              def pom
-                unless @pom
-                  pom_filename = Util.replace_extension(name, 'pom')
-                  spec = {:group => group, :id => id, :version => version, :type => :pom}
-                  @pom = Buildr.artifact(spec, pom_filename)
-                  buildr_project = Buildr.project(self.scope.join(':'))
-                  @pom.content Buildr::CustomPom.pom_xml(buildr_project, self)
-                end
-                @pom
-              end
-            end
-            pkg.instance_variable_set('@pom', nil)
-            pkg.enhance([pkg.pom.to_s])
-          end
-        end
-      end
     end
   end
 end

http://git-wip-us.apache.org/repos/asf/buildr/blob/75e72a94/lib/buildr/java/packaging.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/java/packaging.rb b/lib/buildr/java/packaging.rb
index 86a764c..46afa50 100644
--- a/lib/buildr/java/packaging.rb
+++ b/lib/buildr/java/packaging.rb
@@ -210,6 +210,9 @@ module Buildr #:nodoc:
 
         def initialize(*args) #:nodoc:
           super
+          enhance do
+            pom.invoke rescue nil if pom && pom != self && classifier.nil?
+          end
         end
 
         # :call-seq:

http://git-wip-us.apache.org/repos/asf/buildr/blob/75e72a94/lib/buildr/packaging/artifact.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/packaging/artifact.rb b/lib/buildr/packaging/artifact.rb
index e417273..010a8df 100644
--- a/lib/buildr/packaging/artifact.rb
+++ b/lib/buildr/packaging/artifact.rb
@@ -73,6 +73,8 @@ module Buildr #:nodoc:
     # Optional artifact classifier.
     attr_reader :classifier
 
+    attr_accessor :buildr_project
+
     def snapshot?
       version =~ /-SNAPSHOT$/
     end
@@ -145,15 +147,19 @@ module Buildr #:nodoc:
     #
     # Creates POM XML for this artifact.
     def pom_xml
-      Proc.new do
-        xml = Builder::XmlMarkup.new(:indent=>2)
-        xml.instruct!
-        xml.project do
-          xml.modelVersion  '4.0.0'
-          xml.groupId       group
-          xml.artifactId    id
-          xml.version       version
-          xml.classifier    classifier if classifier
+      if self.buildr_project
+        Buildr::CustomPom.pom_xml(self.buildr_project, self)
+      else
+        Proc.new do
+          xml = Builder::XmlMarkup.new(:indent => 2)
+          xml.instruct!
+          xml.project do
+            xml.modelVersion '4.0.0'
+            xml.groupId group
+            xml.artifactId id
+            xml.version version
+            xml.classifier classifier if classifier
+          end
         end
       end
     end

http://git-wip-us.apache.org/repos/asf/buildr/blob/75e72a94/lib/buildr/packaging/package.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/packaging/package.rb b/lib/buildr/packaging/package.rb
index 4f42933..07ecc9d 100644
--- a/lib/buildr/packaging/package.rb
+++ b/lib/buildr/packaging/package.rb
@@ -168,6 +168,7 @@ module Buildr #:nodoc:
         else
           # Make it an artifact using the specifications, and tell it how to create a POM.
           package.extend ActsAsArtifact
+          package.buildr_project = self
           package.send :apply_spec, spec.only(*Artifact::ARTIFACT_ATTRIBUTES)
 
           # Create pom associated with package
@@ -177,7 +178,7 @@ module Buildr #:nodoc:
                 pom_filename = Util.replace_extension(self.name, 'pom')
                 spec = {:group=>group, :id=>id, :version=>version, :type=>:pom}
                 @pom = Buildr.artifact(spec, pom_filename)
-                @pom.content @pom.pom_xml
+                @pom.content Buildr::CustomPom.pom_xml(self.buildr_project, self)
               end
               @pom
             end

http://git-wip-us.apache.org/repos/asf/buildr/blob/75e72a94/spec/packaging/packaging_spec.rb
----------------------------------------------------------------------
diff --git a/spec/packaging/packaging_spec.rb b/spec/packaging/packaging_spec.rb
index 29baf6b..2a68690 100644
--- a/spec/packaging/packaging_spec.rb
+++ b/spec/packaging/packaging_spec.rb
@@ -361,11 +361,19 @@ describe Project, '#package' do
     pom.invoke
     read(pom.to_s).should eql(<<-POM
 <?xml version="1.0" encoding="UTF-8"?>
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.sonatype.oss</groupId>
+    <artifactId>oss-parent</artifactId>
+    <version>7</version>
+  </parent>
   <groupId>bar</groupId>
   <artifactId>foo</artifactId>
   <version>1.0</version>
+  <packaging>jar</packaging>
+  <name>foo</name>
+  <description>foo</description>
 </project>
 POM
     )