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 95ad3c0c9d1b45388133579de0326d3cdc0683b5 Author: Doru Bercea <gheorghe-teod.ber...@ibm.com> AuthorDate: Thu Nov 5 11:48:17 2020 -0500 Move to quarkus. --- pkg/builder/runtime/quarkus.go | 82 +++++++++++++++++++++++++++++++----------- pkg/cmd/inspect.go | 15 ++++++-- 2 files changed, 74 insertions(+), 23 deletions(-) diff --git a/pkg/builder/runtime/quarkus.go b/pkg/builder/runtime/quarkus.go index 06655dc..a98faba 100644 --- a/pkg/builder/runtime/quarkus.go +++ b/pkg/builder/runtime/quarkus.go @@ -62,14 +62,23 @@ func loadCamelQuarkusCatalog(ctx *builder.Context) error { } func generateQuarkusProject(ctx *builder.Context) error { + p := GenerateQuarkusProjectCommon(ctx.Build.Runtime.Metadata["camel-quarkus.version"], ctx.Build.Runtime.Version, ctx.Build.Runtime.Metadata["quarkus.version"]) + + // Add all the properties from the build configuration + p.Properties.AddAll(ctx.Build.Properties) + + ctx.Maven.Project = p + + return nil +} + +// GenerateQuarkusProjectCommon -- +func GenerateQuarkusProjectCommon(camelQuarkusVersion string, runtimeVersion string, quarkusVersion string) maven.Project { p := maven.NewProjectWithGAV("org.apache.camel.k.integration", "camel-k-integration", defaults.Version) p.DependencyManagement = &maven.DependencyManagement{Dependencies: make([]maven.Dependency, 0)} p.Dependencies = make([]maven.Dependency, 0) p.Build = &maven.Build{Plugins: make([]maven.Plugin, 0)} - // Add all the properties from the build configuration - p.Properties.AddAll(ctx.Build.Properties) - // camel-quarkus doe routes discovery at startup but we don't want // this to happen as routes are loaded at runtime and looking for // routes at build time may try to load camel-k-runtime routes builder @@ -84,14 +93,14 @@ func generateQuarkusProject(ctx *builder.Context) error { maven.Dependency{ GroupID: "org.apache.camel.quarkus", ArtifactID: "camel-quarkus-bom", - Version: ctx.Build.Runtime.Metadata["camel-quarkus.version"], + Version: camelQuarkusVersion, Type: "pom", Scope: "import", }, maven.Dependency{ GroupID: "org.apache.camel.k", ArtifactID: "camel-k-runtime-bom", - Version: ctx.Build.Runtime.Version, + Version: runtimeVersion, Type: "pom", Scope: "import", }, @@ -102,7 +111,7 @@ func generateQuarkusProject(ctx *builder.Context) error { maven.Plugin{ GroupID: "io.quarkus", ArtifactID: "quarkus-maven-plugin", - Version: ctx.Build.Runtime.Metadata["quarkus.version"], + Version: quarkusVersion, Executions: []maven.Execution{ { Goals: []string{ @@ -113,9 +122,7 @@ func generateQuarkusProject(ctx *builder.Context) error { }, ) - ctx.Maven.Project = p - - return nil + return p } func buildQuarkusRunner(ctx *builder.Context) error { @@ -124,6 +131,16 @@ func buildQuarkusRunner(ctx *builder.Context) error { mc.LocalRepository = ctx.Build.Maven.LocalRepository mc.Timeout = ctx.Build.Maven.GetTimeout().Duration + err := BuildQuarkusRunnerCommon(mc) + if err != nil { + return err + } + + return nil +} + +// BuildQuarkusRunnerCommon -- +func BuildQuarkusRunnerCommon(mc maven.Context) error { resourcesPath := path.Join(mc.Path, "src", "main", "resources") if err := os.MkdirAll(resourcesPath, os.ModePerm); err != nil { return errors.Wrap(err, "failure while creating resource folder") @@ -154,30 +171,55 @@ func computeQuarkusDependencies(ctx *builder.Context) error { mc.LocalRepository = ctx.Build.Maven.LocalRepository mc.Timeout = ctx.Build.Maven.GetTimeout().Duration + // Compute dependencies. + content, err := ComputeQuarkusDependenciesCommon(mc, ctx.Catalog.Runtime.Version) + if err != nil { + return err + } + + // Process artifacts list and add it to existing artifacts. + artifacts := []v1.Artifact{} + artifacts, err = ProcessQuarkusTransitiveDependencies(mc, content) + if err != nil { + return err + } + ctx.Artifacts = append(ctx.Artifacts, artifacts...) + + return nil +} + +// ComputeQuarkusDependenciesCommon -- +func ComputeQuarkusDependenciesCommon(mc maven.Context, runtimeVersion string) ([]byte, error) { // Retrieve the runtime dependencies - mc.AddArgumentf("org.apache.camel.k:camel-k-maven-plugin:%s:generate-dependency-list", ctx.Catalog.Runtime.Version) + mc.AddArgumentf("org.apache.camel.k:camel-k-maven-plugin:%s:generate-dependency-list", runtimeVersion) if err := maven.Run(mc); err != nil { - return errors.Wrap(err, "failure while determining classpath") + return nil, errors.Wrap(err, "failure while determining classpath") } dependencies := path.Join(mc.Path, "target", "dependencies.yaml") content, err := ioutil.ReadFile(dependencies) if err != nil { - return err + return nil, err } + return content, nil +} + +// ProcessQuarkusTransitiveDependencies -- +func ProcessQuarkusTransitiveDependencies(mc maven.Context, content []byte) ([]v1.Artifact, error) { cp := make(map[string][]v1.Artifact) - err = yaml2.Unmarshal(content, &cp) + err := yaml2.Unmarshal(content, &cp) if err != nil { - return err + return nil, err } + artifacts := []v1.Artifact{} for _, e := range cp["dependencies"] { _, fileName := path.Split(e.Location) gav, err := maven.ParseGAV(e.ID) if err != nil { - return err + return nil, err } // @@ -186,13 +228,13 @@ func computeQuarkusDependencies(ctx *builder.Context) error { if e.Checksum == "" { chksum, err := digest.ComputeSHA1(e.Location) if err != nil { - return err + return nil, err } e.Checksum = "sha1:" + chksum } - ctx.Artifacts = append(ctx.Artifacts, v1.Artifact{ + artifacts = append(artifacts, v1.Artifact{ ID: e.ID, Location: e.Location, Target: path.Join("dependencies", gav.GroupID+"."+fileName), @@ -207,15 +249,15 @@ func computeQuarkusDependencies(ctx *builder.Context) error { // runnerChecksum, err := digest.ComputeSHA1(mc.Path, "target", runner) if err != nil { - return err + return nil, err } - ctx.Artifacts = append(ctx.Artifacts, v1.Artifact{ + artifacts = append(artifacts, v1.Artifact{ ID: runner, Location: path.Join(mc.Path, "target", runner), Target: path.Join("dependencies", runner), Checksum: "sha1:" + runnerChecksum, }) - return nil + return artifacts, nil } diff --git a/pkg/cmd/inspect.go b/pkg/cmd/inspect.go index 3eef300..e580552 100644 --- a/pkg/cmd/inspect.go +++ b/pkg/cmd/inspect.go @@ -220,7 +220,10 @@ func getTransitiveDependencies( } // Create Maven project. - project := runtime.GenerateProjectCommon(catalog.CamelCatalogSpec.Runtime.Metadata["camel.version"], defaults.DefaultRuntimeVersion) + //project := runtime.GenerateProjectCommon(catalog.CamelCatalogSpec.Runtime.Metadata["camel.version"], defaults.DefaultRuntimeVersion) + project := runtime.GenerateQuarkusProjectCommon( + catalog.CamelCatalogSpec.Runtime.Metadata["camel-quarkus.version"], + defaults.DefaultRuntimeVersion, catalog.CamelCatalogSpec.Runtime.Metadata["quarkus.version"]) // Inject dependencies into Maven project. err := camel.ManageIntegrationDependencies(&project, dependencies, catalog) @@ -237,16 +240,22 @@ func getTransitiveDependencies( mc := maven.NewContext(temporaryDirectory, project) mc.LocalRepository = mvn.LocalRepository mc.Timeout = mvn.GetTimeout().Duration + // mc.Stdout = os.Stderr + + err = runtime.BuildQuarkusRunnerCommon(mc) + if err != nil { + return err + } // Compute dependencies. - content, err := runtime.ComputeDependenciesCommon(mc, catalog.Runtime.Version) + content, err := runtime.ComputeQuarkusDependenciesCommon(mc, catalog.Runtime.Version) if err != nil { return err } // Compose artifacts list. artifacts := []v1.Artifact{} - artifacts, err = runtime.ProcessTransitiveDependencies(content) + artifacts, err = runtime.ProcessQuarkusTransitiveDependencies(mc, content) if err != nil { return err }