You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2018/09/21 13:56:59 UTC
[camel-k] 04/04: Fixing artifact path and selection algorithm
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...@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" {