diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/CaptureConfigurable.java b/java/debugger/impl/src/com/intellij/debugger/settings/CaptureConfigurable.java index 1c4823bbdd4f..771900896656 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/CaptureConfigurable.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/CaptureConfigurable.java @@ -173,7 +173,7 @@ public class CaptureConfigurable implements SearchableConfigurable { } }); try { - JDOMUtil.writeDocument(new Document(rootElement), wrapper.getFile(), "\n"); + JDOMUtil.write(rootElement, wrapper.getFile()); } catch (Exception ex) { final String msg = ex.getLocalizedMessage(); diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java index 3003f665547e..1892e1bf9f8e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiser.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -47,7 +47,6 @@ import com.intellij.util.io.HttpRequests; import com.intellij.util.xmlb.XmlSerializer; import com.intellij.util.xmlb.annotations.MapAnnotation; import com.intellij.util.xmlb.annotations.Tag; -import org.jdom.Document; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -179,7 +178,7 @@ public class PluginsAdvertiser implements StartupActivity { if (!plugins.isFile()) { FileUtil.ensureCanCreateFile(plugins); } - JDOMUtil.writeDocument(new Document(XmlSerializer.serialize(new KnownExtensions(extensions))), plugins, "\n"); + JDOMUtil.write(XmlSerializer.serialize(new KnownExtensions(extensions)), plugins); } public static void openDownloadPage() { diff --git a/platform/projectModel-impl/src/com/intellij/util/jdom.kt b/platform/projectModel-impl/src/com/intellij/util/jdom.kt index 28a3a4479006..4512e75e29a2 100644 --- a/platform/projectModel-impl/src/com/intellij/util/jdom.kt +++ b/platform/projectModel-impl/src/com/intellij/util/jdom.kt @@ -18,21 +18,22 @@ package com.intellij.util import com.intellij.openapi.util.JDOMUtil import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream import com.intellij.reference.SoftReference +import com.intellij.util.io.inputStream +import com.intellij.util.io.outputStream import com.intellij.util.text.CharSequenceReader import com.sun.org.apache.xerces.internal.impl.Constants import org.apache.xerces.util.SecurityManager import org.jdom.Document import org.jdom.Element +import org.jdom.JDOMException +import org.jdom.Parent import org.jdom.filter.ElementFilter import org.jdom.input.SAXBuilder import org.jdom.input.SAXHandler import org.xml.sax.EntityResolver import org.xml.sax.InputSource import org.xml.sax.XMLReader -import java.io.CharArrayReader -import java.io.InputStream -import java.io.Reader -import java.nio.file.Files +import java.io.* import java.nio.file.Path private val cachedSaxBuilder = ThreadLocal>() @@ -57,13 +58,22 @@ private fun getSaxBuilder(): SAXBuilder { return saxBuilder } +@JvmOverloads +@Throws(IOException::class) +fun write(element: Parent, file: Path, lineSeparator: String = "\n") { + BufferedOutputStream(file.outputStream()).use { + JDOMUtil.write(element, it, lineSeparator) + } +} + fun loadElement(chars: CharSequence) = loadElement(CharSequenceReader(chars)) fun loadElement(reader: Reader): Element = loadDocument(reader).detachRootElement() fun loadElement(stream: InputStream): Element = loadDocument(stream.reader()).detachRootElement() -fun loadElement(path: Path): Element = loadDocument(Files.newInputStream(path).bufferedReader()).detachRootElement() +@Throws(IOException::class, JDOMException::class) +fun loadElement(path: Path): Element = loadDocument(path.inputStream().bufferedReader()).detachRootElement() private fun loadDocument(reader: Reader): Document = reader.use { getSaxBuilder().build(it) } diff --git a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java index c2980e8bda4b..f6abf74ce2cc 100644 --- a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java +++ b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java @@ -16,6 +16,7 @@ package com.intellij.openapi.util; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.util.ArrayUtil; @@ -368,7 +369,13 @@ public class JDOMUtil { write(document, file, lineSeparator); } + public static void write(@NotNull Parent element, @NotNull File file) throws IOException { + write(element, file, "\n"); + } + public static void write(@NotNull Parent element, @NotNull File file, @NotNull String lineSeparator) throws IOException { + FileUtil.createParentDirs(file); + OutputStream stream = new BufferedOutputStream(new FileOutputStream(file)); try { write(element, stream, lineSeparator); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java index 2a0003242acc..780a8c147fa3 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -24,12 +24,11 @@ import com.intellij.openapi.progress.BackgroundTaskQueue; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.Task; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.Pair; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.JdomKt; +import com.intellij.util.io.PathKt; import gnu.trove.THashSet; -import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jetbrains.annotations.NotNull; @@ -44,6 +43,7 @@ import org.jetbrains.idea.maven.utils.*; import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.*; public class MavenIndicesManager implements Disposable { @@ -62,7 +62,7 @@ public class MavenIndicesManager implements Disposable { IDLE, WAITING, UPDATING } - private volatile File myTestIndicesDir; + private volatile Path myTestIndicesDir; private volatile MavenIndexerWrapper myIndexer; private volatile MavenIndices myIndices; @@ -79,7 +79,7 @@ public class MavenIndicesManager implements Disposable { } @TestOnly - public void setTestIndexDir(File indicesDir) { + public void setTestIndexDir(Path indicesDir) { myTestIndicesDir = indicesDir; } @@ -98,13 +98,15 @@ public class MavenIndicesManager implements Disposable { myIndexer = MavenServerManager.getInstance().createIndexer(); myDownloadListener = new MavenServerDownloadListener() { + @Override public void artifactDownloaded(File file, String relativePath) { addArtifact(file, relativePath); } }; MavenServerManager.getInstance().addDownloadListener(myDownloadListener); - myIndices = new MavenIndices(myIndexer, getIndicesDir(), new MavenIndex.IndexListener() { + myIndices = new MavenIndices(myIndexer, getIndicesDir().toFile(), new MavenIndex.IndexListener() { + @Override public void indexIsBroken(MavenIndex index) { scheduleUpdate(null, Collections.singletonList(index), false); } @@ -113,16 +115,18 @@ public class MavenIndicesManager implements Disposable { loadUserArchetypes(); } - private File getIndicesDir() { + @NotNull + private Path getIndicesDir() { return myTestIndicesDir == null ? MavenUtil.getPluginSystemDir("Indices") : myTestIndicesDir; } + @Override public void dispose() { doShutdown(); if (ApplicationManager.getApplication().isUnitTestMode()) { - FileUtil.delete(getIndicesDir()); + PathKt.delete(getIndicesDir()); } } @@ -226,6 +230,7 @@ public class MavenIndicesManager implements Disposable { } if (toSchedule.isEmpty()) return; myUpdatingQueue.run(new Task.Backgroundable(projectOrNull, IndicesBundle.message("maven.indices.updating"), true) { + @Override public void run(@NotNull ProgressIndicator indicator) { try { doUpdateIndices(projectOrNull, toSchedule, fullUpdate, new MavenProgressIndicator(indicator)); @@ -257,7 +262,7 @@ public class MavenIndicesManager implements Disposable { } try { - getIndicesObject().updateOrRepair(each, fullUpdate, fullUpdate ? getMavenSettings(projectOrNull, indicator) : null, indicator); + MavenIndices.updateOrRepair(each, fullUpdate, fullUpdate ? getMavenSettings(projectOrNull, indicator) : null, indicator); if (projectOrNull != null) { MavenRehighlighter.rehighlight(projectOrNull); } @@ -332,15 +337,15 @@ public class MavenIndicesManager implements Disposable { private void loadUserArchetypes() { try { - File file = getUserArchetypesFile(); - if (!file.exists()) return; - - Element root = JDOMUtil.load(file); + Path file = getUserArchetypesFile(); + if (!PathKt.exists(file)) { + return; + } // Store artifact to set to remove duplicate created by old IDEA (https://youtrack.jetbrains.com/issue/IDEA-72105) Collection result = new LinkedHashSet<>(); - List children = root.getChildren(ELEMENT_ARCHETYPE); + List children = JdomKt.loadElement(file).getChildren(ELEMENT_ARCHETYPE); for (int i = children.size() - 1; i >= 0; i--) { Element each = children.get(i); @@ -385,16 +390,15 @@ public class MavenIndicesManager implements Disposable { root.addContent(childElement); } try { - File file = getUserArchetypesFile(); - file.getParentFile().mkdirs(); - JDOMUtil.writeDocument(new Document(root), file, "\n"); + JdomKt.write(root, getUserArchetypesFile()); } catch (IOException e) { MavenLog.LOG.warn(e); } } - private File getUserArchetypesFile() { - return new File(getIndicesDir(), "UserArchetypes.xml"); + @NotNull + private Path getUserArchetypesFile() { + return getIndicesDir().resolve("UserArchetypes.xml"); } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManager.java index 729ad07c61dc..602ae4f36485 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -70,19 +70,13 @@ public class MavenProjectIndicesManager extends MavenSimpleProjectComponent { } getMavenProjectManager().addManagerListener(new MavenProjectsManager.Listener() { + @Override public void activated() { scheduleUpdateIndicesList(); } - - public void projectsScheduled() { - } - - @Override - public void importAndResolveScheduled() { - } }); - getMavenProjectManager().addProjectsTreeListener(new MavenProjectsTree.ListenerAdapter() { + getMavenProjectManager().addProjectsTreeListener(new MavenProjectsTree.Listener() { @Override public void projectsUpdated(List> updated, List deleted) { scheduleUpdateIndicesList(); @@ -102,6 +96,7 @@ public class MavenProjectIndicesManager extends MavenSimpleProjectComponent { public void scheduleUpdateIndicesList(@Nullable final Consumer> consumer) { myUpdateQueue.queue(new Update(MavenProjectIndicesManager.this) { + @Override public void run() { Set> remoteRepositoriesIdsAndUrls; File localRepository; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsNavigator.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsNavigator.java index 33c38e9975c4..c669e4207d65 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsNavigator.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/MavenProjectsNavigator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -379,20 +379,12 @@ public class MavenProjectsNavigator extends MavenSimpleProjectComponent implemen scheduleStructureRequest(() -> myStructure.update()); } - private class MyProjectsListener extends MavenProjectsTree.ListenerAdapter implements MavenProjectsManager.Listener { + private class MyProjectsListener implements MavenProjectsManager.Listener, MavenProjectsTree.Listener { @Override public void activated() { scheduleStructureUpdate(); } - @Override - public void projectsScheduled() { - } - - @Override - public void importAndResolveScheduled() { - } - @Override public void projectsIgnoredStateChanged(final List ignored, final List unignored, boolean fromImport) { scheduleStructureRequest(() -> myStructure.updateIgnored(ContainerUtil.concat(ignored, unignored))); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java index 60d0daf189ef..3f4190baa4f3 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -40,7 +40,6 @@ import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.*; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VfsUtilCore; @@ -51,6 +50,7 @@ import com.intellij.util.EventDispatcher; import com.intellij.util.NullableConsumer; import com.intellij.util.ObjectUtils; import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.io.PathKt; import com.intellij.util.ui.update.Update; import gnu.trove.THashMap; import gnu.trove.THashSet; @@ -69,6 +69,7 @@ import org.jetbrains.idea.maven.utils.*; import javax.swing.event.HyperlinkEvent; import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; @@ -306,9 +307,9 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent private void initProjectsTree(boolean tryToLoadExisting) { if (tryToLoadExisting) { - File file = getProjectsTreeFile(); + Path file = getProjectsTreeFile(); try { - if (file.exists()) { + if (PathKt.exists(file)) { myProjectsTree = MavenProjectsTree.read(myProject, file); } } @@ -353,11 +354,12 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent } } - private File getProjectsTreeFile() { - return new File(getProjectsTreesDir(), myProject.getLocationHash() + "/tree.dat"); + private Path getProjectsTreeFile() { + return getProjectsTreesDir().resolve(myProject.getLocationHash()).resolve("tree.dat"); } - private static File getProjectsTreesDir() { + @NotNull + private static Path getProjectsTreesDir() { return MavenUtil.getPluginSystemDir("Projects"); } @@ -385,6 +387,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent private void listenForSettingsChanges() { getImportingSettings().addListener(new MavenImportingSettings.Listener() { + @Override public void autoImportChanged() { if (myProject.isDisposed()) return; @@ -393,10 +396,12 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent } } + @Override public void createModuleGroupsChanged() { scheduleImportSettings(true); } + @Override public void createModuleForAggregatorsChanged() { scheduleImportSettings(); } @@ -404,7 +409,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent } private void listenForProjectsTreeChanges() { - myProjectsTree.addListener(new MavenProjectsTree.ListenerAdapter() { + myProjectsTree.addListener(new MavenProjectsTree.Listener() { @Override public void projectsIgnoredStateChanged(List ignored, List unignored, boolean fromImport) { if (!fromImport) scheduleImport(); @@ -528,7 +533,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent mySaveQueue.flush(); if (isUnitTestMode()) { - FileUtil.delete(getProjectsTreesDir()); + PathKt.delete(getProjectsTreesDir()); } } finally { initLock.unlock(); @@ -701,10 +706,12 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent @Nullable public MavenProject findProject(@NotNull Module module) { VirtualFile f = findPomFile(module, new MavenModelsProvider() { + @Override public Module[] getModules() { throw new UnsupportedOperationException(); } + @Override public VirtualFile[] getContentRoots(Module module) { return ModuleRootManager.getInstance(module).getContentRoots(); } @@ -804,9 +811,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent public Set getRemoteRepositories() { Set result = new THashSet<>(); for (MavenProject each : getProjects()) { - for (MavenRemoteRepository eachRepository : each.getRemoteRepositories()) { - result.add(eachRepository); - } + result.addAll(each.getRemoteRepositories()); } return result; } @@ -989,6 +994,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent private Promise> scheduleImport() { final AsyncPromise> result = new AsyncPromise<>(); runWhenFullyOpen(() -> myImportingQueue.queue(new Update(MavenProjectsManager.this) { + @Override public void run() { result.setResult(importProjects()); } @@ -1178,6 +1184,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent } else { MavenUtil.runInBackground(myProject, ProjectBundle.message("maven.project.importing"), false, new MavenTask() { + @Override public void run(MavenProgressIndicator indicator) throws MavenProcessCanceledException { r.run(); } @@ -1257,10 +1264,13 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent } public interface Listener { - void activated(); + default void activated() { + } - void projectsScheduled(); + default void projectsScheduled() { + } - void importAndResolveScheduled(); + default void importAndResolveScheduled() { + } } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java index 5dacbbd09732..eff041bf6562 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -32,6 +32,7 @@ import com.intellij.util.containers.ArrayListSet; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; import com.intellij.util.containers.Stack; +import com.intellij.util.io.PathKt; import gnu.trove.THashSet; import gnu.trove.TObjectHashingStrategy; import org.jdom.Element; @@ -48,6 +49,7 @@ import org.jetbrains.idea.maven.server.NativeMavenProjectHolder; import org.jetbrains.idea.maven.utils.*; import java.io.*; +import java.nio.file.Path; import java.util.*; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -88,6 +90,7 @@ public class MavenProjectsTree { private final Project myProject; private final MavenProjectReaderProjectLocator myProjectLocator = new MavenProjectReaderProjectLocator() { + @Override public VirtualFile findProjectFile(MavenId coordinates) { MavenProject project = findProject(coordinates); return project == null ? null : project.getFile(); @@ -99,11 +102,10 @@ public class MavenProjectsTree { } @Nullable - public static MavenProjectsTree read(Project project, File file) throws IOException { + public static MavenProjectsTree read(Project project, Path file) throws IOException { MavenProjectsTree result = new MavenProjectsTree(project); - DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(file))); - try { + try (DataInputStream in = new DataInputStream(new BufferedInputStream(PathKt.inputStream(file)))) { try { if (!STORAGE_VERSION.equals(in.readUTF())) return null; result.myManagedFilesPaths = readCollection(in, new LinkedHashSet<>()); @@ -115,16 +117,13 @@ public class MavenProjectsTree { } catch (IOException e) { in.close(); - file.delete(); + PathKt.delete(file); throw e; } catch (Throwable e) { throw new IOException(e); } } - finally { - in.close(); - } return result; } @@ -165,13 +164,11 @@ public class MavenProjectsTree { return result; } - public void save(File file) throws IOException { + public void save(@NotNull Path file) throws IOException { synchronized (myStateLock) { readLock(); try { - file.getParentFile().mkdirs(); - DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file))); - try { + try (DataOutputStream out = new DataOutputStream(new BufferedOutputStream(PathKt.outputStream(file)))) { out.writeUTF(STORAGE_VERSION); writeCollection(out, myManagedFilesPaths); writeCollection(out, myIgnoredFilesPaths); @@ -180,9 +177,6 @@ public class MavenProjectsTree { writeCollection(out, myExplicitProfiles.getDisabledProfiles()); writeProjectsRecursively(out, myRootProjects); } - finally { - out.close(); - } } finally { readUnlock(); @@ -373,8 +367,8 @@ public class MavenProjectsTree { } } - private void updateExplicitProfiles(Collection explicitProfiles, Collection temporarilyRemovedExplicitProfiles, - Collection available) { + private static void updateExplicitProfiles(Collection explicitProfiles, Collection temporarilyRemovedExplicitProfiles, + Collection available) { Collection removedProfiles = new THashSet<>(explicitProfiles); removedProfiles.removeAll(available); temporarilyRemovedExplicitProfiles.addAll(removedProfiles); @@ -1357,6 +1351,7 @@ public class MavenProjectsTree { console, process, new EmbedderTask() { + @Override public void run(MavenEmbedderWrapper embedder) throws MavenProcessCanceledException { process.checkCanceled(); process.setText(ProjectBundle.message("maven.updating.folders.pom", mavenProject.getDisplayName())); @@ -1656,48 +1651,30 @@ public class MavenProjectsTree { } public interface Listener extends EventListener { - void profilesChanged(); - - void projectsIgnoredStateChanged(List ignored, List unignored, boolean fromImport); - - void projectsUpdated(List> updated, List deleted); - - void projectResolved(Pair projectWithChanges, - @Nullable NativeMavenProjectHolder nativeMavenProject); - - void pluginsResolved(MavenProject project); - - void foldersResolved(Pair projectWithChanges); - - void artifactsDownloaded(MavenProject project); - } - - public static class ListenerAdapter implements Listener { - public void profilesChanged() { + default void profilesChanged() { } - public void projectsIgnoredStateChanged(List ignored, List unignored, boolean fromImport) { + default void projectsIgnoredStateChanged(List ignored, List unignored, boolean fromImport) { } - public void projectsUpdated(List> updated, List deleted) { + default void projectsUpdated(List> updated, List deleted) { } - public void projectResolved(Pair projectWithChanges, - @Nullable NativeMavenProjectHolder nativeMavenProject) { + default void projectResolved(Pair projectWithChanges, + @Nullable NativeMavenProjectHolder nativeMavenProject) { } - public void pluginsResolved(MavenProject project) { + default void pluginsResolved(MavenProject project) { } - public void foldersResolved(Pair projectWithChanges) { + default void foldersResolved(Pair projectWithChanges) { } - public void artifactsDownloaded(MavenProject project) { + default void artifactsDownloaded(MavenProject project) { } } private static class MavenCoordinateHashCodeStrategy implements TObjectHashingStrategy { - @Override public int computeHashCode(MavenCoordinate object) { String artifactId = object.getArtifactId(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenShortcutsManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenShortcutsManager.java index c65ba7aaabb9..4c07fa1a6e51 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenShortcutsManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/tasks/MavenShortcutsManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 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,7 +25,6 @@ import com.intellij.openapi.project.DumbAwareRunnable; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; -import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.update.MergingUpdateQueue; import com.intellij.util.ui.update.Update; @@ -188,7 +187,7 @@ public class MavenShortcutsManager extends MavenSimpleProjectComponent implement } } - private class MyProjectsTreeListener extends MavenProjectsTree.ListenerAdapter implements MavenProjectsManager.Listener { + private class MyProjectsTreeListener implements MavenProjectsManager.Listener, MavenProjectsTree.Listener { private final Map mySheduledProjects = new THashMap<>(); private final MergingUpdateQueue myUpdateQueue = new MavenMergingUpdateQueue(getComponentName() + ": Keymap Update", 500, true, myProject); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEditorTabTitleUpdater.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEditorTabTitleUpdater.java index 9fc34de11a22..c460cae86032 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEditorTabTitleUpdater.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEditorTabTitleUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -35,7 +35,7 @@ public class MavenEditorTabTitleUpdater extends MavenSimpleProjectComponent { public void initComponent() { if (!isNormalProject()) return; - MavenProjectsManager.getInstance(myProject).addProjectsTreeListener(new MavenProjectsTree.ListenerAdapter() { + MavenProjectsManager.getInstance(myProject).addProjectsTreeListener(new MavenProjectsTree.Listener() { @Override public void projectsUpdated(List> updated, List deleted) { updateTabName(MavenUtil.collectFirsts(updated)); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenRehighlighter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenRehighlighter.java index b071905a5736..8f7681b62945 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenRehighlighter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenRehighlighter.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -69,7 +69,7 @@ public class MavenRehighlighter { } }); - mavenProjectManager.addProjectsTreeListener(new MavenProjectsTree.ListenerAdapter() { + mavenProjectManager.addProjectsTreeListener(new MavenProjectsTree.Listener() { @Override public void projectsUpdated(List> updated, List deleted) { for (Pair each : updated) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java index 656913d24787..b31097ab33d5 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -80,6 +80,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.nio.file.Paths; import java.util.*; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; @@ -220,9 +221,10 @@ public class MavenUtil { Notifications.Bus.notify(new Notification(MAVEN_NOTIFICATION_GROUP, title, e.getMessage(), NotificationType.ERROR), project); } - public static File getPluginSystemDir(String folder) { + @NotNull + public static java.nio.file.Path getPluginSystemDir(@NotNull String folder) { // PathManager.getSystemPath() may return relative path - return new File(PathManager.getSystemPath(), "Maven" + "/" + folder).getAbsoluteFile(); + return Paths.get(PathManager.getSystemPath()).toAbsolutePath().resolve("Maven").resolve(folder); } public static File getBaseDir(@NotNull VirtualFile file) { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomWithIndicesTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomWithIndicesTestCase.java index 0bc6355d34d5..09ac71f8c070 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomWithIndicesTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomWithIndicesTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -28,7 +28,7 @@ public abstract class MavenDomWithIndicesTestCase extends MavenDomTestCase { } protected MavenIndicesTestFixture createIndicesFixture() { - return new MavenIndicesTestFixture(myDir, myProject); + return new MavenIndicesTestFixture(myDir.toPath(), myProject); } @Override diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenExtensionCompletionAndResolutionTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenExtensionCompletionAndResolutionTest.java index 59944dd44371..96679839f600 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenExtensionCompletionAndResolutionTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenExtensionCompletionAndResolutionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -28,7 +28,7 @@ import java.util.List; public class MavenExtensionCompletionAndResolutionTest extends MavenDomWithIndicesTestCase { @Override protected MavenIndicesTestFixture createIndicesFixture() { - return new MavenIndicesTestFixture(myDir, myProject, "plugins"); + return new MavenIndicesTestFixture(myDir.toPath(), myProject, "plugins"); } @Override diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPluginCompletionAndResolutionTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPluginCompletionAndResolutionTest.java index a18f9c4a7d8e..de68e2d36d45 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPluginCompletionAndResolutionTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPluginCompletionAndResolutionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -17,7 +17,6 @@ package org.jetbrains.idea.maven.dom; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.psi.xml.XmlTag; @@ -29,7 +28,7 @@ import java.util.List; public class MavenPluginCompletionAndResolutionTest extends MavenDomWithIndicesTestCase { @Override protected MavenIndicesTestFixture createIndicesFixture() { - return new MavenIndicesTestFixture(myDir, myProject, "plugins"); + return new MavenIndicesTestFixture(myDir.toPath(), myProject, "plugins"); } @Override diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesManagerTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesManagerTest.java index a9f32184ee0f..0ab997624182 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesManagerTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesManagerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -33,15 +33,19 @@ public class MavenIndicesManagerTest extends MavenIndicesTestCase { @Override protected void setUp() throws Exception { super.setUp(); - myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject); + myIndicesFixture = new MavenIndicesTestFixture(myDir.toPath(), myProject); myIndicesFixture.setUp(); MavenServerManager.getInstance().setUseMaven2(true); } @Override protected void tearDown() throws Exception { - myIndicesFixture.tearDown(); - super.tearDown(); + try { + myIndicesFixture.tearDown(); + } + finally { + super.tearDown(); + } } public void testEnsuringLocalRepositoryIndex() throws Exception { @@ -51,17 +55,17 @@ public class MavenIndicesManagerTest extends MavenIndicesTestCase { File dir4 = myIndicesFixture.getRepositoryHelper().getTestData("dir/bar"); List indices1 = myIndicesFixture.getIndicesManager().ensureIndicesExist(myProject, dir1, - Collections.>emptyList()); + Collections.emptyList()); assertEquals(1, indices1.size()); assertTrue(myIndicesFixture.getIndicesManager().getIndices().contains(indices1.get(0))); assertEquals(indices1, myIndicesFixture.getIndicesManager().ensureIndicesExist(myProject, dir2, - Collections.>emptyList())); + Collections.emptyList())); assertEquals(indices1, myIndicesFixture.getIndicesManager().ensureIndicesExist(myProject, dir3, - Collections.>emptyList())); + Collections.emptyList())); List indices2 = myIndicesFixture.getIndicesManager().ensureIndicesExist(myProject, dir4, - Collections.>emptyList()); + Collections.emptyList()); assertFalse(indices1.get(0).equals(indices2.get(0))); } @@ -87,7 +91,7 @@ public class MavenIndicesManagerTest extends MavenIndicesTestCase { public void testIndexedArchetypes() throws Exception { myIndicesFixture.getRepositoryHelper().addTestData("archetypes"); myIndicesFixture.getIndicesManager().ensureIndicesExist(myProject, myIndicesFixture.getRepositoryHelper().getTestData("archetypes"), - Collections.>emptyList()); + Collections.emptyList()); assertArchetypeExists("org.apache.maven.archetypes:maven-archetype-foobar:1.0"); } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java index c7aa0c542300..bfe9a2ac6f91 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -23,9 +23,10 @@ import org.jetbrains.idea.maven.server.MavenServerManager; import java.io.File; import java.io.IOException; +import java.nio.file.Path; public class MavenIndicesTestFixture { - private File myDir; + private Path myDir; private Project myProject; private String myLocalRepoDir; private String[] myExtraRepoDirs; @@ -33,11 +34,15 @@ public class MavenIndicesTestFixture { private MavenCustomRepositoryHelper myRepositoryHelper; private MavenProjectIndicesManager myIndicesManager; - public MavenIndicesTestFixture(File dir, Project project) { + public MavenIndicesTestFixture(Path dir, Project project) { this(dir, project, "local1", "local2"); } - public MavenIndicesTestFixture(File dir, Project project, String localRepoDir, String... extraRepoDirs) { + public MavenIndicesTestFixture(File dir, Project project) { + this(dir.toPath(), project); + } + + public MavenIndicesTestFixture(Path dir, Project project, String localRepoDir, String... extraRepoDirs) { myDir = dir; myProject = project; myLocalRepoDir = localRepoDir; @@ -45,7 +50,7 @@ public class MavenIndicesTestFixture { } public void setUp() throws Exception { - myRepositoryHelper = new MavenCustomRepositoryHelper(myDir, ArrayUtil.append(myExtraRepoDirs, myLocalRepoDir)); + myRepositoryHelper = new MavenCustomRepositoryHelper(myDir.toFile(), ArrayUtil.append(myExtraRepoDirs, myLocalRepoDir)); for (String each : myExtraRepoDirs) { addToRepository(each); @@ -54,7 +59,7 @@ public class MavenIndicesTestFixture { MavenProjectsManager.getInstance(myProject).getGeneralSettings().setLocalRepository( myRepositoryHelper.getTestDataPath(myLocalRepoDir)); - getIndicesManager().setTestIndexDir(new File(myDir, "MavenIndices")); + getIndicesManager().setTestIndexDir(myDir.resolve("MavenIndices")); myIndicesManager = MavenProjectIndicesManager.getInstance(myProject); myIndicesManager.doInit(); } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManagerTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManagerTest.java index 67fb844f7a3c..42cd87f9b7f1 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManagerTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenProjectIndicesManagerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -23,14 +23,18 @@ public class MavenProjectIndicesManagerTest extends MavenIndicesTestCase { @Override protected void setUp() throws Exception { super.setUp(); - myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject); + myIndicesFixture = new MavenIndicesTestFixture(myDir.toPath(), myProject); myIndicesFixture.setUp(); } @Override protected void tearDown() throws Exception { - myIndicesFixture.tearDown(); - super.tearDown(); + try { + myIndicesFixture.tearDown(); + } + finally { + super.tearDown(); + } } public void testAutomaticallyAddAndUpdateLocalRepository() throws Exception { @@ -78,7 +82,7 @@ public class MavenProjectIndicesManagerTest extends MavenIndicesTestCase { public void testUpdatingIndexUsingMirrors() throws Exception { myIndicesFixture.tearDown(); - myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject, "local2", "remote_mirror"); + myIndicesFixture = new MavenIndicesTestFixture(myDir.toPath(), myProject, "local2", "remote_mirror"); myIndicesFixture.setUp(); updateSettingsXmlFully("" + @@ -127,7 +131,7 @@ public class MavenProjectIndicesManagerTest extends MavenIndicesTestCase { assertUnorderedElementsAreEqual(myIndicesFixture.getProjectIndicesManager().getGroupIds(), "test", "jmock", "junit"); myIndicesFixture.tearDown(); - myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject, "local2", "remote_mirror"); + myIndicesFixture = new MavenIndicesTestFixture(myDir.toPath(), myProject, "local2", "remote_mirror"); myIndicesFixture.setUp(); updateSettingsXmlFully("" + @@ -147,7 +151,7 @@ public class MavenProjectIndicesManagerTest extends MavenIndicesTestCase { public void testCheckingLocalRepositoryForAbsentIndices() throws Exception { myIndicesFixture.tearDown(); - myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject, "local2"); + myIndicesFixture = new MavenIndicesTestFixture(myDir.toPath(), myProject, "local2"); myIndicesFixture.setUp(); myIndicesFixture.addToRepository("local1"); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenSearcherTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenSearcherTest.java index 48b8b6bfa3cb..032a7000eabd 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenSearcherTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenSearcherTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -26,14 +26,18 @@ public class MavenSearcherTest extends MavenIndicesTestCase { @Override protected void setUp() throws Exception { super.setUp(); - myIndicesFixture = new MavenIndicesTestFixture(myDir, myProject); + myIndicesFixture = new MavenIndicesTestFixture(myDir.toPath(), myProject); myIndicesFixture.setUp(); } @Override protected void tearDown() throws Exception { - myIndicesFixture.tearDown(); - super.tearDown(); + try { + myIndicesFixture.tearDown(); + } + finally { + super.tearDown(); + } } public void testClassSearch() throws Exception { @@ -117,12 +121,12 @@ public class MavenSearcherTest extends MavenIndicesTestCase { private List getClassSearchResults(String pattern) { List actualArtifacts = new ArrayList<>(); for (MavenClassSearchResult eachResult : new MavenClassSearcher().search(myProject, pattern, 100)) { - String s = eachResult.className + "(" + eachResult.packageName + ")"; + StringBuilder s = new StringBuilder(eachResult.className + "(" + eachResult.packageName + ")"); for (MavenArtifactInfo eachVersion : eachResult.versions) { - if (s.length() > 0) s += " "; - s += eachVersion.getGroupId() + ":" + eachVersion.getArtifactId()+ ":" + eachVersion.getVersion(); + if (s.length() > 0) s.append(" "); + s.append(eachVersion.getGroupId()).append(":").append(eachVersion.getArtifactId()).append(":").append(eachVersion.getVersion()); } - actualArtifacts.add(s); + actualArtifacts.add(s.toString()); } return actualArtifacts; } @@ -130,12 +134,12 @@ public class MavenSearcherTest extends MavenIndicesTestCase { private void assertArtifactSearchResults(String pattern, String... expected) { List actual = new ArrayList<>(); for (MavenArtifactSearchResult eachResult : new MavenArtifactSearcher(true).search(myProject, pattern, 100)) { - String s = ""; + StringBuilder s = new StringBuilder(); for (MavenArtifactInfo eachVersion : eachResult.versions) { - if (s.length() > 0) s += " "; - s += eachVersion.getGroupId() + ":" + eachVersion.getArtifactId()+ ":" + eachVersion.getVersion(); + if (s.length() > 0) s.append(" "); + s.append(eachVersion.getGroupId()).append(":").append(eachVersion.getArtifactId()).append(":").append(eachVersion.getVersion()); } - actual.add(s); + actual.add(s.toString()); } assertOrderedElementsAreEqual(actual, expected); } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java index 850f6114689e..5c43b33fdb9e 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -864,7 +864,7 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { public void testDoNotScheduleResolveOfInvalidProjectsDeleted() throws Exception { final boolean[] called = new boolean[1]; - myProjectsManager.addProjectsTreeListener(new MavenProjectsTree.ListenerAdapter() { + myProjectsManager.addProjectsTreeListener(new MavenProjectsTree.Listener() { @Override public void projectResolved(Pair projectWithChanges, NativeMavenProjectHolder nativeMavenProject) { @@ -1086,14 +1086,14 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { final StringBuilder log = new StringBuilder(); myProjectsManager.performScheduledImportInTests(); - myProjectsManager.addProjectsTreeListener(new MavenProjectsTree.ListenerAdapter() { + myProjectsManager.addProjectsTreeListener(new MavenProjectsTree.Listener() { @Override public void projectsUpdated(List> updated, List deleted) { for (Pair each : updated) { - log.append("updated: " + each.first.getDisplayName() + " "); + log.append("updated: ").append(each.first.getDisplayName()).append(" "); } for (MavenProject each : deleted) { - log.append("deleted: " + each.getDisplayName() + " "); + log.append("deleted: ").append(each.getDisplayName()).append(" "); } } }); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeIgnoresTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeIgnoresTest.java index 09d1dace13d3..b75bf2b3bfba 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeIgnoresTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeIgnoresTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -17,7 +17,6 @@ package org.jetbrains.idea.maven.project.importing; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.util.Function; import org.jetbrains.idea.maven.project.MavenProject; import org.jetbrains.idea.maven.project.MavenProjectsTree; @@ -61,7 +60,7 @@ public class MavenProjectsTreeIgnoresTest extends MavenProjectsTreeTestCase { assertEquals("ignored: m1 ", myLog); myLog = ""; - myTree.setIgnoredFilesPatterns(Collections.emptyList()); + myTree.setIgnoredFilesPatterns(Collections.emptyList()); assertEquals("unignored: m1 ", myLog); myLog = ""; @@ -78,7 +77,7 @@ public class MavenProjectsTreeIgnoresTest extends MavenProjectsTreeTestCase { assertEquals("", myLog); } - private class MyLoggingListener extends MavenProjectsTree.ListenerAdapter { + private class MyLoggingListener implements MavenProjectsTree.Listener { @Override public void projectsIgnoredStateChanged(List ignored, List unignored, boolean fromImport) { if (!ignored.isEmpty()) myLog += "ignored: " + format(ignored) + " "; diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeReadingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeReadingTest.java index 2221aa191ed5..5cb4f020e02b 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeReadingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsTreeReadingTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -21,7 +21,6 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.PlatformTestUtil; -import com.intellij.util.Function; import org.jetbrains.idea.maven.model.MavenExplicitProfiles; import org.jetbrains.idea.maven.project.MavenEmbeddersManager; import org.jetbrains.idea.maven.project.MavenProject; @@ -31,7 +30,7 @@ import org.jetbrains.idea.maven.server.MavenServerManager; import org.jetbrains.idea.maven.server.NativeMavenProjectHolder; import org.jetbrains.idea.maven.utils.MavenUtil; -import java.io.File; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -624,7 +623,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { MavenEmbeddersManager embeddersManager = new MavenEmbeddersManager(myProject); final List nativeProject = new ArrayList<>(); try { - myTree.addListener(new MavenProjectsTree.ListenerAdapter() { + myTree.addListener(new MavenProjectsTree.Listener() { @Override public void projectResolved(Pair projectWithChanges, NativeMavenProjectHolder nativeMavenProject) { @@ -674,7 +673,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { MavenEmbeddersManager embeddersManager = new MavenEmbeddersManager(myProject); try { final NativeMavenProjectHolder[] nativeProject = new NativeMavenProjectHolder[1]; - myTree.addListener(new MavenProjectsTree.ListenerAdapter() { + myTree.addListener(new MavenProjectsTree.Listener() { @Override public void projectResolved(Pair projectWithChanges, NativeMavenProjectHolder nativeMavenProject) { @@ -1867,7 +1866,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { embeddersManager.releaseInTests(); } - File f = new File(myDir, "tree.dat"); + Path f = myDir.toPath().resolve("tree.dat"); myTree.save(f); MavenProjectsTree read = MavenProjectsTree.read(myProject, f); @@ -2239,7 +2238,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase { PlatformTestUtil.assertPathsEqual(pathFromBasedir("my-target/test-classes"), project.getTestOutputDirectory()); } - private static class MyLoggingListener extends MavenProjectsTree.ListenerAdapter { + private static class MyLoggingListener implements MavenProjectsTree.Listener { String log = ""; @Override