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

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

commit 0b8a1fe6a720830e2f578ed0011ff9a622073f6e
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
AuthorDate: Thu Dec 1 18:42:27 2022 +0000

    (e2e): make the use of paths os independent
    
    * Uses FromSlash in tests to ensure comparisons on Windows are not affected
      by direction of slashes
    
    * Uses filepath.Base as path.Base fails to return the final name when
      running on Windows
    
    * Uses filepath.Join as path.Join, where appropriate, to return os
      corrected paths
    
    * Tests / Resources
     * Uses filepath.ToSlash to make paths unix-like for consistent storage
       and easy comparison
    
    * jvm
     * Ensure the classpath default paths are always converted to unix-style
    
    * cmd/source/util.go
     * Handles difference between how linux and windows deal with an invalid
       path. Since a PathError is returned from the PermissionDenied test as
       well then handling this through the error message is the only alternative
---
 cmd/util/vfs-gen/main.go                |  2 +-
 pkg/builder/image.go                    | 13 +++---
 pkg/builder/quarkus.go                  | 15 +++----
 pkg/builder/s2i.go                      |  5 +--
 pkg/builder/spectrum.go                 |  5 +--
 pkg/cmd/config_test.go                  |  9 ++--
 pkg/cmd/local/local.go                  | 30 ++++++-------
 pkg/cmd/local/workdir.go                | 25 ++++++-----
 pkg/cmd/modeline.go                     |  5 +--
 pkg/cmd/modeline_test.go                | 78 ++++++++++++++++-----------------
 pkg/cmd/run_support.go                  |  7 ++-
 pkg/cmd/source/source.go                |  4 +-
 pkg/cmd/source/util.go                  |  8 ++++
 pkg/cmd/source/util_test.go             | 26 ++++++++++-
 pkg/controller/build/build_pod.go       | 14 +++---
 pkg/controller/build/monitor_routine.go |  6 +--
 pkg/install/kamelets.go                 |  3 +-
 pkg/resources/resources_support.go      |  5 ++-
 pkg/trait/container.go                  |  4 +-
 pkg/trait/jvm.go                        |  8 ++--
 pkg/trait/jvm_test.go                   | 16 ++++---
 pkg/trait/knative_service_test.go       |  5 ++-
 pkg/trait/openapi.go                    |  7 ++-
 pkg/trait/trait_test.go                 |  6 +--
 pkg/trait/trait_types.go                | 17 +++----
 pkg/util/camel/camel_dependencies.go    |  3 +-
 pkg/util/camel/camel_util.go            | 16 +++----
 pkg/util/camel/catalog.go               |  4 +-
 pkg/util/digest/digest.go               |  4 +-
 pkg/util/docker/docker.go               | 10 ++---
 pkg/util/docker/docker_base.go          |  4 +-
 pkg/util/jvm/keystore.go                |  4 +-
 pkg/util/maven/maven_command.go         | 14 +++---
 pkg/util/util.go                        |  2 +-
 34 files changed, 211 insertions(+), 173 deletions(-)

diff --git a/cmd/util/vfs-gen/main.go b/cmd/util/vfs-gen/main.go
index 121d3646b..df8d94e01 100644
--- a/cmd/util/vfs-gen/main.go
+++ b/cmd/util/vfs-gen/main.go
@@ -110,7 +110,7 @@ func main() {
        //
        err = vfsgen.Generate(fs, vfsgen.Options{
                Filename:    resourceFile,
-               PackageName: path.Base(destDir),
+               PackageName: filepath.Base(destDir),
        })
        if err != nil {
                log.Fatalln(err)
diff --git a/pkg/builder/image.go b/pkg/builder/image.go
index a005f42f2..5bd5c46f0 100644
--- a/pkg/builder/image.go
+++ b/pkg/builder/image.go
@@ -21,6 +21,7 @@ import (
        "io/ioutil"
        "os"
        "path"
+       "path/filepath"
 
        "k8s.io/apimachinery/pkg/labels"
        "k8s.io/apimachinery/pkg/selection"
@@ -68,7 +69,7 @@ func nativeImageContext(ctx *builderContext) error {
                ctx.Artifacts = []v1.Artifact{
                        {
                                ID:       runner,
-                               Location: path.Join(ctx.Path, "maven", 
"target", runner),
+                               Location: filepath.Join(ctx.Path, "maven", 
"target", runner),
                                Target:   runner,
                        },
                }
@@ -87,7 +88,7 @@ func executableDockerfile(ctx *builderContext) error {
                USER nonroot
        `)
 
-       err := ioutil.WriteFile(path.Join(ctx.Path, ContextDir, "Dockerfile"), 
dockerfile, 0o400)
+       err := ioutil.WriteFile(filepath.Join(ctx.Path, ContextDir, 
"Dockerfile"), dockerfile, 0o400)
        if err != nil {
                return err
        }
@@ -111,7 +112,7 @@ func jvmDockerfile(ctx *builderContext) error {
                USER 1000
        `)
 
-       err := ioutil.WriteFile(path.Join(ctx.Path, ContextDir, "Dockerfile"), 
dockerfile, 0o400)
+       err := ioutil.WriteFile(filepath.Join(ctx.Path, ContextDir, 
"Dockerfile"), dockerfile, 0o400)
        if err != nil {
                return err
        }
@@ -153,7 +154,7 @@ func imageContext(ctx *builderContext, selector 
artifactsSelector) error {
                return err
        }
 
-       contextDir := path.Join(ctx.Path, ContextDir)
+       contextDir := filepath.Join(ctx.Path, ContextDir)
 
        err = os.MkdirAll(contextDir, 0o700)
        if err != nil {
@@ -161,7 +162,7 @@ func imageContext(ctx *builderContext, selector 
artifactsSelector) error {
        }
 
        for _, entry := range ctx.SelectedArtifacts {
-               _, err := util.CopyFile(entry.Location, path.Join(contextDir, 
entry.Target))
+               _, err := util.CopyFile(entry.Location, 
filepath.Join(contextDir, entry.Target))
                if err != nil {
                        return err
                }
@@ -169,7 +170,7 @@ func imageContext(ctx *builderContext, selector 
artifactsSelector) error {
 
        for _, entry := range ctx.Resources {
                filePath, fileName := path.Split(entry.Target)
-               fullPath := path.Join(contextDir, filePath, fileName)
+               fullPath := filepath.Join(contextDir, filePath, fileName)
                if err := util.WriteFileWithContent(fullPath, entry.Content); 
err != nil {
                        return err
                }
diff --git a/pkg/builder/quarkus.go b/pkg/builder/quarkus.go
index 2061a160f..f5ad3ef79 100644
--- a/pkg/builder/quarkus.go
+++ b/pkg/builder/quarkus.go
@@ -21,7 +21,6 @@ import (
        "context"
        "fmt"
        "os"
-       "path"
        "path/filepath"
        "strings"
 
@@ -146,7 +145,7 @@ func GenerateQuarkusProjectCommon(camelQuarkusVersion 
string, runtimeVersion str
 }
 
 func buildQuarkusRunner(ctx *builderContext) error {
-       mc := maven.NewContext(path.Join(ctx.Path, "maven"))
+       mc := maven.NewContext(filepath.Join(ctx.Path, "maven"))
        mc.GlobalSettings = ctx.Maven.GlobalSettings
        mc.UserSettings = ctx.Maven.UserSettings
        mc.SettingsSecurity = ctx.Maven.SettingsSecurity
@@ -155,7 +154,7 @@ func buildQuarkusRunner(ctx *builderContext) error {
 
        if ctx.Maven.TrustStoreName != "" {
                mc.ExtraMavenOpts = append(mc.ExtraMavenOpts,
-                       "-Djavax.net.ssl.trustStore="+path.Join(ctx.Path, 
ctx.Maven.TrustStoreName),
+                       "-Djavax.net.ssl.trustStore="+filepath.Join(ctx.Path, 
ctx.Maven.TrustStoreName),
                        
"-Djavax.net.ssl.trustStorePassword="+ctx.Maven.TrustStorePass,
                )
        }
@@ -169,7 +168,7 @@ func buildQuarkusRunner(ctx *builderContext) error {
 }
 
 func BuildQuarkusRunnerCommon(ctx context.Context, mc maven.Context, project 
maven.Project) error {
-       resourcesPath := path.Join(mc.Path, "src", "main", "resources")
+       resourcesPath := filepath.Join(mc.Path, "src", "main", "resources")
        if err := os.MkdirAll(resourcesPath, os.ModePerm); err != nil {
                return errors.Wrap(err, "failure while creating resource 
folder")
        }
@@ -179,7 +178,7 @@ func BuildQuarkusRunnerCommon(ctx context.Context, mc 
maven.Context, project mav
        // may fail the build.
        // In the future there should be a way to provide build information 
from secrets,
        // configmap, etc.
-       if _, err := os.Create(path.Join(resourcesPath, 
"application.properties")); err != nil {
+       if _, err := os.Create(filepath.Join(resourcesPath, 
"application.properties")); err != nil {
                return errors.Wrap(err, "failure while creating 
application.properties")
        }
 
@@ -194,7 +193,7 @@ func BuildQuarkusRunnerCommon(ctx context.Context, mc 
maven.Context, project mav
 }
 
 func computeQuarkusDependencies(ctx *builderContext) error {
-       mc := maven.NewContext(path.Join(ctx.Path, "maven"))
+       mc := maven.NewContext(filepath.Join(ctx.Path, "maven"))
        mc.GlobalSettings = ctx.Maven.GlobalSettings
        mc.UserSettings = ctx.Maven.UserSettings
        mc.SettingsSecurity = ctx.Maven.SettingsSecurity
@@ -215,7 +214,7 @@ func ProcessQuarkusTransitiveDependencies(mc maven.Context) 
([]v1.Artifact, erro
        var artifacts []v1.Artifact
 
        // Quarkus fast-jar format is split into various sub-directories in 
quarkus-app
-       quarkusAppDir := path.Join(mc.Path, "target", "quarkus-app")
+       quarkusAppDir := filepath.Join(mc.Path, "target", "quarkus-app")
 
        // Discover application dependencies from the Quarkus fast-jar 
directory tree
        err := filepath.Walk(quarkusAppDir, func(filePath string, info 
os.FileInfo, err error) error {
@@ -234,7 +233,7 @@ func ProcessQuarkusTransitiveDependencies(mc maven.Context) 
([]v1.Artifact, erro
                        artifacts = append(artifacts, v1.Artifact{
                                ID:       filepath.Base(fileRelPath),
                                Location: filePath,
-                               Target:   path.Join(DependenciesDir, 
fileRelPath),
+                               Target:   filepath.Join(DependenciesDir, 
fileRelPath),
                                Checksum: "sha1:" + sha1,
                        })
                }
diff --git a/pkg/builder/s2i.go b/pkg/builder/s2i.go
index d523e843b..140d3ad95 100644
--- a/pkg/builder/s2i.go
+++ b/pkg/builder/s2i.go
@@ -26,7 +26,6 @@ import (
        "fmt"
        "io"
        "os"
-       "path"
        "path/filepath"
        "strings"
        "time"
@@ -145,7 +144,7 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus {
        }
 
        err = util.WithTempDir(t.build.Name+"-s2i-", func(tmpDir string) error {
-               archive := path.Join(tmpDir, "archive.tar.gz")
+               archive := filepath.Join(tmpDir, "archive.tar.gz")
 
                contextDir := t.task.ContextDir
                if contextDir == "" {
@@ -157,7 +156,7 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus {
                        if err != nil {
                                return err
                        }
-                       contextDir = path.Join(pwd, ContextDir)
+                       contextDir = filepath.Join(pwd, ContextDir)
                }
 
                archiveFile, err := os.Create(archive)
diff --git a/pkg/builder/spectrum.go b/pkg/builder/spectrum.go
index bcfac8e3f..d43f52954 100644
--- a/pkg/builder/spectrum.go
+++ b/pkg/builder/spectrum.go
@@ -23,7 +23,6 @@ import (
        "io"
        "io/ioutil"
        "os"
-       "path"
        "path/filepath"
        "runtime"
        "strings"
@@ -67,7 +66,7 @@ func (t *spectrumTask) Do(ctx context.Context) v1.BuildStatus 
{
                if err != nil {
                        return status.Failed(err)
                }
-               contextDir = path.Join(pwd, ContextDir)
+               contextDir = filepath.Join(pwd, ContextDir)
        }
 
        exists, err := util.DirectoryExists(contextDir)
@@ -132,7 +131,7 @@ func (t *spectrumTask) Do(ctx context.Context) 
v1.BuildStatus {
        }
 
        go readSpectrumLogs(newStdR)
-       digest, err := spectrum.Build(options, 
contextDir+":"+path.Join(DeploymentDir))
+       digest, err := spectrum.Build(options, 
contextDir+":"+filepath.Join(DeploymentDir)) //nolint
        if err != nil {
                _ = os.RemoveAll(registryConfigDir)
                return status.Failed(err)
diff --git a/pkg/cmd/config_test.go b/pkg/cmd/config_test.go
index 57d5a981e..ca299d775 100644
--- a/pkg/cmd/config_test.go
+++ b/pkg/cmd/config_test.go
@@ -20,6 +20,7 @@ package cmd
 import (
        "fmt"
        "os"
+       "path/filepath"
        "strings"
        "testing"
 
@@ -85,14 +86,14 @@ func TestConfigFolderFlagToSub(t *testing.T) {
        _, rootCmd, _ := initializeConfigCmdOptions(t, false)
        output, err := test.ExecuteCommand(rootCmd, cmdConfig, "--list", 
"--folder", "sub")
        assert.Nil(t, err)
-       assert.True(t, strings.Contains(output, fmt.Sprintf(" .kamel/%s", 
DefaultConfigLocation)), "The output is unexpected: "+output)
+       assert.True(t, strings.Contains(output, 
filepath.FromSlash(fmt.Sprintf(".kamel/%s", DefaultConfigLocation))), "The 
output is unexpected: "+output)
 }
 
 func TestConfigFolderFlagToHome(t *testing.T) {
        _, rootCmd, _ := initializeConfigCmdOptions(t, false)
        output, err := test.ExecuteCommand(rootCmd, cmdConfig, "--list", 
"--folder", "home")
        assert.Nil(t, err)
-       assert.True(t, strings.Contains(output, fmt.Sprintf("/.kamel/%s", 
DefaultConfigLocation)), "The output is unexpected: "+output)
+       assert.True(t, strings.Contains(output, 
filepath.FromSlash(fmt.Sprintf(".kamel/%s", DefaultConfigLocation))), "The 
output is unexpected: "+output)
 }
 
 func TestConfigFolderFlagToEnv(t *testing.T) {
@@ -101,7 +102,7 @@ func TestConfigFolderFlagToEnv(t *testing.T) {
        _, rootCmd, _ := initializeConfigCmdOptions(t, false)
        output, err := test.ExecuteCommand(rootCmd, cmdConfig, "--list", 
"--folder", "env")
        assert.Nil(t, err)
-       assert.True(t, strings.Contains(output, fmt.Sprintf("/foo/bar/%s", 
DefaultConfigLocation)), "The output is unexpected: "+output)
+       assert.True(t, strings.Contains(output, 
filepath.FromSlash(fmt.Sprintf("foo/bar/%s", DefaultConfigLocation))), "The 
output is unexpected: "+output)
 }
 
 func TestConfigFolderFlagToEnvWithConfigName(t *testing.T) {
@@ -114,7 +115,7 @@ func TestConfigFolderFlagToEnvWithConfigName(t *testing.T) {
        _, rootCmd, _ := initializeConfigCmdOptions(t, false)
        output, err := test.ExecuteCommand(rootCmd, cmdConfig, "--list", 
"--folder", "env")
        assert.Nil(t, err)
-       assert.True(t, strings.Contains(output, "/foo/bar/config.yaml"), "The 
output is unexpected: "+output)
+       assert.True(t, strings.Contains(output, 
filepath.FromSlash("/foo/bar/config.yaml")), "The output is unexpected: 
"+output)
 }
 
 func TestConfigDefaultNamespace(t *testing.T) {
diff --git a/pkg/cmd/local/local.go b/pkg/cmd/local/local.go
index 353e7a1f9..0032e0eee 100644
--- a/pkg/cmd/local/local.go
+++ b/pkg/cmd/local/local.go
@@ -23,7 +23,7 @@ import (
        "fmt"
        "io/ioutil"
        "os"
-       "path"
+       "path/filepath"
        "sort"
        "strings"
 
@@ -99,7 +99,7 @@ func getTopLevelDependencies(ctx context.Context, catalog 
*camel.RuntimeCatalog,
 
                sourceSpec := v1.SourceSpec{
                        DataSpec: v1.DataSpec{
-                               Name:        path.Base(src),
+                               Name:        filepath.Base(src),
                                Content:     data,
                                Compression: false,
                        },
@@ -176,7 +176,7 @@ func getRegularFilesInDir(directory string, dirnameInPath 
bool) ([]string, error
                // Do not include hidden files or sub-directories.
                if !file.IsDir() && !strings.HasPrefix(fileName, ".") {
                        if dirnameInPath {
-                               dirFiles = append(dirFiles, 
path.Join(directory, fileName))
+                               dirFiles = append(dirFiles, 
filepath.Join(directory, fileName))
                        } else {
                                dirFiles = append(dirFiles, fileName)
                        }
@@ -373,7 +373,7 @@ func UpdateIntegrationProperties(properties []string, 
propertyFiles []string, ha
        relocatedPropertyFiles := []string{}
        dir := GetLocalPropertiesDir()
        for _, propertyFile := range propertyFiles {
-               relocatedPropertyFile := path.Join(dir, path.Base(propertyFile))
+               relocatedPropertyFile := filepath.Join(dir, 
filepath.Base(propertyFile))
                if _, err := util.CopyFile(propertyFile, 
relocatedPropertyFile); err != nil {
                        return nil, err
                }
@@ -383,7 +383,7 @@ func UpdateIntegrationProperties(properties []string, 
propertyFiles []string, ha
        if !hasIntegrationDir {
                // Output list of properties to property file if any CLI 
properties were given.
                if len(properties) > 0 {
-                       propertyFilePath := path.Join(dir, "CLI.properties")
+                       propertyFilePath := filepath.Join(dir, "CLI.properties")
                        if err := ioutil.WriteFile(propertyFilePath, 
[]byte(strings.Join(properties, "\n")), 0o600); err != nil {
                                return nil, err
                        }
@@ -407,9 +407,9 @@ func updateIntegrationDependencies(dependencies []string) 
error {
                var targetPath string
                basePath := util.SubstringFrom(dependency, 
util.QuarkusDependenciesBaseDirectory)
                if basePath != "" {
-                       targetPath = path.Join(dir, basePath)
+                       targetPath = filepath.Join(dir, basePath)
                } else {
-                       targetPath = path.Join(dir, path.Base(dependency))
+                       targetPath = filepath.Join(dir, 
filepath.Base(dependency))
                }
                if _, err := util.CopyFile(dependency, targetPath); err != nil {
                        return err
@@ -426,7 +426,7 @@ func updateIntegrationRoutes(routes []string) error {
 
        dir := getLocalRoutesDir()
        for _, route := range routes {
-               if _, err := util.CopyFile(route, path.Join(dir, 
path.Base(route))); err != nil {
+               if _, err := util.CopyFile(route, filepath.Join(dir, 
filepath.Base(route))); err != nil {
                        return err
                }
        }
@@ -476,7 +476,7 @@ func CopyIntegrationFilesToDirectory(files []string, 
directory string) ([]string
        // Copy files to new location. Also create the list with relocated 
files.
        relocatedFilesList := []string{}
        for _, filePath := range files {
-               newFilePath := path.Join(directory, path.Base(filePath))
+               newFilePath := filepath.Join(directory, filepath.Base(filePath))
                if _, err := util.CopyFile(filePath, newFilePath); err != nil {
                        return relocatedFilesList, err
                }
@@ -499,8 +499,8 @@ func CopyQuarkusAppFiles(dependenciesDir string, quarkusDir 
string) error {
        }
        for _, file := range files {
                if strings.HasSuffix(file, ".dat") || strings.HasSuffix(file, 
"-bytecode.jar") {
-                       source := path.Join(dependenciesDir, file)
-                       destination := path.Join(quarkusDir, file)
+                       source := filepath.Join(dependenciesDir, file)
+                       destination := filepath.Join(quarkusDir, file)
                        if _, err = util.CopyFile(source, destination); err != 
nil {
                                return err
                        }
@@ -522,8 +522,8 @@ func CopyLibFiles(dependenciesDir string, libDir string) 
error {
        }
 
        for _, dependencyJar := range fileNames {
-               source := path.Join(dependenciesDir, dependencyJar)
-               destination := path.Join(libDir, dependencyJar)
+               source := filepath.Join(dependenciesDir, dependencyJar)
+               destination := filepath.Join(libDir, dependencyJar)
                if _, err = util.CopyFile(source, destination); err != nil {
                        return err
                }
@@ -545,8 +545,8 @@ func CopyAppFile(dependenciesDir string, appDir string) 
error {
 
        for _, dependencyJar := range fileNames {
                if strings.HasPrefix(dependencyJar, "camel-k-integration-") {
-                       source := path.Join(dependenciesDir, dependencyJar)
-                       destination := path.Join(appDir, dependencyJar)
+                       source := filepath.Join(dependenciesDir, dependencyJar)
+                       destination := filepath.Join(appDir, dependencyJar)
                        if _, err = util.CopyFile(source, destination); err != 
nil {
                                return err
                        }
diff --git a/pkg/cmd/local/workdir.go b/pkg/cmd/local/workdir.go
index 3ab67f5ba..1a7eecc6b 100644
--- a/pkg/cmd/local/workdir.go
+++ b/pkg/cmd/local/workdir.go
@@ -21,6 +21,7 @@ import (
        "io/ioutil"
        "os"
        "path"
+       "path/filepath"
        "strings"
 
        "github.com/apache/camel-k/pkg/util"
@@ -50,7 +51,7 @@ func DeleteMavenWorkingDirectory() error {
 
 // getLocalDependenciesDir returns <mavenWorkingDirectory>/dependencies.
 func getLocalDependenciesDir() string {
-       return path.Join(MavenWorkingDirectory, 
util.DefaultDependenciesDirectoryName)
+       return filepath.Join(MavenWorkingDirectory, 
util.DefaultDependenciesDirectoryName)
 }
 
 func createLocalDependenciesDirectory() error {
@@ -75,7 +76,7 @@ func createLocalDependenciesDirectory() error {
 
 // GetLocalPropertiesDir returns <mavenWorkingDirectory>/properties.
 func GetLocalPropertiesDir() string {
-       return path.Join(MavenWorkingDirectory, 
util.DefaultPropertiesDirectoryName)
+       return filepath.Join(MavenWorkingDirectory, 
util.DefaultPropertiesDirectoryName)
 }
 
 func CreateLocalPropertiesDirectory() error {
@@ -101,7 +102,7 @@ func CreateLocalPropertiesDirectory() error {
 
 // getLocalRoutesDir returns <mavenWorkingDirectory>/routes.
 func getLocalRoutesDir() string {
-       return path.Join(MavenWorkingDirectory, util.DefaultRoutesDirectoryName)
+       return filepath.Join(MavenWorkingDirectory, 
util.DefaultRoutesDirectoryName)
 }
 
 func createLocalRoutesDirectory() error {
@@ -126,7 +127,7 @@ func createLocalRoutesDirectory() error {
 
 // getLocalQuarkusDir returns <mavenWorkingDirectory>/quarkus.
 func getLocalQuarkusDir() string {
-       return path.Join(MavenWorkingDirectory, util.CustomQuarkusDirectoryName)
+       return filepath.Join(MavenWorkingDirectory, 
util.CustomQuarkusDirectoryName)
 }
 
 func createLocalQuarkusDirectory() error {
@@ -151,7 +152,7 @@ func createLocalQuarkusDirectory() error {
 
 // getLocalAppDir returns <mavenWorkingDirectory>/app.
 func getLocalAppDir() string {
-       return path.Join(MavenWorkingDirectory, util.CustomAppDirectoryName)
+       return filepath.Join(MavenWorkingDirectory, util.CustomAppDirectoryName)
 }
 
 func createLocalAppDirectory() error {
@@ -176,7 +177,7 @@ func createLocalAppDirectory() error {
 
 // getLocalLibDir returns <mavenWorkingDirectory>/lib/main.
 func getLocalLibDir() string {
-       return path.Join(MavenWorkingDirectory, util.CustomLibDirectoryName)
+       return filepath.Join(MavenWorkingDirectory, util.CustomLibDirectoryName)
 }
 
 func createLocalLibDirectory() error {
@@ -200,30 +201,30 @@ func createLocalLibDirectory() error {
 }
 
 func GetCustomDependenciesDir(dir string) string {
-       return path.Join(dir, util.DefaultDependenciesDirectoryName)
+       return filepath.Join(dir, util.DefaultDependenciesDirectoryName)
 }
 
 func GetCustomPropertiesDir(dir string) string {
-       return path.Join(dir, util.DefaultPropertiesDirectoryName)
+       return filepath.Join(dir, util.DefaultPropertiesDirectoryName)
 }
 
 func GetCustomRoutesDir(dir string) string {
-       return path.Join(dir, util.DefaultRoutesDirectoryName)
+       return filepath.Join(dir, util.DefaultRoutesDirectoryName)
 }
 
 func GetCustomQuarkusDir(dir string) string {
        parentDir := path.Dir(strings.TrimSuffix(dir, "/"))
-       return path.Join(parentDir, util.CustomQuarkusDirectoryName)
+       return filepath.Join(parentDir, util.CustomQuarkusDirectoryName)
 }
 
 func GetCustomLibDir(dir string) string {
        parentDir := path.Dir(strings.TrimSuffix(dir, "/"))
-       return path.Join(parentDir, util.CustomLibDirectoryName)
+       return filepath.Join(parentDir, util.CustomLibDirectoryName)
 }
 
 func GetCustomAppDir(dir string) string {
        parentDir := path.Dir(strings.TrimSuffix(dir, "/"))
-       return path.Join(parentDir, "app")
+       return filepath.Join(parentDir, "app")
 }
 
 func DeleteLocalIntegrationDirs(dir string) error {
diff --git a/pkg/cmd/modeline.go b/pkg/cmd/modeline.go
index 4ef02caa2..5a7f2a698 100644
--- a/pkg/cmd/modeline.go
+++ b/pkg/cmd/modeline.go
@@ -20,7 +20,6 @@ package cmd
 import (
        "context"
        "fmt"
-       "path"
        "path/filepath"
        "strings"
 
@@ -231,7 +230,7 @@ func extractModelineOptionsFromSource(resolvedSource 
source.Source) ([]modeline.
                        baseDir := filepath.Dir(resolvedSource.Origin)
                        refPath := o.Value
                        if !filepath.IsAbs(refPath) {
-                               full := path.Join(baseDir, refPath)
+                               full := filepath.Join(baseDir, refPath)
                                o.Value = full
                                ops[i] = o
                        }
@@ -239,7 +238,7 @@ func extractModelineOptionsFromSource(resolvedSource 
source.Source) ([]modeline.
                        baseDir := filepath.Dir(resolvedSource.Origin)
                        refPath := getRefPathOrProperty(o.Value)
                        if !filepath.IsAbs(refPath) {
-                               full := getFullPathOrProperty(o.Value, 
path.Join(baseDir, refPath))
+                               full := getFullPathOrProperty(o.Value, 
filepath.Join(baseDir, refPath))
                                o.Value = full
                                ops[i] = o
                        }
diff --git a/pkg/cmd/modeline_test.go b/pkg/cmd/modeline_test.go
index 854bd52a9..f810380e9 100644
--- a/pkg/cmd/modeline_test.go
+++ b/pkg/cmd/modeline_test.go
@@ -22,7 +22,7 @@ import (
        "fmt"
        "io/ioutil"
        "os"
-       "path"
+       "path/filepath"
        "testing"
 
        "github.com/apache/camel-k/pkg/util"
@@ -35,7 +35,7 @@ func TestModelineRunSimple(t *testing.T) {
                file := `
                // camel-k: dependency=mvn:org.my:lib:1.0
        `
-               fileName := path.Join(dir, "simple.groovy")
+               fileName := filepath.Join(dir, "simple.groovy")
                err := ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -53,7 +53,7 @@ func TestModelineRunSimple(t *testing.T) {
 func TestModelineRunHelp(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
                // no file created
-               fileName := path.Join(dir, "simple.groovy")
+               fileName := filepath.Join(dir, "simple.groovy")
 
                cmd, flags, err := NewKamelWithModelineCommand(context.TODO(), 
[]string{"kamel", "run", fileName, "--help"})
                assert.NoError(t, err)
@@ -71,7 +71,7 @@ func TestModelineRunChain(t *testing.T) {
                file := `
                // camel-k: dependency=mvn:org.my:lib:2.0
        `
-               fileName := path.Join(dir, "simple.groovy")
+               fileName := filepath.Join(dir, "simple.groovy")
                err := ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -91,14 +91,14 @@ func TestModelineRunMultipleFiles(t *testing.T) {
                file := `
                // camel-k: dependency=mvn:org.my:lib1:3.0
        `
-               fileName := path.Join(dir, "simple.groovy")
+               fileName := filepath.Join(dir, "simple.groovy")
                err := ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
                file2 := `
                // camel-k: dependency=mvn:org.my:lib2:3.0
        `
-               fileName2 := path.Join(dir, "ext.groovy")
+               fileName2 := filepath.Join(dir, "ext.groovy")
                err = ioutil.WriteFile(fileName2, []byte(file2), 0o400)
                assert.NoError(t, err)
 
@@ -115,14 +115,14 @@ func TestModelineRunMultipleFiles(t *testing.T) {
 
 func TestModelineRunProperty(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: property=my-prop=my-val
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -139,7 +139,7 @@ func TestModelineRunProperty(t *testing.T) {
 
 func TestModelineRunDuplicatedProperties(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
@@ -148,7 +148,7 @@ func TestModelineRunDuplicatedProperties(t *testing.T) {
                // camel-k: property=prop2=false
                // camel-k: property=foo=bar
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -165,7 +165,7 @@ func TestModelineRunDuplicatedProperties(t *testing.T) {
 
 func TestModelineRunDuplicatedBuildProperties(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
@@ -174,7 +174,7 @@ func TestModelineRunDuplicatedBuildProperties(t *testing.T) 
{
                // camel-k: build-property=prop2=false
                // camel-k: build-property=foo=bar
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -197,21 +197,21 @@ func TestModelineRunDuplicatedBuildProperties(t 
*testing.T) {
 
 func TestModelineRunPropertyFiles(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: property=file:application.properties
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
                propFile := `
                a=b
        `
-               propFileName := path.Join(subDir, "application.properties")
+               propFileName := filepath.Join(subDir, "application.properties")
                err = ioutil.WriteFile(propFileName, []byte(propFile), 0o400)
                assert.NoError(t, err)
 
@@ -228,14 +228,14 @@ func TestModelineRunPropertyFiles(t *testing.T) {
 
 func TestModelineRunBuildProperty(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: build-property=my-build-prop=my-val
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -252,21 +252,21 @@ func TestModelineRunBuildProperty(t *testing.T) {
 
 func TestModelineRunBuildPropertyFiles(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: build-property=file:application.properties
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
                propFile := `
                a=b
        `
-               propFileName := path.Join(subDir, "application.properties")
+               propFileName := filepath.Join(subDir, "application.properties")
                err = ioutil.WriteFile(propFileName, []byte(propFile), 0o400)
                assert.NoError(t, err)
 
@@ -283,7 +283,7 @@ func TestModelineRunBuildPropertyFiles(t *testing.T) {
 
 func TestModelineRunDuplicateTraits(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
@@ -292,7 +292,7 @@ func TestModelineRunDuplicateTraits(t *testing.T) {
                // camel-k: trait=trait2=false
                // camel-k: trait=foo=bar
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -309,14 +309,14 @@ func TestModelineRunDuplicateTraits(t *testing.T) {
 
 func TestModelineRunConfigConfigmap(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: config=configmap:my-cm
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -333,14 +333,14 @@ func TestModelineRunConfigConfigmap(t *testing.T) {
 
 func TestModelineRunConfigSecret(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: config=secret:my-secret
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -357,21 +357,21 @@ func TestModelineRunConfigSecret(t *testing.T) {
 
 func TestModelineRunConfigFile(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: config=file:application.properties
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
                propFile := `
                a=b
        `
-               propFileName := path.Join(subDir, "application.properties")
+               propFileName := filepath.Join(subDir, "application.properties")
                err = ioutil.WriteFile(propFileName, []byte(propFile), 0o400)
                assert.NoError(t, err)
 
@@ -388,14 +388,14 @@ func TestModelineRunConfigFile(t *testing.T) {
 
 func TestModelineRunResourceConfigmap(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: resource=configmap:my-cm
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -412,14 +412,14 @@ func TestModelineRunResourceConfigmap(t *testing.T) {
 
 func TestModelineRunResourceSecret(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: resource=secret:my-secret
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -436,21 +436,21 @@ func TestModelineRunResourceSecret(t *testing.T) {
 
 func TestModelineRunResourceFile(t *testing.T) {
        err := util.WithTempDir("camel-k-test-", func(dir string) error {
-               subDir := path.Join(dir, "sub")
+               subDir := filepath.Join(dir, "sub")
                err := os.Mkdir(subDir, 0o700)
                assert.NoError(t, err)
 
                file := `
                // camel-k: resource=file:application.properties
        `
-               fileName := path.Join(subDir, "simple.groovy")
+               fileName := filepath.Join(subDir, "simple.groovy")
                err = ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
                propFile := `
                a=b
        `
-               propFileName := path.Join(subDir, "application.properties")
+               propFileName := filepath.Join(subDir, "application.properties")
                err = ioutil.WriteFile(propFileName, []byte(propFile), 0o400)
                assert.NoError(t, err)
 
@@ -471,7 +471,7 @@ func TestModelineInspectSimple(t *testing.T) {
                file := `
                // camel-k: dependency=mvn:org.my:lib:1.0
        `
-               fileName := path.Join(dir, "simple.groovy")
+               fileName := filepath.Join(dir, "simple.groovy")
                err := ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -493,7 +493,7 @@ func TestModelineInspectMultipleDeps(t *testing.T) {
                // camel-k: dependency=mvn:org.my:lib:1.0
                // camel-k: dependency=camel-k:camel-dep
        `
-               fileName := path.Join(dir, "simple.groovy")
+               fileName := filepath.Join(dir, "simple.groovy")
                err := ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
@@ -514,7 +514,7 @@ func TestModelineQuotedPodTemplate(t *testing.T) {
                file := `
                // camel-k: pod-template='{ "containers": [], 
"securityContext": { "supplementalGroups": [ 553 ] }, "volumes": [] } }'
        `
-               fileName := path.Join(dir, "simple.groovy")
+               fileName := filepath.Join(dir, "simple.groovy")
                err := ioutil.WriteFile(fileName, []byte(file), 0o400)
                assert.NoError(t, err)
 
diff --git a/pkg/cmd/run_support.go b/pkg/cmd/run_support.go
index e929a67f3..812c7d326 100644
--- a/pkg/cmd/run_support.go
+++ b/pkg/cmd/run_support.go
@@ -24,7 +24,6 @@ import (
        "net/http"
        "net/url"
        "os"
-       "path"
        "path/filepath"
        "reflect"
        "strings"
@@ -74,7 +73,7 @@ func parseConfigAndGenCm(ctx context.Context, cmd 
*cobra.Command, c client.Clien
                if config.ContentType() == resource.ContentTypeText {
                        resourceType = v1.ResourceTypeConfig
                }
-               resourceSpec, err := 
binaryOrTextResource(path.Base(config.Name()), rawData, contentType, 
enableCompression, resourceType, config.DestinationPath())
+               resourceSpec, err := 
binaryOrTextResource(filepath.Base(config.Name()), rawData, contentType, 
enableCompression, resourceType, config.DestinationPath())
                if err != nil {
                        return nil, err
                }
@@ -189,9 +188,9 @@ func downloadDependency(ctx context.Context, url url.URL) 
(string, error) {
                return "", err
        }
        defer res.Body.Close()
-       base := path.Base(url.Path)
+       base := filepath.Base(url.Path)
        if base == "." || base == "/" || filepath.Ext(base) == "" {
-               base = path.Base(url.String())
+               base = filepath.Base(url.String())
                if base == "." || base == "/" {
                        base = "tmp"
                }
diff --git a/pkg/cmd/source/source.go b/pkg/cmd/source/source.go
index 4daeb89c2..3f04d0061 100644
--- a/pkg/cmd/source/source.go
+++ b/pkg/cmd/source/source.go
@@ -23,7 +23,7 @@ import (
        "net/http"
        "net/url"
        "os"
-       "path"
+       "path/filepath"
        "strings"
 
        "github.com/apache/camel-k/pkg/util"
@@ -53,7 +53,7 @@ func newSource(location string, compress bool, loadContent 
func() ([]byte, error
                locPath = location
        }
        src := Source{
-               Name:     path.Base(locPath),
+               Name:     filepath.Base(locPath),
                Origin:   location,
                Location: location,
                Compress: compress,
diff --git a/pkg/cmd/source/util.go b/pkg/cmd/source/util.go
index 3e2b6a787..3ad2dc9ed 100644
--- a/pkg/cmd/source/util.go
+++ b/pkg/cmd/source/util.go
@@ -19,7 +19,9 @@ package source
 
 import (
        "fmt"
+       "io/fs"
        "os"
+       "runtime"
        "strings"
 
        "github.com/pkg/errors"
@@ -43,6 +45,12 @@ func IsLocalAndFileExists(uri string) (bool, error) {
                if os.IsNotExist(err) {
                        return false, nil
                }
+
+               if _, ok := err.(*fs.PathError); ok && runtime.GOOS == 
"windows" { // nolint
+                       // Windows returns a PathError rather than NotExist is 
path is invalid
+                       return false, nil
+               }
+
                // If it is a different error (ie, permission denied) we should 
report it back
                return false, errors.Wrap(err, fmt.Sprintf("file system error 
while looking for %s", uri))
        }
diff --git a/pkg/cmd/source/util_test.go b/pkg/cmd/source/util_test.go
index 53de90c9b..586743d2b 100644
--- a/pkg/cmd/source/util_test.go
+++ b/pkg/cmd/source/util_test.go
@@ -21,6 +21,9 @@ limitations under the License.
 package source
 
 import (
+       "os"
+       "path/filepath"
+       "runtime"
        "testing"
 
        "github.com/stretchr/testify/assert"
@@ -37,8 +40,29 @@ func TestCorrectFileValuesButNotFound(t *testing.T) {
        assert.False(t, value2)
 }
 
+func isWindows() bool {
+       return runtime.GOOS == "windows"
+}
+
 func TestPermissionDenied(t *testing.T) {
-       value, err := IsLocalAndFileExists("/root/test")
+       dir := "/tmp/filedir"
+
+       if isWindows() {
+               t.Skip("Test not reliably producing a result on a windows OS")
+       }
+
+       err := os.Mkdir(dir, 0700)
+       assert.Nil(t, err)
+
+       filename := filepath.Join(dir, "file.txt")
+       f, err := os.Create(filename)
+       assert.Nil(t, err)
+       defer f.Close()
+
+       err = os.Chmod(dir, 0000)
+       assert.Nil(t, err)
+
+       value, err := IsLocalAndFileExists(filename)
        // must not panic because a permission error
        assert.NotNil(t, err)
        assert.False(t, value)
diff --git a/pkg/controller/build/build_pod.go 
b/pkg/controller/build/build_pod.go
index 42385d95c..257405928 100644
--- a/pkg/controller/build/build_pod.go
+++ b/pkg/controller/build/build_pod.go
@@ -21,7 +21,7 @@ import (
        "context"
        "fmt"
        "os"
-       "path"
+       "path/filepath"
        "strconv"
        "strings"
 
@@ -230,7 +230,7 @@ func addBuildTaskToPod(build *v1.Build, taskName string, 
pod *corev1.Pod) {
                        "--task-name",
                        taskName,
                },
-               WorkingDir: path.Join(builderDir, build.Name),
+               WorkingDir: filepath.Join(builderDir, build.Name),
                Env:        proxyFromEnvironment(),
        }
 
@@ -336,7 +336,7 @@ func addBuildahTaskToPod(ctx context.Context, c 
ctrl.Reader, build *v1.Build, ta
                Command:         []string{"/bin/sh", "-c"},
                Args:            []string{strings.Join(args, " && ")},
                Env:             env,
-               WorkingDir:      path.Join(builderDir, build.Name, 
builder.ContextDir),
+               WorkingDir:      filepath.Join(builderDir, build.Name, 
builder.ContextDir),
                VolumeMounts:    volumeMounts,
        }
 
@@ -355,7 +355,7 @@ func addKanikoTaskToPod(ctx context.Context, c ctrl.Reader, 
build *v1.Build, tas
 
        args := []string{
                "--dockerfile=Dockerfile",
-               "--context=" + path.Join(builderDir, build.Name, 
builder.ContextDir),
+               "--context=" + filepath.Join(builderDir, build.Name, 
builder.ContextDir),
                "--destination=" + task.Image,
                "--cache=" + strconv.FormatBool(cache),
                "--cache-dir=" + builder.KanikoCacheDir,
@@ -452,7 +452,7 @@ func addKanikoTaskToPod(ctx context.Context, c ctrl.Reader, 
build *v1.Build, tas
                ImagePullPolicy: corev1.PullIfNotPresent,
                Args:            args,
                Env:             env,
-               WorkingDir:      path.Join(builderDir, build.Name, 
builder.ContextDir),
+               WorkingDir:      filepath.Join(builderDir, build.Name, 
builder.ContextDir),
                VolumeMounts:    volumeMounts,
        }
 
@@ -469,7 +469,7 @@ func addContainerToPod(build *v1.Build, container 
corev1.Container, pod *corev1.
        if hasBuilderVolume(pod) {
                container.VolumeMounts = append(container.VolumeMounts, 
corev1.VolumeMount{
                        Name:      builderVolume,
-                       MountPath: path.Join(builderDir, build.Name),
+                       MountPath: filepath.Join(builderDir, build.Name),
                })
        }
 
@@ -563,7 +563,7 @@ func addRegistrySecret(name string, secret registrySecret, 
volumes *[]corev1.Vol
        if secret.refEnv != "" {
                *env = append(*env, corev1.EnvVar{
                        Name:  secret.refEnv,
-                       Value: path.Join(secret.mountPath, secret.destination),
+                       Value: filepath.Join(secret.mountPath, 
secret.destination),
                })
        }
 }
diff --git a/pkg/controller/build/monitor_routine.go 
b/pkg/controller/build/monitor_routine.go
index 42f5a7902..2820c8a70 100644
--- a/pkg/controller/build/monitor_routine.go
+++ b/pkg/controller/build/monitor_routine.go
@@ -23,7 +23,7 @@ import (
        "fmt"
        "io/ioutil"
        "os"
-       "path"
+       "path/filepath"
        "sync"
 
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -137,13 +137,13 @@ tasks:
                                        status.Failed(fmt.Errorf("cannot 
determine context directory for task %s", t.Name))
                                        break tasks
                                }
-                               t.ContextDir = path.Join(buildDir, 
builder.ContextDir)
+                               t.ContextDir = filepath.Join(buildDir, 
builder.ContextDir)
                        } else if t := task.S2i; t != nil && t.ContextDir == "" 
{
                                if buildDir == "" {
                                        status.Failed(fmt.Errorf("cannot 
determine context directory for task %s", t.Name))
                                        break tasks
                                }
-                               t.ContextDir = path.Join(buildDir, 
builder.ContextDir)
+                               t.ContextDir = filepath.Join(buildDir, 
builder.ContextDir)
                        }
 
                        // Execute the task
diff --git a/pkg/install/kamelets.go b/pkg/install/kamelets.go
index 569453734..4f8102a85 100644
--- a/pkg/install/kamelets.go
+++ b/pkg/install/kamelets.go
@@ -25,7 +25,6 @@ import (
        "io/fs"
        "net/http"
        "os"
-       "path"
        "path/filepath"
        "strings"
        "sync"
@@ -90,7 +89,7 @@ func KameletCatalog(ctx context.Context, c client.Client, 
namespace string) erro
                }
                // We may want to throttle the creation of Go routines if the 
number of bundled Kamelets increases.
                g.Go(func() error {
-                       kamelet, err := loadKamelet(path.Join(kameletDir, 
f.Name()), namespace)
+                       kamelet, err := loadKamelet(filepath.Join(kameletDir, 
f.Name()), namespace)
                        if err != nil {
                                return err
                        }
diff --git a/pkg/resources/resources_support.go 
b/pkg/resources/resources_support.go
index 28fa9ab4f..85774a3a0 100644
--- a/pkg/resources/resources_support.go
+++ b/pkg/resources/resources_support.go
@@ -22,6 +22,7 @@ import (
        "io/ioutil"
        "net/http"
        "os"
+       "path"
        "path/filepath"
        "strings"
        "text/template"
@@ -43,6 +44,7 @@ func ResourceAsString(name string) (string, error) {
 // Resource provides an easy way to access to embedded assets.
 func Resource(name string) ([]byte, error) {
        name = strings.Trim(name, " ")
+       name = filepath.ToSlash(name)
        if !strings.HasPrefix(name, "/") {
                name = "/" + name
        }
@@ -115,6 +117,7 @@ func WithPrefix(pathPrefix string) ([]string, error) {
 
 // Resources lists all file names in the given path (starts with '/').
 func Resources(dirName string) ([]string, error) {
+       dirName = filepath.ToSlash(dirName)
        dir, err := openAsset(dirName)
        if err != nil {
                if os.IsNotExist(err) {
@@ -142,7 +145,7 @@ func Resources(dirName string) ([]string, error) {
        var res []string
        for _, f := range files {
                if !f.IsDir() {
-                       res = append(res, filepath.Join(dirName, f.Name()))
+                       res = append(res, path.Join(dirName, f.Name()))
                }
        }
 
diff --git a/pkg/trait/container.go b/pkg/trait/container.go
index bf2205473..b42f1e2df 100644
--- a/pkg/trait/container.go
+++ b/pkg/trait/container.go
@@ -19,7 +19,7 @@ package trait
 
 import (
        "fmt"
-       "path"
+       "path/filepath"
 
        appsv1 "k8s.io/api/apps/v1"
        batchv1 "k8s.io/api/batch/v1"
@@ -162,7 +162,7 @@ func (t *containerTrait) configureContainer(e *Environment) 
error {
        }
 
        envvar.SetVal(&container.Env, digest.IntegrationDigestEnvVar, 
e.Integration.Status.Digest)
-       envvar.SetVal(&container.Env, "CAMEL_K_CONF", path.Join(camel.BasePath, 
"application.properties"))
+       envvar.SetVal(&container.Env, "CAMEL_K_CONF", 
filepath.Join(camel.BasePath, "application.properties"))
        envvar.SetVal(&container.Env, "CAMEL_K_CONF_D", camel.ConfDPath)
 
        e.addSourcesProperties()
diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go
index 05609ff9e..60a4fbac2 100644
--- a/pkg/trait/jvm.go
+++ b/pkg/trait/jvm.go
@@ -20,7 +20,7 @@ package trait
 import (
        "fmt"
        "net/url"
-       "path"
+       "path/filepath"
        "sort"
        "strings"
 
@@ -102,8 +102,8 @@ func (t *jvmTrait) Apply(e *Environment) error {
        classpath := strset.New()
 
        classpath.Add("./resources")
-       classpath.Add(camel.ConfigResourcesMountPath)
-       classpath.Add(camel.ResourcesDefaultMountPath)
+       classpath.Add(filepath.ToSlash(camel.ConfigResourcesMountPath))
+       classpath.Add(filepath.ToSlash(camel.ResourcesDefaultMountPath))
        if t.Classpath != "" {
                classpath.Add(strings.Split(t.Classpath, ":")...)
        }
@@ -116,7 +116,7 @@ func (t *jvmTrait) Apply(e *Environment) error {
                // In case of an external created kit, we do not have any 
information about
                // the classpath, so we assume the all jars in 
/deployments/dependencies/ have
                // to be taken into account.
-               dependencies := path.Join(builder.DeploymentDir, 
builder.DependenciesDir)
+               dependencies := filepath.Join(builder.DeploymentDir, 
builder.DependenciesDir)
                classpath.Add(
                        dependencies+"/*",
                        dependencies+"/app/*",
diff --git a/pkg/trait/jvm_test.go b/pkg/trait/jvm_test.go
index 8fe4b772f..ad2d750f2 100644
--- a/pkg/trait/jvm_test.go
+++ b/pkg/trait/jvm_test.go
@@ -19,6 +19,7 @@ package trait
 
 import (
        "fmt"
+       "path/filepath"
        "sort"
        "strings"
        "testing"
@@ -40,6 +41,11 @@ import (
        "github.com/apache/camel-k/pkg/util/test"
 )
 
+var (
+       crMountPath = filepath.ToSlash(camel.ConfigResourcesMountPath)
+       rdMountPath = filepath.ToSlash(camel.ResourcesDefaultMountPath)
+)
+
 func TestConfigureJvmTraitInRightPhasesDoesSucceed(t *testing.T) {
        trait, environment := 
createNominalJvmTest(v1.IntegrationKitTypePlatform)
 
@@ -103,12 +109,12 @@ func TestApplyJvmTraitWithDeploymentResource(t 
*testing.T) {
 
        assert.Nil(t, err)
 
-       cp := strset.New("./resources", camel.ConfigResourcesMountPath, 
camel.ResourcesDefaultMountPath, "/mount/path").List()
+       cp := strset.New("./resources", crMountPath, rdMountPath, 
"/mount/path").List()
        sort.Strings(cp)
 
        assert.Equal(t, []string{
                "-cp",
-               fmt.Sprintf("./resources:%s:%s:/mount/path", 
camel.ConfigResourcesMountPath, camel.ResourcesDefaultMountPath),
+               fmt.Sprintf("./resources:%s:%s:/mount/path", crMountPath, 
rdMountPath),
                "io.quarkus.bootstrap.runner.QuarkusEntryPoint",
        }, d.Spec.Template.Spec.Containers[0].Args)
 }
@@ -135,12 +141,12 @@ func TestApplyJvmTraitWithKNativeResource(t *testing.T) {
 
        assert.Nil(t, err)
 
-       cp := strset.New("./resources", camel.ConfigResourcesMountPath, 
camel.ResourcesDefaultMountPath, "/mount/path").List()
+       cp := strset.New("./resources", crMountPath, rdMountPath, 
"/mount/path").List()
        sort.Strings(cp)
 
        assert.Equal(t, []string{
                "-cp",
-               fmt.Sprintf("./resources:%s:%s:/mount/path", 
camel.ConfigResourcesMountPath, camel.ResourcesDefaultMountPath),
+               fmt.Sprintf("./resources:%s:%s:/mount/path", crMountPath, 
rdMountPath),
                "io.quarkus.bootstrap.runner.QuarkusEntryPoint",
        }, s.Spec.Template.Spec.Containers[0].Args)
 }
@@ -244,7 +250,7 @@ func TestApplyJvmTraitWithClasspath(t *testing.T) {
        assert.Nil(t, err)
        assert.Equal(t, []string{
                "-cp",
-               fmt.Sprintf("./resources:%s:%s:/mount/path:%s:%s", 
camel.ConfigResourcesMountPath, camel.ResourcesDefaultMountPath,
+               fmt.Sprintf("./resources:%s:%s:/mount/path:%s:%s", crMountPath, 
rdMountPath,
                        "/path/to/another/dep.jar", "/path/to/my-dep.jar"),
                "io.quarkus.bootstrap.runner.QuarkusEntryPoint",
        }, d.Spec.Template.Spec.Containers[0].Args)
diff --git a/pkg/trait/knative_service_test.go 
b/pkg/trait/knative_service_test.go
index d2f42e0aa..7f59faf74 100644
--- a/pkg/trait/knative_service_test.go
+++ b/pkg/trait/knative_service_test.go
@@ -18,6 +18,7 @@ limitations under the License.
 package trait
 
 import (
+       "path/filepath"
        "testing"
 
        "github.com/stretchr/testify/assert"
@@ -175,8 +176,8 @@ func TestKnativeService(t *testing.T) {
        assert.Equal(t, "file:/etc/camel/sources/routes.js", 
environment.ApplicationProperties["camel.k.sources[0].location"])
        assert.Equal(t, "js", 
environment.ApplicationProperties["camel.k.sources[0].language"])
        assert.Equal(t, "true", 
environment.ApplicationProperties["camel.k.sources[0].compressed"])
-       test.EnvVarHasValue(t, spec.Containers[0].Env, "CAMEL_K_CONF", 
"/etc/camel/application.properties")
-       test.EnvVarHasValue(t, spec.Containers[0].Env, "CAMEL_K_CONF_D", 
"/etc/camel/conf.d")
+       test.EnvVarHasValue(t, spec.Containers[0].Env, "CAMEL_K_CONF", 
filepath.FromSlash("/etc/camel/application.properties"))
+       test.EnvVarHasValue(t, spec.Containers[0].Env, "CAMEL_K_CONF_D", 
filepath.FromSlash("/etc/camel/conf.d"))
 }
 
 func TestKnativeServiceWithCustomContainerName(t *testing.T) {
diff --git a/pkg/trait/openapi.go b/pkg/trait/openapi.go
index 8615b1b07..f34589c5b 100644
--- a/pkg/trait/openapi.go
+++ b/pkg/trait/openapi.go
@@ -22,7 +22,6 @@ import (
        "fmt"
        "io/ioutil"
        "os"
-       "path"
        "path/filepath"
        "strconv"
        "strings"
@@ -194,7 +193,7 @@ func (t *openAPITrait) generateOpenAPIConfigMap(e 
*Environment, resource v1.Data
 }
 
 func (t *openAPITrait) createNewOpenAPIConfigMap(e *Environment, resource 
v1.DataSpec, tmpDir, generatedContentName string) error {
-       tmpDir = path.Join(tmpDir, generatedContentName)
+       tmpDir = filepath.Join(tmpDir, generatedContentName)
        err := os.MkdirAll(tmpDir, os.ModePerm)
        if err != nil {
                return err
@@ -208,8 +207,8 @@ func (t *openAPITrait) createNewOpenAPIConfigMap(e 
*Environment, resource v1.Dat
                }
        }
 
-       in := path.Join(tmpDir, resource.Name)
-       out := path.Join(tmpDir, "openapi-dsl.xml")
+       in := filepath.Join(tmpDir, resource.Name)
+       out := filepath.Join(tmpDir, "openapi-dsl.xml")
 
        err = ioutil.WriteFile(in, content, 0o400)
        if err != nil {
diff --git a/pkg/trait/trait_test.go b/pkg/trait/trait_test.go
index 114c6fe00..63fcb07d0 100644
--- a/pkg/trait/trait_test.go
+++ b/pkg/trait/trait_test.go
@@ -18,7 +18,7 @@ limitations under the License.
 package trait
 
 import (
-       "path"
+       "path/filepath"
        "testing"
 
        "github.com/stretchr/testify/assert"
@@ -233,7 +233,7 @@ func 
TestConfigureVolumesAndMountsTextResourcesAndProperties(t *testing.T) {
 
        m := findVVolumeMount(mnts, func(m corev1.VolumeMount) bool { return 
m.Name == "test-configmap" })
        assert.NotNil(t, m)
-       assert.Equal(t, path.Join(camel.ConfigConfigmapsMountPath, 
"test-configmap"), m.MountPath)
+       assert.Equal(t, filepath.Join(camel.ConfigConfigmapsMountPath, 
"test-configmap"), m.MountPath)
 
        v = findVolume(vols, func(v corev1.Volume) bool { return v.Name == 
"test-secret" })
        assert.NotNil(t, v)
@@ -242,7 +242,7 @@ func 
TestConfigureVolumesAndMountsTextResourcesAndProperties(t *testing.T) {
 
        m = findVVolumeMount(mnts, func(m corev1.VolumeMount) bool { return 
m.Name == "test-secret" })
        assert.NotNil(t, m)
-       assert.Equal(t, path.Join(camel.ConfigSecretsMountPath, "test-secret"), 
m.MountPath)
+       assert.Equal(t, filepath.Join(camel.ConfigSecretsMountPath, 
"test-secret"), m.MountPath)
 
        v = findVolume(vols, func(v corev1.Volume) bool { return v.Name == 
"testvolume-data" })
        assert.NotNil(t, v)
diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go
index 39c800077..b38b9a7d8 100644
--- a/pkg/trait/trait_types.go
+++ b/pkg/trait/trait_types.go
@@ -21,6 +21,7 @@ import (
        "context"
        "fmt"
        "path"
+       "path/filepath"
        "sort"
        "strings"
 
@@ -405,8 +406,8 @@ func (e *Environment) addSourcesProperties() {
                e.ApplicationProperties = make(map[string]string)
        }
        for i, s := range e.Integration.Sources() {
-               srcName := strings.TrimPrefix(s.Name, "/")
-               src := "file:" + path.Join(camel.SourcesMountPath, srcName)
+               srcName := strings.TrimPrefix(filepath.ToSlash(s.Name), "/")
+               src := "file:" + 
path.Join(filepath.ToSlash(camel.SourcesMountPath), srcName)
                
e.ApplicationProperties[fmt.Sprintf("camel.k.sources[%d].location", i)] = src
 
                simpleName := srcName
@@ -460,7 +461,7 @@ func (e *Environment) configureVolumesAndMounts(vols 
*[]corev1.Volume, mnts *[]c
                }
                resName := strings.TrimPrefix(s.Name, "/")
                refName := fmt.Sprintf("i-source-%03d", i)
-               resPath := path.Join(camel.SourcesMountPath, resName)
+               resPath := filepath.Join(camel.SourcesMountPath, resName)
                vol := getVolume(refName, "configmap", cmName, cmKey, resName)
                mnt := getMount(refName, resPath, resName, true)
 
@@ -476,9 +477,9 @@ func (e *Environment) configureVolumesAndMounts(vols 
*[]corev1.Volume, mnts *[]c
                        var mountPath string
                        switch propertiesType {
                        case "application":
-                               mountPath = path.Join(camel.BasePath, resName)
+                               mountPath = filepath.Join(camel.BasePath, 
resName)
                        case "user":
-                               mountPath = path.Join(camel.ConfDPath, resName)
+                               mountPath = filepath.Join(camel.ConfDPath, 
resName)
                        }
 
                        if propertiesType != "" {
@@ -521,7 +522,7 @@ func (e *Environment) configureVolumesAndMounts(vols 
*[]corev1.Volume, mnts *[]c
        if len(e.ServiceBindingSecret) > 0 {
                secret := e.ServiceBindingSecret
                refName := kubernetes.SanitizeLabel(secret)
-               mountPath := path.Join(camel.ServiceBindingsMountPath, 
strings.ToLower(secret))
+               mountPath := filepath.Join(camel.ServiceBindingsMountPath, 
strings.ToLower(secret))
                vol := getVolume(refName, "secret", secret, "", "")
                mnt := getMount(refName, mountPath, "", true)
 
@@ -613,14 +614,14 @@ func getMountPoint(resourceName string, mountPoint 
string, storagetype, resource
                return mountPoint
        }
        if resourceType == "data" {
-               return path.Join(camel.ResourcesDefaultMountPath, resourceName)
+               return filepath.Join(camel.ResourcesDefaultMountPath, 
resourceName)
        }
        defaultMountPoint := camel.ConfigConfigmapsMountPath
        if storagetype == "secret" {
                defaultMountPoint = camel.ConfigSecretsMountPath
        }
 
-       return path.Join(defaultMountPoint, resourceName)
+       return filepath.Join(defaultMountPoint, resourceName)
 }
 
 func (e *Environment) collectConfigurationValues(configurationType string) 
[]string {
diff --git a/pkg/util/camel/camel_dependencies.go 
b/pkg/util/camel/camel_dependencies.go
index abe230f08..7ef91d326 100644
--- a/pkg/util/camel/camel_dependencies.go
+++ b/pkg/util/camel/camel_dependencies.go
@@ -20,7 +20,6 @@ package camel
 import (
        "fmt"
        "io"
-       "path"
        "path/filepath"
        "strings"
 
@@ -221,7 +220,7 @@ func addRegistryMavenDependency(project *maven.Project, 
dependency string) error
                        "artifact",
                },
                Configuration: map[string]string{
-                       "outputDirectory": path.Join(outputDirectory, 
filepath.Dir(outputFileRelativePath)),
+                       "outputDirectory": filepath.Join(outputDirectory, 
filepath.Dir(outputFileRelativePath)),
                        "outputFileName":  
filepath.Base(outputFileRelativePath),
                        "groupId":         gav.GroupID,
                        "artifactId":      gav.ArtifactID,
diff --git a/pkg/util/camel/camel_util.go b/pkg/util/camel/camel_util.go
index 7b6215881..4e252c906 100644
--- a/pkg/util/camel/camel_util.go
+++ b/pkg/util/camel/camel_util.go
@@ -18,7 +18,7 @@ limitations under the License.
 package camel
 
 import (
-       "path"
+       "path/filepath"
        "sort"
        "strings"
 
@@ -30,13 +30,13 @@ import (
 
 var (
        BasePath                  = "/etc/camel"
-       ConfDPath                 = path.Join(BasePath, "conf.d")
-       SourcesMountPath          = path.Join(BasePath, "sources")
-       ResourcesDefaultMountPath = path.Join(BasePath, "resources")
-       ConfigResourcesMountPath  = path.Join(ConfDPath, "_resources")
-       ConfigConfigmapsMountPath = path.Join(ConfDPath, "_configmaps")
-       ConfigSecretsMountPath    = path.Join(ConfDPath, "_secrets")
-       ServiceBindingsMountPath  = path.Join(ConfDPath, "_servicebindings")
+       ConfDPath                 = filepath.Join(BasePath, "conf.d")
+       SourcesMountPath          = filepath.Join(BasePath, "sources")
+       ResourcesDefaultMountPath = filepath.Join(BasePath, "resources")
+       ConfigResourcesMountPath  = filepath.Join(ConfDPath, "_resources")
+       ConfigConfigmapsMountPath = filepath.Join(ConfDPath, "_configmaps")
+       ConfigSecretsMountPath    = filepath.Join(ConfDPath, "_secrets")
+       ServiceBindingsMountPath  = filepath.Join(ConfDPath, "_servicebindings")
 )
 
 func findBestMatch(catalogs []v1.CamelCatalog, runtime v1.RuntimeSpec) 
(*RuntimeCatalog, error) {
diff --git a/pkg/util/camel/catalog.go b/pkg/util/camel/catalog.go
index 360f5ed12..7918fd775 100644
--- a/pkg/util/camel/catalog.go
+++ b/pkg/util/camel/catalog.go
@@ -19,7 +19,7 @@ package camel
 
 import (
        "context"
-       "path"
+       "path/filepath"
 
        yaml2 "gopkg.in/yaml.v2"
 
@@ -148,7 +148,7 @@ func GenerateCatalogCommon(
                        return err
                }
 
-               content, err := util.ReadFile(path.Join(tmpDir, "catalog.yaml"))
+               content, err := util.ReadFile(filepath.Join(tmpDir, 
"catalog.yaml"))
                if err != nil {
                        return err
                }
diff --git a/pkg/util/digest/digest.go b/pkg/util/digest/digest.go
index ee119a452..ddadc615b 100644
--- a/pkg/util/digest/digest.go
+++ b/pkg/util/digest/digest.go
@@ -27,7 +27,7 @@ import (
        "fmt"
        "hash"
        "io"
-       "path"
+       "path/filepath"
        "sort"
        "strconv"
        "strings"
@@ -311,7 +311,7 @@ func sortedTraitAnnotationsKeys(it *v1.Integration) 
[]string {
 }
 
 func ComputeSHA1(elem ...string) (string, error) {
-       file := path.Join(elem...)
+       file := filepath.Join(elem...)
 
        // #nosec G401
        h := sha1.New()
diff --git a/pkg/util/docker/docker.go b/pkg/util/docker/docker.go
index eca77307f..37d298190 100644
--- a/pkg/util/docker/docker.go
+++ b/pkg/util/docker/docker.go
@@ -19,7 +19,7 @@ package docker
 
 import (
        "os/exec"
-       "path"
+       "path/filepath"
        "strings"
 
        "github.com/apache/camel-k/pkg/util"
@@ -38,7 +38,7 @@ func CreateBaseImageDockerFile() error {
        dockerFile = append(dockerFile, RUNMavenInstall())
 
        // Write <BaseWorkingDirectory>/Dockerfile
-       baseDockerFilePath := path.Join(BaseWorkingDirectory, "Dockerfile")
+       baseDockerFilePath := filepath.Join(BaseWorkingDirectory, "Dockerfile")
        if err := util.WriteToFile(baseDockerFilePath, strings.Join(dockerFile, 
"\n")); err != nil {
                return err
        }
@@ -82,7 +82,7 @@ func CreateIntegrationImageDockerFile(integrationRunCmd 
*exec.Cmd, startsFromLoc
        dockerFile = append(dockerFile, 
CMDShellWrap(strings.Join(integrationRunCmd.Args, " ")))
 
        // Write <IntegrationWorkingDirectory>/Dockerfile
-       integrationDockerFilePath := path.Join(IntegrationWorkingDirectory, 
"Dockerfile")
+       integrationDockerFilePath := filepath.Join(IntegrationWorkingDirectory, 
"Dockerfile")
        err := util.WriteToFile(integrationDockerFilePath, 
strings.Join(dockerFile, "\n"))
        if err != nil {
                return err
@@ -139,7 +139,7 @@ func GetContainerRoutesDir() string {
 func ContainerizeFilePaths(currentFilePaths []string, newDir string) []string {
        newFilePaths := []string{}
        for _, currentFilePath := range currentFilePaths {
-               newFilePaths = append(newFilePaths, 
newDir+containerFileSeparator+path.Base(currentFilePath))
+               newFilePaths = append(newFilePaths, 
newDir+containerFileSeparator+filepath.Base(currentFilePath))
        }
 
        return newFilePaths
@@ -153,7 +153,7 @@ func ContainerizeDependencyPaths(dependencyPaths []string, 
newDir string) []stri
                if newDependencyPath != "" {
                        newDependencyPaths = append(newDependencyPaths, 
newDir+newDependencyPath)
                } else {
-                       newDependencyPaths = append(newDependencyPaths, 
newDir+containerFileSeparator+path.Base(currentDependencyPath))
+                       newDependencyPaths = append(newDependencyPaths, 
newDir+containerFileSeparator+filepath.Base(currentDependencyPath))
                }
        }
        return newDependencyPaths
diff --git a/pkg/util/docker/docker_base.go b/pkg/util/docker/docker_base.go
index 5fba82e95..f91f60bc1 100644
--- a/pkg/util/docker/docker_base.go
+++ b/pkg/util/docker/docker_base.go
@@ -18,7 +18,7 @@ limitations under the License.
 package docker
 
 import (
-       "path"
+       "path/filepath"
        "strings"
 
        "github.com/apache/camel-k/pkg/util"
@@ -56,7 +56,7 @@ func BuildImageArgs(dockerFileDir string, imageName string, 
sourceDir string) []
        args = append(args, "build")
 
        // Add path to Dockerfile:
-       dockerFile := path.Join(dockerFileDir, "Dockerfile")
+       dockerFile := filepath.Join(dockerFileDir, "Dockerfile")
 
        args = append(args, DockerfilePathArg(dockerFile)...)
 
diff --git a/pkg/util/jvm/keystore.go b/pkg/util/jvm/keystore.go
index 9788fa362..1721227b9 100644
--- a/pkg/util/jvm/keystore.go
+++ b/pkg/util/jvm/keystore.go
@@ -23,7 +23,7 @@ import (
        "fmt"
        "os"
        "os/exec"
-       "path"
+       "path/filepath"
        "strings"
 
        "github.com/apache/camel-k/pkg/util"
@@ -56,7 +56,7 @@ func GenerateKeystore(ctx context.Context, keystoreDir, 
keystoreName, keystorePa
        // JVM truststore.
        javaHome, ok := os.LookupEnv("JAVA_HOME")
        if ok {
-               caCertsPath := path.Join(javaHome, "lib/security/cacerts")
+               caCertsPath := filepath.Join(javaHome, "lib/security/cacerts")
                args := strings.Fields(fmt.Sprintf("-importkeystore -noprompt 
-srckeystore %s -srcstorepass %s -destkeystore %s -deststorepass %s", 
caCertsPath, "changeit", keystoreName, keystorePass))
                cmd := exec.CommandContext(ctx, "keytool", args...)
                cmd.Dir = keystoreDir
diff --git a/pkg/util/maven/maven_command.go b/pkg/util/maven/maven_command.go
index 2440a4328..c0cc4d764 100644
--- a/pkg/util/maven/maven_command.go
+++ b/pkg/util/maven/maven_command.go
@@ -24,7 +24,7 @@ import (
        "io/ioutil"
        "os"
        "os/exec"
-       "path"
+       "path/filepath"
        "regexp"
        "runtime"
        "strconv"
@@ -62,14 +62,14 @@ func (c *Command) Do(ctx context.Context) error {
                }
        }
 
-       settingsPath := path.Join(c.context.Path, "settings.xml")
+       settingsPath := filepath.Join(c.context.Path, "settings.xml")
        if settingsExists, err := util.FileExists(settingsPath); err != nil {
                return err
        } else if settingsExists {
                args = append(args, "--global-settings", settingsPath)
        }
 
-       settingsPath = path.Join(c.context.Path, "user-settings.xml")
+       settingsPath = filepath.Join(c.context.Path, "user-settings.xml")
        if settingsExists, err := util.FileExists(settingsPath); err != nil {
                return err
        } else if settingsExists {
@@ -183,19 +183,19 @@ func generateProjectStructure(context Context, project 
Project) error {
        }
 
        if context.GlobalSettings != nil {
-               if err := util.WriteFileWithContent(path.Join(context.Path, 
"settings.xml"), context.GlobalSettings); err != nil {
+               if err := util.WriteFileWithContent(filepath.Join(context.Path, 
"settings.xml"), context.GlobalSettings); err != nil {
                        return err
                }
        }
 
        if context.UserSettings != nil {
-               if err := util.WriteFileWithContent(path.Join(context.Path, 
"user-settings.xml"), context.UserSettings); err != nil {
+               if err := util.WriteFileWithContent(filepath.Join(context.Path, 
"user-settings.xml"), context.UserSettings); err != nil {
                        return err
                }
        }
 
        if context.SettingsSecurity != nil {
-               if err := util.WriteFileWithContent(path.Join(context.Path, 
"settings-security.xml"), context.SettingsSecurity); err != nil {
+               if err := util.WriteFileWithContent(filepath.Join(context.Path, 
"settings-security.xml"), context.SettingsSecurity); err != nil {
                        return err
                }
        }
@@ -218,7 +218,7 @@ func generateProjectStructure(context Context, project 
Project) error {
                if len(bytes) > 0 {
                        Log.Infof("write entry: %s (%d bytes)", k, len(bytes))
 
-                       err = util.WriteFileWithContent(path.Join(context.Path, 
k), bytes)
+                       err = 
util.WriteFileWithContent(filepath.Join(context.Path, k), bytes)
                        if err != nil {
                                return err
                        }
diff --git a/pkg/util/util.go b/pkg/util/util.go
index 80fb19910..750aada65 100644
--- a/pkg/util/util.go
+++ b/pkg/util/util.go
@@ -330,7 +330,7 @@ func WriteFileWithBytesMarshallerContent(basePath string, 
filePath string, conte
                return err
        }
 
-       return WriteFileWithContent(path.Join(basePath, filePath), data)
+       return WriteFileWithContent(filepath.Join(basePath, filePath), data)
 }
 
 func FindAllDistinctStringSubmatch(data string, regexps ...*regexp.Regexp) 
[]string {

Reply via email to