This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 92259fbb97cd97248425b044e039f64d94bd72bc Author: Antonin Stefanutti <[email protected]> AuthorDate: Fri Jan 7 17:10:54 2022 +0100 chore(maven): Add default Maven repositories to global settings --- pkg/builder/project.go | 2 +- pkg/trait/openapi.go | 2 +- pkg/util/camel/catalog.go | 2 +- pkg/util/maven/maven_repositories.go | 53 ++++++++++++++++++++++++++++++++++++ pkg/util/maven/maven_settings.go | 34 +++++++++++------------ 5 files changed, 73 insertions(+), 20 deletions(-) diff --git a/pkg/builder/project.go b/pkg/builder/project.go index 06de5ed..35a897a 100644 --- a/pkg/builder/project.go +++ b/pkg/builder/project.go @@ -94,7 +94,7 @@ func generateProjectSettings(ctx *builderContext) error { ctx.Maven.UserSettings = []byte(val) } - settings, err := maven.NewSettings(maven.ProxyFromEnvironment) + settings, err := maven.NewSettings(maven.DefaultRepositories, maven.ProxyFromEnvironment) if err != nil { return err } diff --git a/pkg/trait/openapi.go b/pkg/trait/openapi.go index bc262b7..5cc3d4f 100644 --- a/pkg/trait/openapi.go +++ b/pkg/trait/openapi.go @@ -262,7 +262,7 @@ func (t *openAPITrait) createNewOpenAPIConfigMap(e *Environment, resource v1.Dat mc.UserSettings = []byte(settings) } - if settings, err := maven.NewSettings(maven.ProxyFromEnvironment); err != nil { + if settings, err := maven.NewSettings(maven.DefaultRepositories, maven.ProxyFromEnvironment); err != nil { return err } else { data, err := settings.MarshalBytes() diff --git a/pkg/util/camel/catalog.go b/pkg/util/camel/catalog.go index ad05456..5fff813 100644 --- a/pkg/util/camel/catalog.go +++ b/pkg/util/camel/catalog.go @@ -84,7 +84,7 @@ func GenerateCatalog( if err != nil { return nil, err } - settings, err := maven.NewSettings(maven.ProxyFromEnvironment) + settings, err := maven.NewSettings(maven.DefaultRepositories, maven.ProxyFromEnvironment) if err != nil { return nil, err } diff --git a/pkg/util/maven/maven_repositories.go b/pkg/util/maven/maven_repositories.go new file mode 100644 index 0000000..2576cbb --- /dev/null +++ b/pkg/util/maven/maven_repositories.go @@ -0,0 +1,53 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package maven + +import ( + "strings" + + v1 "github.com/apache/camel-k/pkg/apis/camel/v1" +) + +var DefaultRepositories = &defaultRepositories{} + +type defaultRepositories struct{} + +func (o defaultRepositories) apply(settings *Settings) error { + for _, repository := range defaultMavenRepositories() { + upsertRepository(repository, &settings.Profiles[0].Repositories) + upsertRepository(repository, &settings.Profiles[0].PluginRepositories) + } + return nil +} + +func defaultMavenRepositories() (repositories []v1.Repository) { + for _, repository := range strings.Split(DefaultMavenRepositories, ",") { + repositories = append(repositories, NewRepository(repository)) + } + return +} + +func upsertRepository(repository v1.Repository, repositories *[]v1.Repository) { + for i, r := range *repositories { + if r.ID == repository.ID { + (*repositories)[i] = repository + return + } + } + *repositories = append(*repositories, repository) +} diff --git a/pkg/util/maven/maven_settings.go b/pkg/util/maven/maven_settings.go index 8d61c49..e1e03f3 100644 --- a/pkg/util/maven/maven_settings.go +++ b/pkg/util/maven/maven_settings.go @@ -19,7 +19,6 @@ package maven import ( "encoding/xml" - "strings" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -46,6 +45,14 @@ func NewSettings(options ...SettingsOption) (Settings, error) { XMLNs: "http://maven.apache.org/SETTINGS/1.0.0", XMLNsXsi: "http://www.w3.org/2001/XMLSchema-instance", XsiSchemaLocation: "http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd", + Profiles: []Profile{ + { + ID: "camel-k", + Activation: Activation{ + ActiveByDefault: true, + }, + }, + }, } for _, option := range options { @@ -92,6 +99,15 @@ func NewDefaultSettings(repositories []v1.Repository, mirrors []Mirror) Settings return settings } +func containsRepo(repositories []v1.Repository, id string) bool { + for _, r := range repositories { + if r.ID == id { + return true + } + } + return false +} + func SettingsConfigMap(namespace string, name string, settings Settings) (*corev1.ConfigMap, error) { data, err := util.EncodeXML(settings) if err != nil { @@ -117,19 +133,3 @@ func SettingsConfigMap(namespace string, name string, settings Settings) (*corev return cm, nil } - -func defaultMavenRepositories() (repos []v1.Repository) { - for _, repoDesc := range strings.Split(DefaultMavenRepositories, ",") { - repos = append(repos, NewRepository(repoDesc)) - } - return -} - -func containsRepo(repositories []v1.Repository, id string) bool { - for _, r := range repositories { - if r.ID == id { - return true - } - } - return false -}
