This is an automated email from the ASF dual-hosted git repository.

nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 37615577b78b19b1ea45d957b2845b28cfbddb95
Author: nferraro <ni.ferr...@gmail.com>
AuthorDate: Fri Sep 21 15:55:32 2018 +0200

    Fixing artifact path and selection algorithm
---
 pkg/build/publish/s2i_incremental_publisher.go | 13 +++++++++----
 pkg/build/publish/s2i_publisher.go             |  7 ++++++-
 pkg/stub/action/context/build.go               |  2 +-
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/pkg/build/publish/s2i_incremental_publisher.go 
b/pkg/build/publish/s2i_incremental_publisher.go
index 42d7c81..f3921cc 100644
--- a/pkg/build/publish/s2i_incremental_publisher.go
+++ b/pkg/build/publish/s2i_incremental_publisher.go
@@ -74,13 +74,17 @@ func (p *s2iIncrementalPublisher) 
selectArtifactsToUpload(entries []build.Classp
 }
 
 func (p *s2iIncrementalPublisher) findBestImage(images []PublishedImage, 
entries []build.ClasspathEntry) (*PublishedImage, map[string]bool) {
+       if len(images) == 0 {
+               return nil, nil
+       }
        requiredLibs := make(map[string]bool, len(entries))
        for _, entry := range entries {
                requiredLibs[entry.ID] = true
        }
 
-       var bestImage *PublishedImage
+       var bestImage PublishedImage
        bestImageCommonLibs := make(map[string]bool, 0)
+       bestImageSurplusLibs := 0
        for _, image := range images {
                common := make(map[string]bool)
                for _, id := range image.Classpath {
@@ -95,11 +99,12 @@ func (p *s2iIncrementalPublisher) findBestImage(images 
[]PublishedImage, entries
                        continue
                }
 
-               if (numCommonLibs > len(bestImageCommonLibs)) {
-                       bestImage = &image
+               if numCommonLibs > len(bestImageCommonLibs) || (numCommonLibs 
== len(bestImageCommonLibs) && surplus < bestImageSurplusLibs) {
+                       bestImage = image
                        bestImageCommonLibs = common
+                       bestImageSurplusLibs = surplus
                }
        }
 
-       return bestImage, bestImageCommonLibs
+       return &bestImage, bestImageCommonLibs
 }
diff --git a/pkg/build/publish/s2i_publisher.go 
b/pkg/build/publish/s2i_publisher.go
index ee86a1e..7fd06c2 100644
--- a/pkg/build/publish/s2i_publisher.go
+++ b/pkg/build/publish/s2i_publisher.go
@@ -280,8 +280,13 @@ func (b *s2iPublisher) createTar(assembled 
build.AssembledOutput, selectedArtifa
 
        cp := ""
        for _, entry := range assembled.Classpath {
+               gav, err := maven.ParseGAV(entry.ID)
+               if err != nil {
+                       return "", nil
+               }
+               tarPath := path.Join(tarDir, gav.GroupID)
                _, fileName := path.Split(entry.Location)
-               fileName = path.Join(tarDir, fileName)
+               fileName = path.Join(tarPath, fileName)
                cp += fileName + "\n"
        }
 
diff --git a/pkg/stub/action/context/build.go b/pkg/stub/action/context/build.go
index 7b872f4..a0ab58f 100644
--- a/pkg/stub/action/context/build.go
+++ b/pkg/stub/action/context/build.go
@@ -136,7 +136,7 @@ func (l contextLister) ListPublishedImages() 
([]publish.PublishedImage, error) {
        }
        images := make([]publish.PublishedImage, 0)
        for _, ctx := range list.Items {
-               if ctx.Labels == nil {
+               if ctx.Status.Phase != v1alpha1.IntegrationContextPhaseReady || 
ctx.Labels == nil {
                        continue
                }
                if ctxType, present := 
ctx.Labels["camel.apache.org/context.type"]; !present || ctxType != "platform" {

Reply via email to