From 2a8ecbc6f38b839a14d21a3ac4c042a112b7dc66 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 12 Jan 2015 16:15:36 +0100 Subject: [PATCH] Cleanup (formatting; explicit assertions; dead code) --- .../projectRoots/impl/JavaSdkImpl.java | 82 +++++++++---------- .../jps/model/java/impl/JavaSdkUtil.java | 23 +++--- .../projectRoots/ui/SdkPathEditor.java | 3 +- .../src/com/intellij/openapi/vfs/VfsUtil.java | 3 +- 4 files changed, 53 insertions(+), 58 deletions(-) diff --git a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java index f3d6575e9fd9..fa166a711999 100644 --- a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java +++ b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,7 @@ */ package com.intellij.openapi.projectRoots.impl; +import com.intellij.execution.configurations.GeneralCommandLine; import com.intellij.execution.util.ExecUtil; import com.intellij.icons.AllIcons; import com.intellij.openapi.actionSystem.DataKey; @@ -28,12 +29,12 @@ import com.intellij.openapi.roots.JavadocOrderRootType; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.*; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashMap; import org.jdom.Element; -import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.model.java.impl.JavaSdkUtil; @@ -51,13 +52,14 @@ import java.util.regex.Pattern; */ public class JavaSdkImpl extends JavaSdk { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.projectRoots.impl.JavaSdkImpl"); - // do not use javaw.exe for Windows because of issues with encoding - @NonNls private static final String VM_EXE_NAME = "java"; - @NonNls private final Pattern myVersionStringPattern = Pattern.compile("^(.*)java version \"([1234567890_.]*)\"(.*)$"); - @NonNls private static final String JAVA_VERSION_PREFIX = "java version "; - @NonNls private static final String OPENJDK_VERSION_PREFIX = "openjdk version "; + public static final DataKey KEY = DataKey.create("JavaSdk"); + private static final String VM_EXE_NAME = "java"; // do not use JavaW.exe for Windows because of issues with encoding + private static final Pattern VERSION_STRING_PATTERN = Pattern.compile("^(.*)java version \"([1234567890_.]*)\"(.*)$"); + private static final String JAVA_VERSION_PREFIX = "java version "; + private static final String OPENJDK_VERSION_PREFIX = "openjdk version "; + public JavaSdkImpl() { super("JavaSDK"); } @@ -83,7 +85,6 @@ public class JavaSdkImpl extends JavaSdk { return AllIcons.General.AddJdk; } - @NonNls @Override @Nullable public String getDefaultDocumentationUrl(@NotNull final Sdk sdk) { @@ -119,7 +120,6 @@ public class JavaSdkImpl extends JavaSdk { } @Override - @NonNls public String getToolsPath(@NotNull Sdk sdk) { final String versionString = sdk.getVersionString(); final boolean isJdk1_x = versionString != null && (versionString.contains("1.0") || versionString.contains("1.1")); @@ -128,11 +128,6 @@ public class JavaSdkImpl extends JavaSdk { @Override public String getVMExecutablePath(@NotNull Sdk sdk) { - /* - if ("64".equals(System.getProperty("sun.arch.data.model"))) { - return getBinPath(sdk) + File.separator + System.getProperty("os.arch") + File.separator + VM_EXE_NAME; - } - */ return getBinPath(sdk) + File.separator + VM_EXE_NAME; } @@ -150,8 +145,8 @@ public class JavaSdkImpl extends JavaSdk { @SuppressWarnings({"HardCodedStringLiteral"}) public String suggestHomePath() { if (SystemInfo.isMac) { - if (new File("/usr/libexec/java_home").exists()) { - final String path = ExecUtil.execAndReadLine("/usr/libexec/java_home"); + if (new File("/usr/libexec/java_home").canExecute()) { + String path = ExecUtil.execAndReadLine(new GeneralCommandLine("/usr/libexec/java_home")); if (path != null && new File(path).exists()) { return path; } @@ -180,6 +175,7 @@ public class JavaSdkImpl extends JavaSdk { return javaHome.getAbsolutePath(); } } + return null; } @@ -244,15 +240,13 @@ public class JavaSdkImpl extends JavaSdk { return descriptor; } - @NonNls public static final String MAC_HOME_PATH = "/Home"; - @Override public String adjustSelectedSdkHome(String homePath) { if (SystemInfo.isMac) { - File home = new File(homePath, MAC_HOME_PATH); + File home = new File(homePath, "/Home"); if (home.exists()) return home.getPath(); - home = new File(new File(homePath, "Contents"), "Home"); + home = new File(homePath, "Contents/Home"); if (home.exists()) return home.getPath(); } @@ -268,7 +262,7 @@ public class JavaSdkImpl extends JavaSdk { public String suggestSdkName(String currentSdkName, String sdkHome) { final String suggestedName; if (currentSdkName != null && !currentSdkName.isEmpty()) { - final Matcher matcher = myVersionStringPattern.matcher(currentSdkName); + final Matcher matcher = VERSION_STRING_PATTERN.matcher(currentSdkName); final boolean replaceNameWithVersion = matcher.matches(); if (replaceNameWithVersion){ // user did not change name -> set it automatically @@ -315,13 +309,16 @@ public class JavaSdkImpl extends JavaSdk { @Override @SuppressWarnings({"HardCodedStringLiteral"}) public void setupSdkPaths(@NotNull Sdk sdk) { - final File jdkHome = new File(sdk.getHomePath()); + String homePath = sdk.getHomePath(); + assert homePath != null : sdk; + + File jdkHome = new File(homePath); List classes = findClasses(jdkHome, false); VirtualFile sources = findSources(jdkHome); VirtualFile docs = findDocs(jdkHome, "docs/api"); + SdkModificator sdkModificator = sdk.getSdkModificator(); - final SdkModificator sdkModificator = sdk.getSdkModificator(); - final Set previousRoots = new LinkedHashSet(Arrays.asList(sdkModificator.getRoots(OrderRootType.CLASSES))); + Set previousRoots = new LinkedHashSet(Arrays.asList(sdkModificator.getRoots(OrderRootType.CLASSES))); sdkModificator.removeRoots(OrderRootType.CLASSES); previousRoots.removeAll(new HashSet(classes)); for (VirtualFile aClass : classes) { @@ -330,14 +327,16 @@ public class JavaSdkImpl extends JavaSdk { for (VirtualFile root : previousRoots) { sdkModificator.addRoot(root, OrderRootType.CLASSES); } - if(sources != null){ + + if (sources != null) { sdkModificator.addRoot(sources, OrderRootType.SOURCES); } - final VirtualFile javaFxSources = findSources(jdkHome, "javafx-src"); + VirtualFile javaFxSources = findSources(jdkHome, "javafx-src"); if (javaFxSources != null) { sdkModificator.addRoot(javaFxSources, OrderRootType.SOURCES); } - if(docs != null){ + + if (docs != null) { sdkModificator.addRoot(docs, JavadocOrderRootType.getInstance()); } else if (SystemInfo.isMac) { @@ -366,12 +365,14 @@ public class JavaSdkImpl extends JavaSdk { sdkModificator.addRoot(VirtualFileManager.getInstance().findFileByUrl(url), JavadocOrderRootType.getInstance()); } } - } else { - if (getVersion(sdk) == JavaSdkVersion.JDK_1_7) { - sdkModificator.addRoot(VirtualFileManager.getInstance().findFileByUrl("http://docs.oracle.com/javafx/2/api/"), JavadocOrderRootType.getInstance()); - } } + else if (getVersion(sdk) == JavaSdkVersion.JDK_1_7) { + VirtualFile url = VirtualFileManager.getInstance().findFileByUrl("http://docs.oracle.com/javafx/2/api/"); + sdkModificator.addRoot(url, JavadocOrderRootType.getInstance()); + } + attachJdkAnnotations(sdkModificator); + sdkModificator.commitChanges(); } @@ -399,19 +400,14 @@ public class JavaSdkImpl extends JavaSdk { private final Map myCachedVersionStrings = new HashMap(); @Override - public final String getVersionString(final String sdkHome) { - if (myCachedVersionStrings.containsKey(sdkHome)) { - return myCachedVersionStrings.get(sdkHome); + public final String getVersionString(String sdkHome) { + String versionString = myCachedVersionStrings.get(sdkHome); + if (versionString == null) { + versionString = getJdkVersion(sdkHome); + if (!StringUtil.isEmpty(versionString)) { + myCachedVersionStrings.put(sdkHome, versionString); + } } - String versionString = getJdkVersion(sdkHome); - if (versionString != null && versionString.isEmpty()) { - versionString = null; - } - - if (versionString != null){ - myCachedVersionStrings.put(sdkHome, versionString); - } - return versionString; } diff --git a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaSdkUtil.java b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaSdkUtil.java index 66f7b4959938..a5a38dad44a1 100644 --- a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaSdkUtil.java +++ b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaSdkUtil.java @@ -33,13 +33,6 @@ import java.util.Set; public class JavaSdkUtil { @NotNull public static List getJdkClassesRoots(@NotNull File home, boolean isJre) { - FileFilter jarFileFilter = new FileFilter() { - @Override - public boolean accept(@NotNull File f) { - return !f.isDirectory() && f.getName().endsWith(".jar"); - } - }; - File[] jarDirs; if (SystemInfo.isMac && !home.getName().startsWith("mockJDK")) { File openJdkRtJar = new File(home, "jre/lib/rt.jar"); @@ -58,7 +51,7 @@ public class JavaSdkUtil { jarDirs = new File[]{libEndorsedDir, libDir, classesDir, libExtDir}; } } - else if (new File(home, "lib/modules").exists()) { + else if (new File(home, "lib/modules").isDirectory()) { File libDir = new File(home, "lib"); jarDirs = new File[]{libDir}; } @@ -69,6 +62,12 @@ public class JavaSdkUtil { jarDirs = new File[]{libEndorsedDir, libDir, libExtDir}; } + FileFilter jarFileFilter = new FileFilter() { + @Override + public boolean accept(@NotNull File f) { + return !f.isDirectory() && f.getName().endsWith(".jar"); + } + }; Set pathFilter = ContainerUtil.newTroveSet(FileUtil.PATH_HASHING_STRATEGY); List rootFiles = ContainerUtil.newArrayList(); for (File jarDir : jarDirs) { @@ -104,9 +103,11 @@ public class JavaSdkUtil { } } - File classesDir = new File(home, "classes"); - if (rootFiles.isEmpty() && classesDir.isDirectory()) { - rootFiles.add(classesDir); + if (rootFiles.isEmpty()) { + File classesDir = new File(home, "classes"); + if (classesDir.isDirectory()) { + rootFiles.add(classesDir); + } } return rootFiles; diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/ui/SdkPathEditor.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/ui/SdkPathEditor.java index bb6f39dc5c2c..9d85290c249e 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/ui/SdkPathEditor.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/ui/SdkPathEditor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -56,5 +56,4 @@ public class SdkPathEditor extends PathEditor { setEnabled(false); } } - } diff --git a/platform/platform-api/src/com/intellij/openapi/vfs/VfsUtil.java b/platform/platform-api/src/com/intellij/openapi/vfs/VfsUtil.java index 254f7749fb25..14c9d319b2d5 100644 --- a/platform/platform-api/src/com/intellij/openapi/vfs/VfsUtil.java +++ b/platform/platform-api/src/com/intellij/openapi/vfs/VfsUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -406,7 +406,6 @@ public class VfsUtil extends VfsUtilCore { * @return the relative path, or null if the files have no common ancestor. * @since 5.0.2 */ - @Nullable public static String getPath(@NotNull VirtualFile src, @NotNull VirtualFile dst, char separatorChar) { final VirtualFile commonAncestor = getCommonAncestor(src, dst);