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

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


The following commit(s) were added to refs/heads/main by this push:
     new 5adfc7810 chore(builder): include jib profile in project
5adfc7810 is described below

commit 5adfc7810658fc65f988e41121c7a19d26ffd4d4
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Wed Mar 12 08:31:08 2025 +0100

    chore(builder): include jib profile in project
    
    It removes the need to include a new Configmap for every build.
---
 pkg/builder/project.go                | 14 +++---
 pkg/builder/quarkus.go                |  6 ++-
 pkg/trait/builder.go                  | 12 -----
 pkg/trait/builder_test.go             | 20 +-------
 pkg/util/jib/configuration.go         | 86 +++------------------------------
 pkg/util/jib/configuration_test.go    | 89 -----------------------------------
 pkg/util/maven/maven_project.go       |  4 +-
 pkg/util/maven/maven_project_test.go  | 11 +++--
 pkg/util/maven/maven_repositories.go  | 26 ++++++----
 pkg/util/maven/maven_settings.go      |  2 +-
 pkg/util/maven/maven_settings_test.go |  5 +-
 pkg/util/maven/maven_types.go         | 23 ++++-----
 12 files changed, 62 insertions(+), 236 deletions(-)

diff --git a/pkg/builder/project.go b/pkg/builder/project.go
index d82550810..6f3e17e5c 100644
--- a/pkg/builder/project.go
+++ b/pkg/builder/project.go
@@ -201,17 +201,19 @@ func sanitizeDependencies(ctx *builderContext) error {
 
 func injectProfiles(ctx *builderContext) error {
        if ctx.Build.Maven.Profiles != nil {
-               profiles := ""
-               for i := range ctx.Build.Maven.Profiles {
-                       val, err := kubernetes.ResolveValueSource(ctx.C, 
ctx.Client, ctx.Namespace, &ctx.Build.Maven.Profiles[i])
+               for _, p := range ctx.Build.Maven.Profiles {
+                       val, err := kubernetes.ResolveValueSource(ctx.C, 
ctx.Client, ctx.Namespace, &p)
                        if err != nil {
-                               return fmt.Errorf("could not load profile : %s: 
%w. ", ctx.Build.Maven.Profiles[i].String(), err)
+                               return fmt.Errorf("could not load profile : %s: 
%w. ", p.String(), err)
                        }
                        if val != "" {
-                               profiles += val
+                               profile := maven.Profile{}
+                               if err := xml.Unmarshal([]byte(val), &profile); 
err != nil {
+                                       return err
+                               }
+                               ctx.Maven.Project.AddProfile(profile)
                        }
                }
-               ctx.Maven.Project.AddProfiles(profiles)
        }
        return nil
 }
diff --git a/pkg/builder/quarkus.go b/pkg/builder/quarkus.go
index 7fdbc782f..647cf62e2 100644
--- a/pkg/builder/quarkus.go
+++ b/pkg/builder/quarkus.go
@@ -26,6 +26,7 @@ import (
        "time"
 
        "github.com/apache/camel-k/v2/pkg/util/boolean"
+       "github.com/apache/camel-k/v2/pkg/util/jib"
 
        "github.com/apache/camel-k/v2/pkg/util/io"
 
@@ -131,7 +132,7 @@ func generateQuarkusProject(ctx *builderContext) error {
                ctx.Build.Runtime.Metadata["quarkus.version"],
        )
        // Add Maven build extensions
-       p.Build.Extensions = ctx.Build.Maven.Extension
+       p.Build.Extensions = &ctx.Build.Maven.Extension
        // Add Maven repositories
        p.Repositories = append(p.Repositories, ctx.Build.Maven.Repositories...)
        p.PluginRepositories = append(p.PluginRepositories, 
ctx.Build.Maven.Repositories...)
@@ -204,6 +205,9 @@ func generateQuarkusProjectCommon(runtimeProvider 
v1.RuntimeProvider, runtimeVer
                },
        )
 
+       // Jib publish profile
+       p.AddProfile(jib.JibMavenProfile(jib.JibMavenPluginVersionDefault, 
jib.JibLayerFilterExtensionMavenVersionDefault))
+
        return p
 }
 
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 5291add36..a8a57587d 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -32,7 +32,6 @@ import (
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
        "github.com/apache/camel-k/v2/pkg/builder"
-       "github.com/apache/camel-k/v2/pkg/util/jib"
        mvn "github.com/apache/camel-k/v2/pkg/util/maven"
        "github.com/apache/camel-k/v2/pkg/util/property"
 )
@@ -419,17 +418,6 @@ func (t *builderTrait) builderTask(e *Environment, 
taskConf *v1.BuildConfigurati
                }
        }
 
-       if e.Platform.Status.Build.PublishStrategy == 
v1.IntegrationPlatformBuildPublishStrategyJib {
-               profile, err := 
jib.JibMavenProfile(e.CamelCatalog.GetJibMavenPluginVersion(), 
e.CamelCatalog.GetJibLayerFilterExtensionMavenVersion())
-               if err != nil {
-                       return nil, fmt.Errorf("error generating default maven 
jib profile: %w. ", err)
-               }
-               if err := jib.CreateProfileConfigmap(e.Ctx, e.Client, 
e.IntegrationKit, profile); err != nil {
-                       return nil, fmt.Errorf("could not create default maven 
jib profile configmap: %w. ", err)
-               }
-               t.MavenProfiles = append(t.MavenProfiles, 
"configmap:"+e.IntegrationKit.Name+"-publish-jib-profile/profile.xml")
-       }
-
        // User provides a maven profile
        if t.MavenProfiles != nil {
                mavenProfiles := make([]v1.ValueSource, 0)
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 6f85f1764..44e6942ac 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -84,7 +84,7 @@ func TestJibBuilderTrait(t *testing.T) {
        conditions, traits, err := NewBuilderTestCatalog().apply(env)
 
        require.NoError(t, err)
-       assert.NotEmpty(t, traits)
+       assert.Empty(t, traits)
        assert.NotEmpty(t, conditions)
        assert.NotEmpty(t, env.ExecutedTraits)
        assert.NotNil(t, env.GetTrait("builder"))
@@ -286,24 +286,6 @@ func TestInvalidMavenProfilesBuilderTrait(t *testing.T) {
        assert.Contains(t, env.IntegrationKit.Status.Conditions[0].Message, 
"fakeprofile")
 }
 
-func TestMavenBuilderTraitJib(t *testing.T) {
-       env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, 
v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyRoutine)
-       builderTrait := createNominalBuilderTraitTest()
-
-       err := builderTrait.Apply(env)
-
-       require.NoError(t, err)
-
-       assert.Equal(t, v1.ValueSource{
-               ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
-                       LocalObjectReference: corev1.LocalObjectReference{
-                               Name: "my-kit-publish-jib-profile",
-                       },
-                       Key: "profile.xml",
-               },
-       }, env.Pipeline[0].Builder.Maven.MavenSpec.Profiles[0])
-}
-
 func TestBuilderCustomTasks(t *testing.T) {
        builderTrait := createNominalBuilderTraitTest()
        builderTrait.Tasks = append(builderTrait.Tasks, "test;alpine;ls")
diff --git a/pkg/util/jib/configuration.go b/pkg/util/jib/configuration.go
index 38e42ff93..2f50285d8 100644
--- a/pkg/util/jib/configuration.go
+++ b/pkg/util/jib/configuration.go
@@ -19,18 +19,8 @@ limitations under the License.
 package jib
 
 import (
-       "context"
-       "encoding/xml"
-       "fmt"
-
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-       "github.com/apache/camel-k/v2/pkg/client"
-       "github.com/apache/camel-k/v2/pkg/util"
        "github.com/apache/camel-k/v2/pkg/util/maven"
-
-       corev1 "k8s.io/api/core/v1"
-       k8serrors "k8s.io/apimachinery/pkg/api/errors"
-       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
 const JibMavenGoal = "jib:build"
@@ -46,74 +36,17 @@ const JibLayerFilterExtensionMavenVersionDefault = "0.3.0"
 // See: 
https://github.com/GoogleContainerTools/jib/blob/master/jib-maven-plugin/README.md#using-docker-configuration-files
 const JibRegistryConfigEnvVar = "DOCKER_CONFIG"
 
-type JibBuild struct {
-       Plugins []maven.Plugin `xml:"plugins>plugin,omitempty"`
-}
-
-type JibProfile struct {
-       XMLName xml.Name
-       ID      string   `xml:"id"`
-       Build   JibBuild `xml:"build,omitempty"`
-}
-
-// Create a Configmap containing the default jib profile.
-func CreateProfileConfigmap(ctx context.Context, c client.Client, kit 
*v1.IntegrationKit, profile string) error {
-       annotations := util.CopyMap(kit.Annotations)
-       controller := true
-       blockOwnerDeletion := true
-       jibProfileConfigMap := &corev1.ConfigMap{
-               TypeMeta: metav1.TypeMeta{
-                       Kind:       "ConfigMap",
-                       APIVersion: "v1",
-               },
-               ObjectMeta: metav1.ObjectMeta{
-                       Name:        kit.Name + "-publish-jib-profile",
-                       Namespace:   kit.Namespace,
-                       Annotations: annotations,
-                       Labels: map[string]string{
-                               v1.IntegrationKitLabel: kit.Name,
-                       },
-                       OwnerReferences: []metav1.OwnerReference{
-                               {
-                                       APIVersion:         kit.APIVersion,
-                                       Kind:               kit.Kind,
-                                       Name:               kit.Name,
-                                       UID:                kit.UID,
-                                       Controller:         &controller,
-                                       BlockOwnerDeletion: &blockOwnerDeletion,
-                               }},
-               },
-               Data: map[string]string{
-                       "profile.xml": profile,
-               },
-       }
-
-       err := c.Create(ctx, jibProfileConfigMap)
-       if err != nil && !k8serrors.IsAlreadyExists(err) {
-               return fmt.Errorf("error creating the configmap containing the 
default maven jib profile: %s: %w. ", kit.Name+"-publish-jib-profile", err)
-       }
-       return nil
-}
-
 // JibMavenProfile creates a maven profile defining jib plugin build.
-func JibMavenProfile(jibMavenPluginVersion string, 
jibLayerFilterExtensionMavenVersion string) (string, error) {
-       jibVersion := JibMavenPluginVersionDefault
-       if jibMavenPluginVersion != "" {
-               jibVersion = jibMavenPluginVersion
-       }
-       layerVersion := JibLayerFilterExtensionMavenVersionDefault
-       if jibLayerFilterExtensionMavenVersion != "" {
-               layerVersion = jibLayerFilterExtensionMavenVersion
-       }
+func JibMavenProfile(jibMavenPluginVersion string, 
jibLayerFilterExtensionMavenVersion string) maven.Profile {
        jibPlugin := maven.Plugin{
                GroupID:    "com.google.cloud.tools",
                ArtifactID: "jib-maven-plugin",
-               Version:    jibVersion,
+               Version:    jibMavenPluginVersion,
                Dependencies: []maven.Dependency{
                        {
                                GroupID:    "com.google.cloud.tools",
                                ArtifactID: "jib-layer-filter-extension-maven",
-                               Version:    layerVersion,
+                               Version:    jibLayerFilterExtensionMavenVersion,
                        },
                },
                Configuration: v1.PluginConfiguration{
@@ -154,17 +87,12 @@ func JibMavenProfile(jibMavenPluginVersion string, 
jibLayerFilterExtensionMavenV
                },
        }
 
-       jibMavenPluginProfile := JibProfile{
-               XMLName: xml.Name{Local: "profile"},
-               ID:      "jib",
-               Build: JibBuild{
+       jibMavenPluginProfile := maven.Profile{
+               ID: "jib",
+               Build: &maven.Build{
                        Plugins: []maven.Plugin{jibPlugin},
                },
        }
-       content, err := util.EncodeXMLWithoutHeader(jibMavenPluginProfile)
-       if err != nil {
-               return "", err
-       }
-       return string(content), nil
 
+       return jibMavenPluginProfile
 }
diff --git a/pkg/util/jib/configuration_test.go 
b/pkg/util/jib/configuration_test.go
deleted file mode 100644
index 77ba3a9c7..000000000
--- a/pkg/util/jib/configuration_test.go
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-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 jib
-
-import (
-       "context"
-       "strings"
-       "testing"
-
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-       "github.com/apache/camel-k/v2/pkg/internal"
-       "github.com/stretchr/testify/assert"
-       "github.com/stretchr/testify/require"
-       corev1 "k8s.io/api/core/v1"
-       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-       "k8s.io/apimachinery/pkg/types"
-       ctrl "sigs.k8s.io/controller-runtime/pkg/client"
-)
-
-func TestJibMavenProfile(t *testing.T) {
-       profile, err := JibMavenProfile("3.3.0", "0.2.0")
-
-       require.NoError(t, err)
-       assert.True(t, strings.HasPrefix(profile, "<profile>"))
-       assert.True(t, strings.HasSuffix(profile, "</profile>"))
-       assert.True(t, strings.Contains(profile, "<version>3.3.0</version>"))
-       assert.True(t, strings.Contains(profile, "<version>0.2.0</version>"))
-
-}
-
-func TestJibMavenProfileDefaultValues(t *testing.T) {
-       profile, err := JibMavenProfile("", "")
-
-       require.NoError(t, err)
-       assert.True(t, strings.HasPrefix(profile, "<profile>"))
-       assert.True(t, strings.HasSuffix(profile, "</profile>"))
-       assert.True(t, strings.Contains(profile, 
"<version>"+JibMavenPluginVersionDefault+"</version>"))
-       assert.True(t, strings.Contains(profile, 
"<version>"+JibLayerFilterExtensionMavenVersionDefault+"</version>"))
-
-}
-
-func TestJibConfigMap(t *testing.T) {
-       ctx := context.TODO()
-       c, _ := internal.NewFakeClient()
-       kit := &v1.IntegrationKit{
-               TypeMeta: metav1.TypeMeta{
-                       APIVersion: v1.SchemeGroupVersion.String(),
-                       Kind:       v1.IntegrationKitKind,
-               },
-               ObjectMeta: metav1.ObjectMeta{
-                       Name:      "test",
-                       Namespace: "ns",
-                       UID:       
types.UID("8dc44a2b-063c-490e-ae02-1fab285ac70a"),
-               },
-               Status: v1.IntegrationKitStatus{
-                       Phase: v1.IntegrationKitPhaseBuildSubmitted,
-               },
-       }
-
-       err := CreateProfileConfigmap(ctx, c, kit, 
"<profile>awesomeprofile</profile>")
-       require.NoError(t, err)
-
-       key := ctrl.ObjectKey{
-               Namespace: "ns",
-               Name:      "test-publish-jib-profile",
-       }
-       cm := &corev1.ConfigMap{}
-       err = c.Get(ctx, key, cm)
-       require.NoError(t, err)
-       assert.Equal(t, "test", cm.OwnerReferences[0].Name)
-       assert.Equal(t, cm.OwnerReferences[0].UID, 
types.UID("8dc44a2b-063c-490e-ae02-1fab285ac70a"))
-       assert.NotNil(t, cm.Data["profile.xml"])
-       assert.True(t, strings.Contains(cm.Data["profile.xml"], "awesome"))
-}
diff --git a/pkg/util/maven/maven_project.go b/pkg/util/maven/maven_project.go
index 439109c81..4419d8f1b 100644
--- a/pkg/util/maven/maven_project.go
+++ b/pkg/util/maven/maven_project.go
@@ -152,8 +152,8 @@ func (p *Project) AddEncodedDependencyExclusion(gav string, 
exclusion Exclusion)
        }
 }
 
-func (p *Project) AddProfiles(profiles string) {
-       p.Profiles = ProfilesContent{InnerXML: profiles}
+func (p *Project) AddProfile(profile Profile) {
+       p.Profiles = append(p.Profiles, profile)
 }
 
 // NewDependency creates an new dependency from the given GAV.
diff --git a/pkg/util/maven/maven_project_test.go 
b/pkg/util/maven/maven_project_test.go
index 9cc12a5cc..657f95b0a 100644
--- a/pkg/util/maven/maven_project_test.go
+++ b/pkg/util/maven/maven_project_test.go
@@ -81,7 +81,11 @@ const expectedPom = `<?xml version="1.0" encoding="UTF-8"?>
       </releases>
     </pluginRepository>
   </pluginRepositories>
-  <profiles><profile><id>custom</id></profile></profiles>
+  <profiles>
+    <profile>
+      <id>custom</id>
+    </profile>
+  </profiles>
 </project>`
 
 func TestPomGeneration(t *testing.T) {
@@ -131,8 +135,9 @@ func TestPomGeneration(t *testing.T) {
                },
        }
 
-       project.Profiles = ProfilesContent{InnerXML: 
`<profile><id>custom</id></profile>`}
-
+       project.AddProfile(Profile{
+               ID: "custom",
+       })
        pom, err := util.EncodeXML(project)
 
        require.NoError(t, err)
diff --git a/pkg/util/maven/maven_repositories.go 
b/pkg/util/maven/maven_repositories.go
index 441253c62..854530a03 100644
--- a/pkg/util/maven/maven_repositories.go
+++ b/pkg/util/maven/maven_repositories.go
@@ -30,8 +30,8 @@ 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)
+               settings.Profiles[0].Repositories = 
upsertRepository(repository, settings.Profiles[0].Repositories)
+               settings.Profiles[0].PluginRepositories = 
upsertRepository(repository, settings.Profiles[0].PluginRepositories)
        }
        return nil
 }
@@ -68,29 +68,39 @@ func (o extraRepositories) apply(settings *Settings) error {
                        if repository.ID == "" {
                                repository.ID = fmt.Sprintf("repository-%03d", 
i)
                        }
-                       upsertRepository(repository, 
&settings.Profiles[0].Repositories)
-                       upsertRepository(repository, 
&settings.Profiles[0].PluginRepositories)
+                       settings.Profiles[0].Repositories = 
upsertRepository(repository, settings.Profiles[0].Repositories)
+                       settings.Profiles[0].PluginRepositories = 
upsertRepository(repository, settings.Profiles[0].PluginRepositories)
                }
        }
        return nil
 }
 
-func upsertRepository(repository v1.Repository, repositories *[]v1.Repository) 
{
+func upsertRepository(repository v1.Repository, repositories *[]v1.Repository) 
*[]v1.Repository {
+       if repositories == nil {
+               repositories = &[]v1.Repository{}
+       }
        for i, r := range *repositories {
                if r.ID == repository.ID {
                        (*repositories)[i] = repository
-                       return
+                       return repositories
                }
        }
        *repositories = append(*repositories, repository)
+
+       return repositories
 }
 
-func upsertMirror(mirror Mirror, mirrors *[]Mirror) {
+func upsertMirror(mirror Mirror, mirrors *[]Mirror) *[]Mirror {
+       if mirrors == nil {
+               mirrors = &[]Mirror{}
+       }
        for i, r := range *mirrors {
                if r.ID == mirror.ID {
                        (*mirrors)[i] = mirror
-                       return
+                       return mirrors
                }
        }
        *mirrors = append(*mirrors, mirror)
+
+       return mirrors
 }
diff --git a/pkg/util/maven/maven_settings.go b/pkg/util/maven/maven_settings.go
index f8c96f8ed..a67846d42 100644
--- a/pkg/util/maven/maven_settings.go
+++ b/pkg/util/maven/maven_settings.go
@@ -44,7 +44,7 @@ func NewSettings(options ...SettingsOption) (Settings, error) 
{
                Profiles: []Profile{
                        {
                                ID: "camel-k",
-                               Activation: Activation{
+                               Activation: &Activation{
                                        ActiveByDefault: true,
                                },
                        },
diff --git a/pkg/util/maven/maven_settings_test.go 
b/pkg/util/maven/maven_settings_test.go
index ea12f3a0f..a9ae01593 100644
--- a/pkg/util/maven/maven_settings_test.go
+++ b/pkg/util/maven/maven_settings_test.go
@@ -53,7 +53,6 @@ const expectedSettings = `<?xml version="1.0" 
encoding="UTF-8"?>
           </releases>
         </repository>
       </repositories>
-      <pluginRepositories></pluginRepositories>
     </profile>
   </profiles>
   <proxies></proxies>
@@ -188,10 +187,10 @@ func TestSettingsGeneration(t *testing.T) {
        settings.Profiles = []Profile{
                {
                        ID: "my-profile",
-                       Activation: Activation{
+                       Activation: &Activation{
                                ActiveByDefault: true,
                        },
-                       Repositories: []v1.Repository{
+                       Repositories: &[]v1.Repository{
                                {
                                        ID:  "central",
                                        URL: 
"https://repo.maven.apache.org/maven2";,
diff --git a/pkg/util/maven/maven_types.go b/pkg/util/maven/maven_types.go
index 039dab1b2..f361c5723 100644
--- a/pkg/util/maven/maven_types.go
+++ b/pkg/util/maven/maven_types.go
@@ -31,9 +31,9 @@ type Mirror struct {
 }
 
 type Build struct {
-       DefaultGoal string             `xml:"defaultGoal,omitempty"`
-       Plugins     []Plugin           `xml:"plugins>plugin,omitempty"`
-       Extensions  []v1.MavenArtifact `xml:"extensions>extension,omitempty"`
+       DefaultGoal string              `xml:"defaultGoal,omitempty"`
+       Plugins     []Plugin            `xml:"plugins>plugin,omitempty"`
+       Extensions  *[]v1.MavenArtifact `xml:"extensions>extension,omitempty"`
 }
 
 type Plugin struct {
@@ -81,7 +81,7 @@ type Project struct {
        Repositories         []v1.Repository       
`xml:"repositories>repository,omitempty"`
        PluginRepositories   []v1.Repository       
`xml:"pluginRepositories>pluginRepository,omitempty"`
        Build                *Build                `xml:"build,omitempty"`
-       Profiles             ProfilesContent       `xml:"profiles,omitempty"`
+       Profiles             []Profile             
`xml:"profiles>profile,omitempty"`
 }
 
 // Exclusion models a dependency exclusion.
@@ -107,11 +107,12 @@ type Dependency struct {
 }
 
 type Profile struct {
-       ID                 string          `xml:"id"`
-       Activation         Activation      `xml:"activation,omitempty"`
-       Properties         v1.Properties   `xml:"properties,omitempty"`
-       Repositories       []v1.Repository 
`xml:"repositories>repository,omitempty"`
-       PluginRepositories []v1.Repository 
`xml:"pluginRepositories>pluginRepository,omitempty"`
+       ID                 string           `xml:"id"`
+       Activation         *Activation      `xml:"activation,omitempty"`
+       Properties         *v1.Properties   `xml:"properties,omitempty"`
+       Repositories       *[]v1.Repository 
`xml:"repositories>repository,omitempty"`
+       PluginRepositories *[]v1.Repository 
`xml:"pluginRepositories>pluginRepository,omitempty"`
+       Build              *Build           `xml:"build,omitempty"`
 }
 
 type Activation struct {
@@ -134,7 +135,3 @@ type Proxy struct {
        Password      string `xml:"password,omitempty"`
        NonProxyHosts string `xml:"nonProxyHosts,omitempty"`
 }
-
-type ProfilesContent struct {
-       InnerXML string `xml:",innerxml"`
-}

Reply via email to