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 2020/11/05 22:54:14 UTC
[camel-k] 17/19: Move to quarkus.
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 <gh...@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
}