From 81e490a593c97e13cd0455931614ce53f6cfd6ea Mon Sep 17 00:00:00 2001 From: Emily McMullan Date: Tue, 29 Oct 2024 14:52:19 -0400 Subject: [PATCH] global settings file for java provider Signed-off-by: Emily McMullan --- .../pkg/java_external_provider/provider.go | 15 +++++++++++---- .../pkg/java_external_provider/service_client.go | 4 +++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/external-providers/java-external-provider/pkg/java_external_provider/provider.go b/external-providers/java-external-provider/pkg/java_external_provider/provider.go index 5c9c527e..5f7f3c12 100644 --- a/external-providers/java-external-provider/pkg/java_external_provider/provider.go +++ b/external-providers/java-external-provider/pkg/java_external_provider/provider.go @@ -38,10 +38,11 @@ const ( // provider specific config keys const ( - BUNDLES_INIT_OPTION = "bundles" - WORKSPACE_INIT_OPTION = "workspace" - MVN_SETTINGS_FILE_INIT_OPTION = "mavenSettingsFile" - JVM_MAX_MEM_INIT_OPTION = "jvmMaxMem" + BUNDLES_INIT_OPTION = "bundles" + WORKSPACE_INIT_OPTION = "workspace" + MVN_SETTINGS_FILE_INIT_OPTION = "mavenSettingsFile" + GLOBAL_SETTINGS_FILE_INIT_OPTION = "globalSettingsFile" + JVM_MAX_MEM_INIT_OPTION = "jvmMaxMem" ) // Rule Location to location that the bundle understands @@ -238,6 +239,11 @@ func (p *javaProvider) Init(ctx context.Context, log logr.Logger, config provide mavenSettingsFile = "" } + globalSettingsFile, ok := config.ProviderSpecificConfig[GLOBAL_SETTINGS_FILE_INIT_OPTION].(string) + if !ok { + globalSettingsFile = "" + } + lspServerPath, ok := config.ProviderSpecificConfig[provider.LspServerPathConfigKey].(string) if !ok || lspServerPath == "" { return nil, additionalBuiltinConfig, fmt.Errorf("invalid lspServerPath provided, unable to init java provider") @@ -387,6 +393,7 @@ func (p *javaProvider) Init(ctx context.Context, log logr.Logger, config provide depToLabels: map[string]*depLabelItem{}, isLocationBinary: isBinary, mvnSettingsFile: mavenSettingsFile, + globalSettings: globalSettingsFile, depsLocationCache: make(map[string]int), includedPaths: provider.GetIncludedPathsFromConfig(config, false), } diff --git a/external-providers/java-external-provider/pkg/java_external_provider/service_client.go b/external-providers/java-external-provider/pkg/java_external_provider/service_client.go index f3d8d2f8..ed2a6129 100644 --- a/external-providers/java-external-provider/pkg/java_external_provider/service_client.go +++ b/external-providers/java-external-provider/pkg/java_external_provider/service_client.go @@ -32,6 +32,7 @@ type javaServiceClient struct { depToLabels map[string]*depLabelItem isLocationBinary bool mvnSettingsFile string + globalSettings string depsMutex sync.RWMutex depsCache map[uri.URI][]*provider.Dep depsLocationCache map[string]int @@ -241,7 +242,8 @@ func (p *javaServiceClient) initialization(ctx context.Context) { "java": map[string]interface{}{ "configuration": map[string]interface{}{ "maven": map[string]interface{}{ - "userSettings": p.mvnSettingsFile, + "userSettings": p.mvnSettingsFile, + "globalSettings": p.globalSettings, }, }, "autobuild": map[string]interface{}{