• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

devonfw / IDEasy / 20007338019

07 Dec 2025 04:50PM UTC coverage: 70.003% (-0.1%) from 70.101%
20007338019

push

github

web-flow
#39: pip commandlet (#1639)

Co-authored-by: Malte Brunnlieb <malte.brunnlieb@capgemini.com>
Co-authored-by: Malte Brunnlieb <maybeec@users.noreply.github.com>
Co-authored-by: jan-vcapgemini <59438728+jan-vcapgemini@users.noreply.github.com>
Co-authored-by: jan-vcapgemini <jan-vincent.hoelzle@capgemini.com>

3909 of 6137 branches covered (63.7%)

Branch coverage included in aggregate %.

10030 of 13775 relevant lines covered (72.81%)

3.15 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.74
cli/src/main/java/com/devonfw/tools/ide/variable/IdeVariables.java
1
package com.devonfw.tools.ide.variable;
2

3
import java.net.http.HttpClient.Version;
4
import java.nio.file.Path;
5
import java.util.Collection;
6
import java.util.List;
7

8
import com.devonfw.tools.ide.context.IdeContext;
9
import com.devonfw.tools.ide.git.GitUrlSyntax;
10

11
/**
12
 * Interface (mis)used to define all the available variables.
13
 */
14
public interface IdeVariables {
15

16
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getIdeHome() IDE_HOME}. */
17
  VariableDefinitionPath IDE_HOME = new VariableDefinitionPath("IDE_HOME", "DEVON_IDE_HOME", IdeContext::getIdeHome, true);
8✔
18

19
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getIdeRoot() IDE_ROOT}. */
20
  VariableDefinitionPath IDE_ROOT = new VariableDefinitionPath("IDE_ROOT", null, IdeContext::getIdeRoot);
7✔
21

22
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getUserHome() HOME}. */
23
  VariableDefinitionPath HOME = new VariableDefinitionPath("HOME", null, IdeContext::getUserHome, true);
8✔
24

25
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getWorkspaceName() WORKSPACE}. */
26
  VariableDefinitionString WORKSPACE = new VariableDefinitionString("WORKSPACE", null, IdeContext::getWorkspaceName, true);
8✔
27

28
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getPath() PATH}. */
29
  VariableDefinitionSystemPath PATH = new VariableDefinitionSystemPath("PATH", null, IdeContext::getPath, true, true);
9✔
30

31
  /** {@link VariableDefinition} for {@link IdeContext#findBash()} path to bash} (fallback if not found otherwise). */
32
  VariableDefinitionPath BASH_PATH = new VariableDefinitionPath("BASH_PATH", null);
6✔
33

34
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getWorkspacePath() WORKSPACE_PATH}. */
35
  VariableDefinitionPath WORKSPACE_PATH = new VariableDefinitionPath("WORKSPACE_PATH", null, IdeContext::getWorkspacePath, true);
8✔
36

37
  /** {@link VariableDefinition} for default CVE_MIN_SEVERITY. */
38
  VariableDefinitionDouble CVE_MIN_SEVERITY = new VariableDefinitionDouble("CVE_MIN_SEVERITY", null, c -> 0.1);
10✔
39

40
  /** {@link VariableDefinition} for list of tools to install by default. */
41
  VariableDefinitionStringList IDE_TOOLS = new VariableDefinitionStringList("IDE_TOOLS", "DEVON_IDE_TOOLS", c -> List.of("mvn", "npm"));
11✔
42

43
  /** {@link VariableDefinition} for list of IDE tools where interactive suggestions to fix CVEs should be skipped. */
44
  VariableDefinitionStringList SKIP_CVE_FIX = new VariableDefinitionStringList("SKIP_CVE_FIX", null, c -> List.of());
9✔
45

46
  /** {@link VariableDefinition} for list of HTTP protocols to use by default. */
47
  VariableDefinitionEnumList<Version> HTTP_VERSIONS = new VariableDefinitionEnumList<Version>("HTTP_VERSIONS", Version.class);
6✔
48

49
  /** {@link VariableDefinition} for list of IDE tools to create start scripts for. */
50
  VariableDefinitionStringList CREATE_START_SCRIPTS = new VariableDefinitionStringList("CREATE_START_SCRIPTS", "DEVON_CREATE_START_SCRIPTS");
6✔
51

52
  /** {@link VariableDefinition} for minimum IDE product version. */
53
  VariableDefinitionVersion IDE_MIN_VERSION = new VariableDefinitionVersion("IDE_MIN_VERSION");
5✔
54

55
  /** {@link VariableDefinition} for version of maven (mvn). */
56
  VariableDefinitionVersion MVN_VERSION = new VariableDefinitionVersion("MVN_VERSION", "MAVEN_VERSION");
6✔
57

58
  /** {@link VariableDefinition} arguments for maven to locate the settings file. */
59
  VariableDefinitionString MAVEN_ARGS = new VariableDefinitionString("MAVEN_ARGS", null, IdeContext::getMavenArgs, false, true);
9✔
60

61
  /** {@link VariableDefinition} arguments for maven to set the m2 repo location. */
62
  VariableDefinitionPath M2_REPO = new VariableDefinitionPath("M2_REPO", null, IdeVariables::getMavenRepositoryPath, false, true);
9✔
63

64
  /**
65
   * {@link VariableDefinition} for {@link com.devonfw.tools.ide.tool.ToolCommandlet#getConfiguredEdition() edition} of
66
   * {@link com.devonfw.tools.ide.tool.docker.Docker docker}.
67
   */
68
  VariableDefinitionString DOCKER_EDITION = new VariableDefinitionString("DOCKER_EDITION", null, c -> "rancher");
7✔
69

70
  /** {@link VariableDefinition} for default build options of mvn */
71
  VariableDefinitionString MVN_BUILD_OPTS = new VariableDefinitionString("MVN_BUILD_OPTS", null, c -> "clean install");
7✔
72

73
  /** {@link VariableDefinition} for default build options of npm */
74
  VariableDefinitionString NPM_BUILD_OPTS = new VariableDefinitionString("NPM_BUILD_OPTS", null, c -> "run build");
7✔
75

76
  /** {@link VariableDefinition} for NPM_CONFIG_USERCONFIG. */
77
  VariableDefinitionPath NPM_CONFIG_USERCONFIG = new VariableDefinitionPath("NPM_CONFIG_USERCONFIG", null, IdeContext::getNpmConfigUserConfig, false, true);
9✔
78

79
  /** {@link VariableDefinition} for default build options of gradle */
80
  VariableDefinitionString GRADLE_BUILD_OPTS = new VariableDefinitionString("GRADLE_BUILD_OPTS", null, c -> "clean dist");
7✔
81
  /** {@link VariableDefinition} for default user home of gradle */
82
  VariableDefinitionPath GRADLE_USER_HOME = new VariableDefinitionPath("GRADLE_USER_HOME", null, IdeContext::getGradleUserHome, false, true);
9✔
83

84
  /** {@link VariableDefinition} for default build options of yarn */
85
  VariableDefinitionString YARN_BUILD_OPTS = new VariableDefinitionString("YARN_BUILD_OPTS", null, c -> "run build");
7✔
86

87
  /** {@link VariableDefinition} for options of jasypt */
88
  VariableDefinitionString JASYPT_OPTS = new VariableDefinitionString("JASYPT_OPTS", null,
7✔
89
      c -> "algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator");
2✔
90

91
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getProjectName() PROJECT_NAME}. */
92
  VariableDefinitionString PROJECT_NAME = new VariableDefinitionString("PROJECT_NAME", null, IdeContext::getProjectName);
7✔
93

94
  /** Preferred Git protocol (HTTPS/SSH) as defined by {@link GitUrlSyntax}. */
95
  VariableDefinitionEnum<GitUrlSyntax> PREFERRED_GIT_PROTOCOL = new VariableDefinitionEnum<>("PREFERRED_GIT_PROTOCOL", null, GitUrlSyntax.class,
8✔
96
      c -> GitUrlSyntax.DEFAULT);
2✔
97

98
  /**
99
   * {@link VariableDefinition} for support of legacy variable syntax when
100
   * {@link com.devonfw.tools.ide.environment.EnvironmentVariables#resolve(String, Object, boolean) resolving variables} in configuration templates.
101
   */
102
  VariableDefinitionBoolean IDE_VARIABLE_SYNTAX_LEGACY_SUPPORT_ENABLED = new VariableDefinitionBoolean("IDE_VARIABLE_SYNTAX_LEGACY_SUPPORT_ENABLED", null,
7✔
103
      c -> Boolean.TRUE);
2✔
104

105
  /**
106
   * {@link VariableDefinition} for support of legacy xml templates without XML merge namespace
107
   */
108
  VariableDefinitionBoolean IDE_XML_MERGE_LEGACY_SUPPORT_ENABLED = new VariableDefinitionBoolean("IDE_XML_MERGE_LEGACY_SUPPORT_ENABLED", null,
7✔
109
      c -> Boolean.FALSE);
2✔
110

111
  /** {@link VariableDefinition} for {@link com.devonfw.tools.ide.context.IdeContext#getProjectName() DEVON_IDE_CUSTOM_TOOLS}. */
112
  VariableDefinitionString DEVON_IDE_CUSTOM_TOOLS = new VariableDefinitionString("DEVON_IDE_CUSTOM_TOOLS");
5✔
113

114
  /** A {@link Collection} with all pre-defined {@link VariableDefinition}s. */
115
  Collection<VariableDefinition<?>> VARIABLES = List.of(PATH, HOME, WORKSPACE_PATH, IDE_HOME, IDE_ROOT, WORKSPACE, IDE_TOOLS, HTTP_VERSIONS,
101✔
116
      CREATE_START_SCRIPTS,
117
      IDE_MIN_VERSION, MVN_VERSION, M2_REPO, DOCKER_EDITION, MVN_BUILD_OPTS, NPM_BUILD_OPTS, NPM_CONFIG_USERCONFIG, GRADLE_BUILD_OPTS,
118
      GRADLE_USER_HOME,
119
      YARN_BUILD_OPTS, JASYPT_OPTS,
120
      MAVEN_ARGS,
121
      PROJECT_NAME, IDE_VARIABLE_SYNTAX_LEGACY_SUPPORT_ENABLED, PREFERRED_GIT_PROTOCOL);
122

123
  /**
124
   * @param name the name of the requested {@link VariableDefinition}.
125
   * @return the {@link VariableDefinition} for the given {@code name} or {@code null} if not defined.
126
   * @see VariableDefinition#getName()
127
   * @see VariableDefinition#getLegacyName()
128
   */
129
  static VariableDefinition<?> get(String name) {
130

131
    return IdeVariablesList.get(name);
3✔
132
  }
133

134
  /**
135
   * @param name the name of the variable.
136
   * @return {@code true} if a {@link VariableDefinition#getLegacyName() legacy variable}, {@code false} otherwise.
137
   */
138
  static boolean isLegacyVariable(String name) {
139
    VariableDefinition<?> variableDefinition = IdeVariablesList.get(name);
3✔
140
    if (variableDefinition != null) {
2✔
141
      return name.equals(variableDefinition.getLegacyName());
5✔
142
    }
143
    return false;
2✔
144
  }
145

146
  private static Path getMavenRepositoryPath(IdeContext context) {
147
    Path mvnConf = context.getMavenConfigurationFolder();
3✔
148
    if (mvnConf == null) {
2!
149
      return null;
×
150
    }
151
    return mvnConf.resolve("repository");
4✔
152
  }
153
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc