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 a62cdf4627e58e9cd8a8e354648104bc0c177947
Author: Doru Bercea <[email protected]>
AuthorDate: Tue Nov 10 12:52:47 2020 -0500

    Ensure Maven working directory is kept until after the integration is run.
---
 pkg/builder/runtime/quarkus.go |  9 +++++++++
 pkg/cmd/inspect.go             | 14 ++++++++++++++
 pkg/cmd/local_run.go           | 14 ++++++++++++++
 pkg/cmd/util_dependencies.go   | 35 +++++++++++++++++++++++++----------
 4 files changed, 62 insertions(+), 10 deletions(-)

diff --git a/pkg/builder/runtime/quarkus.go b/pkg/builder/runtime/quarkus.go
index a98faba..dbc3e33 100644
--- a/pkg/builder/runtime/quarkus.go
+++ b/pkg/builder/runtime/quarkus.go
@@ -259,5 +259,14 @@ func ProcessQuarkusTransitiveDependencies(mc 
maven.Context, content []byte) ([]v
                Checksum: "sha1:" + runnerChecksum,
        })
 
+       // currentpath, errr := os.Getwd()
+       // if errr != nil {
+       //      return nil, errr
+       // }
+       // _, err = util.CopyFile(path.Join(mc.Path, "target", runner), 
path.Join(currentpath, runner))
+       // if err != nil {
+       //      return nil, err
+       // }
+
        return artifacts, nil
 }
diff --git a/pkg/cmd/inspect.go b/pkg/cmd/inspect.go
index e524e56..9967cfd 100644
--- a/pkg/cmd/inspect.go
+++ b/pkg/cmd/inspect.go
@@ -40,9 +40,15 @@ will be generated by calling Maven and then printed in the 
selected output forma
                        if err := options.validate(args); err != nil {
                                return err
                        }
+                       if err := options.init(); err != nil {
+                               return err
+                       }
                        if err := options.run(args); err != nil {
                                fmt.Println(err.Error())
                        }
+                       if err := options.deinit(); err != nil {
+                               return err
+                       }
 
                        return nil
                },
@@ -71,6 +77,10 @@ func (command *inspectCmdOptions) validate(args []string) 
error {
        return validateIntegrationForDependencies(args, 
command.AdditionalDependencies)
 }
 
+func (command *inspectCmdOptions) init() error {
+       return createMavenWorkingDirectory()
+}
+
 func (command *inspectCmdOptions) run(args []string) error {
        // Fetch dependencies.
        dependencies, err := getDependencies(args, 
command.AdditionalDependencies, command.AllDependencies)
@@ -86,3 +96,7 @@ func (command *inspectCmdOptions) run(args []string) error {
 
        return nil
 }
+
+func (command *inspectCmdOptions) deinit() error {
+       return deleteMavenWorkingDirectory()
+}
diff --git a/pkg/cmd/local_run.go b/pkg/cmd/local_run.go
index a76daa3..2031e52 100644
--- a/pkg/cmd/local_run.go
+++ b/pkg/cmd/local_run.go
@@ -38,9 +38,15 @@ func newCmdLocalRun(rootCmdOptions *RootCmdOptions) 
(*cobra.Command, *localRunCm
                        if err := options.validate(args); err != nil {
                                return err
                        }
+                       if err := options.init(); err != nil {
+                               return err
+                       }
                        if err := options.run(args); err != nil {
                                fmt.Println(err.Error())
                        }
+                       if err := options.deinit(); err != nil {
+                               return err
+                       }
 
                        return nil
                },
@@ -87,6 +93,10 @@ func (command *localRunCmdOptions) validate(args []string) 
error {
        return nil
 }
 
+func (command *localRunCmdOptions) init() error {
+       return createMavenWorkingDirectory()
+}
+
 func (command *localRunCmdOptions) run(args []string) error {
        // Fetch dependencies.
        dependencies, err := getDependencies(args, 
command.AdditionalDependencies, true)
@@ -108,3 +118,7 @@ func (command *localRunCmdOptions) run(args []string) error 
{
 
        return nil
 }
+
+func (command *localRunCmdOptions) deinit() error {
+       return deleteMavenWorkingDirectory()
+}
diff --git a/pkg/cmd/util_dependencies.go b/pkg/cmd/util_dependencies.go
index 49d0d07..cd29a3e 100644
--- a/pkg/cmd/util_dependencies.go
+++ b/pkg/cmd/util_dependencies.go
@@ -35,6 +35,10 @@ import (
        "github.com/scylladb/go-set/strset"
 )
 
+// Directory used by Maven for an invocation of the kamel local command.
+// By default a temporary folder will be used.
+var mavenWorkingDirectory string = ""
+
 var acceptedDependencyTypes = []string{"bom", "camel", "camel-k", 
"camel-quarkus", "mvn", "github"}
 
 const defaultDependenciesDirectoryName = "dependencies"
@@ -112,14 +116,8 @@ func getTransitiveDependencies(
                return nil, err
        }
 
-       // Create local Maven context.
-       temporaryDirectory, err := ioutil.TempDir(os.TempDir(), "maven-")
-       if err != nil {
-               return nil, err
-       }
-
        // Maven local context to be used for generating the transitive 
dependencies.
-       mc := maven.NewContext(temporaryDirectory, project)
+       mc := maven.NewContext(mavenWorkingDirectory, project)
        mc.LocalRepository = mvn.LocalRepository
        mc.Timeout = mvn.GetTimeout().Duration
 
@@ -150,9 +148,6 @@ func getTransitiveDependencies(
                transitiveDependencies = append(transitiveDependencies, 
entry.Location)
        }
 
-       // Remove directory used for computing the dependencies.
-       defer os.RemoveAll(temporaryDirectory)
-
        return transitiveDependencies, nil
 }
 
@@ -301,3 +296,23 @@ func validateIntegrationForDependencies(args []string, 
additionalDependencies []
 
        return nil
 }
+
+func createMavenWorkingDirectory() error {
+       // Create local Maven context.
+       temporaryDirectory, err := ioutil.TempDir(os.TempDir(), "maven-")
+       if err != nil {
+               return err
+       }
+
+       // Set the Maven directory to the default value.
+       mavenWorkingDirectory = temporaryDirectory
+
+       return nil
+}
+
+func deleteMavenWorkingDirectory() error {
+       // Remove directory used for computing the dependencies.
+       defer os.RemoveAll(mavenWorkingDirectory)
+
+       return nil
+}

Reply via email to