diff --git a/plugins/eclipse/common-eclipse-util/src/IdeaXml.java b/plugins/eclipse/common-eclipse-util/src/IdeaXml.java index b32fe838f018..62abb0142a19 100644 --- a/plugins/eclipse/common-eclipse-util/src/IdeaXml.java +++ b/plugins/eclipse/common-eclipse-util/src/IdeaXml.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2016 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. @@ -19,71 +19,15 @@ import org.jetbrains.annotations.NonNls; public interface IdeaXml { @NonNls String COMPONENT_TAG = "component"; - @NonNls String NAME_ATTR = "name"; - @NonNls String NEW_MODULE_ROOT_MANAGER_VALUE = "NewModuleRootManager"; - @NonNls String ORDER_ENTRY_TAG = "orderEntry"; - @NonNls String TYPE_ATTR = "type"; - @NonNls String EXPORTED_ATTR = "exported"; - @NonNls String SOURCE_FOLDER_TYPE = "sourceFolder"; - @NonNls String SOURCE_FOLDER_TAG = "sourceFolder"; @NonNls String CONTENT_ENTRY_TAG = "contentEntry"; @NonNls String TEST_FOLDER_TAG = "testFolder"; @NonNls String PACKAGE_PREFIX_TAG = "packagePrefix"; @NonNls String PACKAGE_PREFIX_VALUE_ATTR = "value"; @NonNls String EXCLUDE_FOLDER_TAG = "excludeFolder"; - @NonNls String FOR_TESTS_ATTR = "forTests"; - @NonNls String TRUE_VALUE = "true"; - @NonNls String FALSE_VALUE = "false"; - @NonNls String CONTENT_TAG = "content"; - @NonNls String MODULE_LIBRARY_TYPE = "module-library"; - @NonNls String LIBRARY_TAG = "library"; - @NonNls String ROOT_TAG = "root"; - @NonNls String CLASSES_TAG = "CLASSES"; - @NonNls String SOURCES_TAG = "SOURCES"; - @NonNls String JAVADOC_TAG = "JAVADOC"; - @NonNls String JAR_DIR = "jarDirectory"; @NonNls String URL_ATTR = "url"; - @NonNls String LIBRARY_TYPE = "library"; - @NonNls String LEVEL_ATTR = "level"; - @NonNls String APPLICATION_LEVEL = "application"; - @NonNls String PROJECT_LEVEL = "project"; @NonNls String ECLIPSE_LIBRARY = "ECLIPSE"; - @NonNls String MODULE_TYPE = "module"; - @NonNls String MODULE_NAME_ATTR = "module-name"; - @NonNls String JDK_TYPE = "jdk"; - @NonNls String INHERITED_JDK_TYPE = "inheritedJdk"; - @NonNls String JDK_NAME_ATTR = "jdkName"; - @NonNls String JDK_TYPE_ATTR = "jdkType"; @NonNls String JAVA_SDK_TYPE = "JavaSDK"; - @NonNls String MODULE_DIR_MACRO = "$MODULE_DIR$"; - @NonNls String FILE_PREFIX = "file://"; - @NonNls String JAR_PREFIX = "jar://"; - @NonNls String JAR_SUFFIX = "!/"; - @NonNls String JAR_EXT = ".jar"; - @NonNls String ZIP_EXT = ".zip"; @NonNls String EXCLUDE_OUTPUT_TAG = "exclude-output"; - @NonNls String LANGUAGE_LEVEL_ATTR = "LANGUAGE_LEVEL"; - @NonNls String INHERIT_COMPILER_OUTPUT_ATTR = "inherit-compiler-output"; - @NonNls String OUTPUT_TAG = "output"; @NonNls String OUTPUT_TEST_TAG = "output-test"; - @NonNls String IS_TEST_SOURCE_ATTR = "isTestSource"; - @NonNls String ORDER_ENTRY_PROPERTIES_TAG = "orderEntryProperties"; - @NonNls String IPR_EXT = ".ipr"; - @NonNls String PROJECT_MODULE_MANAGER_VALUE = "ProjectModuleManager"; - @NonNls String MODULES_TAG = "modules"; - @NonNls String MODULE_TAG = "module"; - @NonNls String FILEURL_ATTR = "fileurl"; - @NonNls String FILEPATH_ATTR = "filepath"; - @NonNls String PROJECT_DIR_MACRO = "$PROJECT_DIR$"; - @NonNls String PROJECT_PREFIX = FILE_PREFIX + PROJECT_DIR_MACRO + "/"; - @NonNls String USED_PATH_MACROS_TAG = "UsedPathMacros"; - @NonNls String MACRO_TAG = "macro"; - @NonNls String UNNAMED_PROJECT = "unnamed"; - @NonNls String MODULE_CONTEXT = "module"; - @NonNls String PROJECT_CONTEXT = "project"; - @NonNls String CLASSPATH_CONTEXT = "classpath"; - @NonNls String TEMPLATE_CONTEXT = "template"; - @NonNls String EXCLUDE_OUTPUT = "exclude-output"; - @NonNls String IML_EXT = ".iml"; String JUNIT = "junit"; -} +} \ No newline at end of file diff --git a/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java b/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java index 605faae243ed..0c1f0e3fdf95 100644 --- a/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java +++ b/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 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. @@ -31,6 +31,7 @@ import org.jetbrains.jps.model.module.JpsDependenciesList; import org.jetbrains.jps.model.module.JpsModule; import org.jetbrains.jps.model.module.JpsModuleSourceRoot; import org.jetbrains.jps.model.serialization.JpsMacroExpander; +import org.jetbrains.jps.model.serialization.java.JpsJavaModelSerializerExtension; import org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer; import java.io.File; @@ -110,8 +111,8 @@ class JpsIdeaSpecificSettings extends AbstractIdeaSpecificSettings implement private Parameters parameters; + @Override @NotNull public String getName() { return EclipseBundle.message("eclipse.name"); } + @Override public Icon getIcon() { return EclipseIcons.Eclipse; } + @Override @Nullable public String getRootDirectory() { return getParameters().root; } + @Override public boolean setRootDirectory(final String path) { ProgressManager.getInstance().run(new Task.Modal(getCurrentProject(), EclipseBundle.message("eclipse.import.scanning"), true) { + @Override public void run(@NotNull ProgressIndicator indicator) { final ArrayList roots = new ArrayList<>(); EclipseProjectFinder.findModuleRoots(roots, path, path12 -> { @@ -128,6 +132,7 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement getParameters().root = path; } + @Override public void onCancel() { getParameters().workspace = null; getParameters().root = null; @@ -138,10 +143,12 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement return getParameters().workspace != null; } + @Override public List getList() { return getParameters().workspace; } + @Override public boolean isMarked(final String element) { if (getParameters().projectsToConvert != null) { return getParameters().projectsToConvert.contains(element); @@ -149,23 +156,28 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement return !getParameters().existingModuleNames.contains(EclipseProjectFinder.findProjectName(element)); } + @Override public void setList(List list) { getParameters().projectsToConvert = list; } + @Override public boolean isOpenProjectSettingsAfter() { return getParameters().openModuleSettings; } + @Override public void setOpenProjectSettingsAfter(boolean on) { getParameters().openModuleSettings = on; } + @Override public void cleanup() { super.cleanup(); parameters = null; } + @Override public boolean validate(final Project currentProject, final Project dstProject) { final Ref refEx = new Ref<>(); final Set variables = new THashSet<>(); @@ -238,7 +250,7 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement } final String moduleName = EclipseProjectFinder.findProjectName(path); moduleNames.add(moduleName); - final File imlFile = new File(modulesDirectory + File.separator + moduleName + IdeaXml.IML_EXT); + final File imlFile = new File(modulesDirectory + File.separator + moduleName + ModuleManagerImpl.IML_EXTENSION); if (imlFile.isFile()) { files.add(imlFile); } @@ -282,7 +294,7 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement if (modulesDirectory == null) { modulesDirectory = path; } - final Module module = moduleModel.newModule(modulesDirectory + "/" + EclipseProjectFinder.findProjectName(path) + IdeaXml.IML_EXT, + final Module module = moduleModel.newModule(modulesDirectory + "/" + EclipseProjectFinder.findProjectName(path) + ModuleManagerImpl.IML_EXTENSION, StdModuleTypes.JAVA.getId()); result.add(module); final Set natures = collectNatures(path); @@ -412,7 +424,7 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement private static void createEclipseLibrary(final Project project, final Collection libraries, final String libraryName) { if (libraries.contains(libraryName)) { final FileChooserDescriptor fileChooserDescriptor = new FileChooserDescriptor(false, true, false, false, false, false) { - + @Override public Icon getIcon(final VirtualFile file) { return looksLikeEclipse(file) ? dressIcon(file, EclipseIcons.Eclipse) : super.getIcon(file); } diff --git a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseClasspathTest.java b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseClasspathTest.java index b5735e6c6852..4e445469d5c6 100644 --- a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseClasspathTest.java +++ b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseClasspathTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 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. @@ -25,8 +25,8 @@ import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.StdModuleTypes; +import com.intellij.openapi.module.impl.ModuleManagerImpl; import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ModuleRootModel; import com.intellij.openapi.roots.ModuleRootModificationUtil; @@ -38,7 +38,6 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.IdeaTestCase; -import com.intellij.util.Consumer; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; @@ -82,12 +81,9 @@ public class EclipseClasspathTest extends IdeaTestCase { } final Element classpathElement = JDOMUtil.loadDocument(fileText).getRootElement(); - final Module module = WriteCommandAction.runWriteCommandAction(null, new Computable() { - @Override - public Module compute() { - String imlPath = path + "/" + EclipseProjectFinder.findProjectName(path) + IdeaXml.IML_EXT; - return ModuleManager.getInstance(project).newModule(imlPath, StdModuleTypes.JAVA.getId()); - } + final Module module = WriteCommandAction.runWriteCommandAction(null, (Computable)() -> { + String imlPath = path + "/" + EclipseProjectFinder.findProjectName(path) + ModuleManagerImpl.IML_EXTENSION; + return ModuleManager.getInstance(project).newModule(imlPath, StdModuleTypes.JAVA.getId()); }); ModuleRootModificationUtil.updateModel(module, model -> { diff --git a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseEmlTest.java b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseEmlTest.java index d2e5d990aef0..a64c3abe7c6f 100644 --- a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseEmlTest.java +++ b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseEmlTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 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. @@ -25,6 +25,7 @@ import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.StdModuleTypes; +import com.intellij.openapi.module.impl.ModuleManagerImpl; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; @@ -75,7 +76,7 @@ public class EclipseEmlTest extends IdeaTestCase { private static Module doLoadModule(@NotNull String path, @NotNull Project project) throws IOException, JDOMException, InvalidDataException { Module module = WriteAction.compute( - () -> ModuleManager.getInstance(project).newModule(path + '/' + EclipseProjectFinder.findProjectName(path) + IdeaXml.IML_EXT, StdModuleTypes.JAVA.getId())); + () -> ModuleManager.getInstance(project).newModule(path + '/' + EclipseProjectFinder.findProjectName(path) + ModuleManagerImpl.IML_EXTENSION, StdModuleTypes.JAVA.getId())); replaceRoot(path, EclipseXml.DOT_CLASSPATH_EXT, project); diff --git a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseImlTest.java b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseImlTest.java index c7696a6b3732..093802d75bc8 100644 --- a/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseImlTest.java +++ b/plugins/eclipse/testSources/org/jetbrains/idea/eclipse/EclipseImlTest.java @@ -29,6 +29,7 @@ import com.intellij.openapi.components.PathMacroManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.StdModuleTypes; +import com.intellij.openapi.module.impl.ModuleManagerImpl; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; @@ -81,7 +82,7 @@ public class EclipseImlTest extends IdeaTestCase { final Element classpathElement = JDOMUtil.loadDocument(fileText).getRootElement(); final Module module = WriteCommandAction.runWriteCommandAction(null, (Computable)() -> ModuleManager.getInstance(project) .newModule(new File(path) + File.separator + EclipseProjectFinder - .findProjectName(path) + IdeaXml.IML_EXT, StdModuleTypes.JAVA.getId())); + .findProjectName(path) + ModuleManagerImpl.IML_EXTENSION, StdModuleTypes.JAVA.getId())); final ModifiableRootModel rootModel = ModuleRootManager.getInstance(module).getModifiableModel(); EclipseClasspathReader classpathReader = new EclipseClasspathReader(path, project, null); classpathReader.init(rootModel); diff --git a/plugins/settings-repository/src/git/GitEx.kt b/plugins/settings-repository/src/git/GitEx.kt index 47a8d044b1d4..2523158f64cd 100644 --- a/plugins/settings-repository/src/git/GitEx.kt +++ b/plugins/settings-repository/src/git/GitEx.kt @@ -17,15 +17,27 @@ package org.jetbrains.settingsRepository.git import com.intellij.openapi.progress.ProcessCanceledException import com.intellij.openapi.util.text.StringUtil +import org.eclipse.jgit.api.CommitCommand +import org.eclipse.jgit.api.ResetCommand import org.eclipse.jgit.dircache.DirCacheCheckout +import org.eclipse.jgit.errors.TransportException import org.eclipse.jgit.internal.JGitText import org.eclipse.jgit.lib.* import org.eclipse.jgit.revwalk.RevCommit +import org.eclipse.jgit.revwalk.RevSort import org.eclipse.jgit.revwalk.RevWalk +import org.eclipse.jgit.revwalk.filter.RevFilter import org.eclipse.jgit.storage.file.FileRepositoryBuilder +import org.eclipse.jgit.transport.CredentialsProvider import org.eclipse.jgit.transport.FetchResult +import org.eclipse.jgit.transport.RemoteConfig +import org.eclipse.jgit.transport.Transport +import org.eclipse.jgit.treewalk.FileTreeIterator +import org.eclipse.jgit.treewalk.TreeWalk +import org.eclipse.jgit.treewalk.filter.TreeFilter import org.jetbrains.settingsRepository.AuthenticationException import org.jetbrains.settingsRepository.IcsCredentialsStore +import org.jetbrains.settingsRepository.LOG import java.io.InputStream import java.nio.file.Path