mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
assertion message — ensure that eclipse plugin is installed
This commit is contained in:
+14
-14
@@ -27,6 +27,7 @@ import com.intellij.openapi.components.impl.stores.StateStorageManager;
|
||||
import com.intellij.openapi.components.impl.stores.StorageManagerListener;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.ModuleRootModel;
|
||||
import com.intellij.openapi.roots.impl.ModuleRootManagerImpl;
|
||||
@@ -35,14 +36,12 @@ import com.intellij.openapi.roots.impl.RootModelImpl;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.io.FileUtilRt;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import com.intellij.openapi.vfs.newvfs.BulkFileListener;
|
||||
import com.intellij.openapi.vfs.newvfs.events.VFileContentChangeEvent;
|
||||
import com.intellij.openapi.vfs.newvfs.events.VFileEvent;
|
||||
import com.intellij.openapi.vfs.newvfs.events.VFilePropertyChangeEvent;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -55,22 +54,28 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
// Boolean - false as not loaded, true as loaded
|
||||
public class ClasspathStorage extends StateStorageBase<Boolean> {
|
||||
public final class ClasspathStorage extends StateStorageBase<Boolean> {
|
||||
private static final Logger LOG = Logger.getInstance(ClasspathStorage.class);
|
||||
|
||||
@NonNls public static final String SPECIAL_STORAGE = "special";
|
||||
|
||||
private final ClasspathStorageProvider.ClasspathConverter myConverter;
|
||||
|
||||
protected final TrackingPathMacroSubstitutor myPathMacroSubstitutor;
|
||||
private final TrackingPathMacroSubstitutor myPathMacroSubstitutor;
|
||||
|
||||
public ClasspathStorage(@NotNull final Module module, @NotNull StateStorageManager storageManager) {
|
||||
myPathMacroSubstitutor = storageManager.getMacroSubstitutor();
|
||||
String storageType = module.getOptionValue(JpsProjectLoader.CLASSPATH_ATTRIBUTE);
|
||||
if (storageType == null) {
|
||||
throw new IllegalStateException("Classpath storage requires non-default storage type");
|
||||
}
|
||||
|
||||
ClasspathStorageProvider provider = getProvider(ClassPathStorageUtil.getStorageType(module));
|
||||
assert provider != null;
|
||||
ClasspathStorageProvider provider = getProvider(storageType);
|
||||
if (provider == null) {
|
||||
throw new IllegalStateException("Classpath storage provider not found, please ensure that Eclipse plugin is installed");
|
||||
}
|
||||
myConverter = provider.createConverter(module);
|
||||
assert myConverter != null;
|
||||
|
||||
myPathMacroSubstitutor = storageManager.getMacroSubstitutor();
|
||||
|
||||
final List<String> paths = myConverter.getFilePaths();
|
||||
MessageBusConnection busConnection = module.getMessageBus().connect();
|
||||
@@ -214,14 +219,9 @@ public class ClasspathStorage extends StateStorageBase<Boolean> {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String getModuleDir(@NotNull Module module) {
|
||||
return PathUtil.getParentPath(FileUtilRt.toSystemIndependentName(module.getModuleFilePath()));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String getStorageRootFromOptions(@NotNull Module module) {
|
||||
String moduleRoot = getModuleDir(module);
|
||||
String moduleRoot = ModuleUtilCore.getModuleDirPath(module);
|
||||
String storageRef = module.getOptionValue(JpsProjectLoader.CLASSPATH_DIR_ATTRIBUTE);
|
||||
if (storageRef == null) {
|
||||
return moduleRoot;
|
||||
|
||||
+2
-3
@@ -24,7 +24,6 @@ import com.intellij.openapi.roots.ModuleRootModel;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
@@ -48,8 +47,8 @@ public interface ClasspathStorageProvider {
|
||||
|
||||
void moduleRenamed(@NotNull Module module, @NotNull String oldName, @NotNull String newName);
|
||||
|
||||
@Nullable
|
||||
ClasspathConverter createConverter(Module module);
|
||||
@NotNull
|
||||
ClasspathConverter createConverter(@NotNull Module module);
|
||||
|
||||
String getContentRoot(@NotNull ModuleRootModel model);
|
||||
|
||||
|
||||
+6
-6
@@ -19,6 +19,7 @@ import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.components.PathMacroManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.impl.storage.ClasspathStorage;
|
||||
@@ -31,7 +32,6 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.eclipse.EclipseBundle;
|
||||
import org.jetbrains.idea.eclipse.EclipseXml;
|
||||
import org.jetbrains.idea.eclipse.conversion.DotProjectFileHelper;
|
||||
@@ -99,9 +99,9 @@ public class EclipseClasspathStorageProvider implements ClasspathStorageProvider
|
||||
EclipseModuleManagerImpl.getInstance(module).setDocumentSet(null);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@NotNull
|
||||
@Override
|
||||
public ClasspathConverter createConverter(Module module) {
|
||||
public ClasspathConverter createConverter(@NotNull Module module) {
|
||||
return new EclipseClasspathConverter(module);
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ public class EclipseClasspathStorageProvider implements ClasspathStorageProvider
|
||||
fileCache.register(EclipseXml.CLASSPATH_FILE, storageRoot);
|
||||
fileCache.register(EclipseXml.PROJECT_FILE, storageRoot);
|
||||
fileCache.register(EclipseXml.PLUGIN_XML_FILE, storageRoot);
|
||||
fileCache.register(module.getName() + EclipseXml.IDEA_SETTINGS_POSTFIX, ClasspathStorage.getModuleDir(module));
|
||||
fileCache.register(module.getName() + EclipseXml.IDEA_SETTINGS_POSTFIX, ModuleUtilCore.getModuleDirPath(module));
|
||||
}
|
||||
return fileCache;
|
||||
}
|
||||
@@ -142,7 +142,7 @@ public class EclipseClasspathStorageProvider implements ClasspathStorageProvider
|
||||
public void moduleRenamed(@NotNull Module module, @NotNull String oldName, @NotNull String newName) {
|
||||
try {
|
||||
CachedXmlDocumentSet fileSet = getFileCache(module);
|
||||
VirtualFile root = LocalFileSystem.getInstance().findFileByPath(ClasspathStorage.getModuleDir(module));
|
||||
VirtualFile root = LocalFileSystem.getInstance().findFileByPath(ModuleUtilCore.getModuleDirPath(module));
|
||||
VirtualFile source = root == null ? null : root.findChild(oldName + EclipseXml.IDEA_SETTINGS_POSTFIX);
|
||||
if (source != null && source.isValid()) {
|
||||
AccessToken token = WriteAction.start();
|
||||
@@ -156,7 +156,7 @@ public class EclipseClasspathStorageProvider implements ClasspathStorageProvider
|
||||
|
||||
DotProjectFileHelper.saveDotProjectFile(module, fileSet.getParent(EclipseXml.PROJECT_FILE));
|
||||
fileSet.unregister(oldName + EclipseXml.IDEA_SETTINGS_POSTFIX);
|
||||
fileSet.register(newName + EclipseXml.IDEA_SETTINGS_POSTFIX, ClasspathStorage.getModuleDir(module));
|
||||
fileSet.register(newName + EclipseXml.IDEA_SETTINGS_POSTFIX, ModuleUtilCore.getModuleDirPath(module));
|
||||
}
|
||||
catch (IOException e) {
|
||||
EclipseClasspathWriter.LOG.warn(e);
|
||||
|
||||
Reference in New Issue
Block a user