diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudio.java b/cli/src/main/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudio.java index 67f380ef3..c275c10b4 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudio.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudio.java @@ -1,14 +1,12 @@ package com.devonfw.tools.ide.tool.androidstudio; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; import java.util.Set; import com.devonfw.tools.ide.cli.CliArgument; import com.devonfw.tools.ide.common.Tag; import com.devonfw.tools.ide.context.IdeContext; -import com.devonfw.tools.ide.io.FileAccess; +import com.devonfw.tools.ide.environment.EnvironmentVariables; +import com.devonfw.tools.ide.environment.EnvironmentVariablesType; import com.devonfw.tools.ide.process.ProcessMode; import com.devonfw.tools.ide.tool.ide.IdeToolCommandlet; import com.devonfw.tools.ide.tool.ide.PluginDescriptor; @@ -38,7 +36,6 @@ public AndroidStudio(IdeContext context) { @Override protected String getBinaryName() { - Path toolBinPath = getToolBinPath(); if (this.context.getSystemInfo().isWindows()) { return STUDIO64_EXE; } else if (this.context.getSystemInfo().isLinux()) { @@ -58,35 +55,17 @@ public void runTool(ProcessMode processMode, VersionIdentifier toolVersion, Stri } - @Override - public boolean install(boolean silent) { - - return super.install(silent); - } - @Override protected void postInstall() { super.postInstall(); - if (this.context.getSystemInfo().isMac()) { - setMacOsFilePermissions(getToolPath().resolve("Android Studio Preview.app").resolve("Contents").resolve("MacOS").resolve(STUDIO)); - } - } - - private void setMacOsFilePermissions(Path binaryFile) { - - if (Files.exists(binaryFile)) { - FileAccess fileAccess = this.context.getFileAccess(); - try { - fileAccess.makeExecutable(binaryFile); - } catch (IOException e) { - throw new RuntimeException(e); - } - } + EnvironmentVariables envVars = this.context.getVariables().getByType(EnvironmentVariablesType.CONF); + envVars.set("STUDIO_PROPERTIES", this.context.getWorkspacePath().resolve("studio.properties").toString(), true); + envVars.save(); } @Override public void installPlugin(PluginDescriptor plugin) { - + // TODO: needs to be implemented see: https://github.com/devonfw/IDEasy/issues/433 } } diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/intellij/Intellij.java b/cli/src/main/java/com/devonfw/tools/ide/tool/intellij/Intellij.java index dc8dc7d39..c78a12968 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/intellij/Intellij.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/intellij/Intellij.java @@ -1,8 +1,5 @@ package com.devonfw.tools.ide.tool.intellij; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; import java.util.Set; import com.devonfw.tools.ide.cli.CliArgument; @@ -10,7 +7,6 @@ import com.devonfw.tools.ide.context.IdeContext; import com.devonfw.tools.ide.environment.EnvironmentVariables; import com.devonfw.tools.ide.environment.EnvironmentVariablesType; -import com.devonfw.tools.ide.io.FileAccess; import com.devonfw.tools.ide.process.ProcessMode; import com.devonfw.tools.ide.tool.ide.IdeToolCommandlet; import com.devonfw.tools.ide.tool.ide.PluginDescriptor; @@ -49,7 +45,6 @@ public void runTool(ProcessMode processMode, VersionIdentifier toolVersion, Stri @Override protected String getBinaryName() { - Path toolBinPath = getToolBinPath(); if (this.context.getSystemInfo().isWindows()) { return IDEA64_EXE; } else if (this.context.getSystemInfo().isLinux()) { @@ -73,30 +68,6 @@ protected void postInstall() { EnvironmentVariables envVars = this.context.getVariables().getByType(EnvironmentVariablesType.CONF); envVars.set("IDEA_PROPERTIES", this.context.getWorkspacePath().resolve("idea.properties").toString(), true); envVars.save(); - if (this.context.getSystemInfo().isMac()) { - setMacOsFilePermissions(getToolPath().resolve("IntelliJ IDEA" + generateMacEditionString() + ".app").resolve("Contents").resolve("MacOS").resolve(IDEA)); - } - } - - private String generateMacEditionString() { - - String edition = ""; - if (getConfiguredEdition().equals("intellij")) { - edition = " CE"; - } - return edition; - } - - private void setMacOsFilePermissions(Path binaryFile) { - - if (Files.exists(binaryFile)) { - FileAccess fileAccess = this.context.getFileAccess(); - try { - fileAccess.makeExecutable(binaryFile); - } catch (IOException e) { - throw new RuntimeException(e); - } - } } @Override diff --git a/cli/src/test/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudioTest.java b/cli/src/test/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudioTest.java index ac5a14fa7..177635390 100644 --- a/cli/src/test/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudioTest.java +++ b/cli/src/test/java/com/devonfw/tools/ide/tool/androidstudio/AndroidStudioTest.java @@ -69,6 +69,7 @@ public void testAndroidStudioRun(String os) { private void checkInstallation(IdeTestContext context) { // commandlet - android-studio assertThat(context.getSoftwarePath().resolve("android-studio/.ide.software.version")).exists().hasContent("2024.1.1.1"); + assertThat(context.getVariables().get("STUDIO_PROPERTIES")).isEqualTo(context.getWorkspacePath().resolve("studio.properties").toString()); assertLogMessage(context, IdeLogLevel.SUCCESS, "Successfully installed android-studio in version 2024.1.1.1"); } diff --git a/cli/src/test/resources/ide-projects/android-studio/project/conf/ide.properties b/cli/src/test/resources/ide-projects/android-studio/project/conf/ide.properties new file mode 100644 index 000000000..9371acf29 --- /dev/null +++ b/cli/src/test/resources/ide-projects/android-studio/project/conf/ide.properties @@ -0,0 +1 @@ +# here the STUDIO_PROPERTIES variable should be added by the test