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
-}

Reply via email to