From 6a3b7204347fba3a8965515999680df91b3e24d8 Mon Sep 17 00:00:00 2001 From: Ivan Bessonov Date: Thu, 26 Oct 2017 15:09:47 +0300 Subject: [PATCH] maven cleanup - fixed lambda-unfriendly "perform" methods in RemoteObjectWrapper, anonymous parameters of these methods replaced with lambdas --- .../maven/server/MavenEmbedderWrapper.java | 100 +++++------------- .../maven/server/MavenIndexerWrapper.java | 73 ++++--------- .../idea/maven/server/MavenServerManager.java | 21 +--- .../maven/server/RemoteObjectWrapper.java | 53 ++-------- 4 files changed, 58 insertions(+), 189 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java index c8e1e4b52cc2..1b8ea73b73e2 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenEmbedderWrapper.java @@ -52,12 +52,9 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper() { - @Override - public Object execute() throws RemoteException { - doCustomize(); - return null; - } + perform(() -> { + doCustomize(); + return null; }); } @@ -68,12 +65,9 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper() { - @Override - public Object execute() throws RemoteException { - doCustomize(); - return null; - } + perform(() -> { + doCustomize(); + return null; }); } @@ -81,22 +75,16 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper() { - @Override - public Object execute() throws RemoteException { - doCustomize(); - return null; - } + perform(() -> { + doCustomize(); + return null; }); } public void customizeForGetVersions() { - perform(new Retriable() { - @Override - public Object execute() throws RemoteException { - doCustomizeComponents(); - return null; - } + perform(() -> { + doCustomizeComponents(); + return null; }); } @@ -125,12 +113,9 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper activeProfiles, @NotNull final Collection inactiveProfiles) throws MavenProcessCanceledException { - return perform(new RetriableCancelable>() { - @Override - public Collection execute() throws RemoteException, MavenServerProcessCanceledException { - final List ioFiles = ContainerUtil.map(files, file -> new File(file.getPath())); - return getOrCreateWrappee().resolveProject(ioFiles, activeProfiles, inactiveProfiles); - } + return performCancelable(() -> { + final List ioFiles = ContainerUtil.map(files, file -> new File(file.getPath())); + return getOrCreateWrappee().resolveProject(ioFiles, activeProfiles, inactiveProfiles); }); } @@ -138,24 +123,14 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper activeProfiles, @NotNull final Collection inactiveProfiles) throws MavenProcessCanceledException { - return perform(new RetriableCancelable() { - @Override - public String execute() throws RemoteException, MavenServerProcessCanceledException { - return getOrCreateWrappee() - .evaluateEffectivePom(new File(file.getPath()), new ArrayList<>(activeProfiles), new ArrayList<>(inactiveProfiles)); - } - }); + return performCancelable(() -> getOrCreateWrappee() + .evaluateEffectivePom(new File(file.getPath()), new ArrayList<>(activeProfiles), new ArrayList<>(inactiveProfiles))); } @NotNull public MavenArtifact resolve(@NotNull final MavenArtifactInfo info, @NotNull final List remoteRepositories) throws MavenProcessCanceledException { - return perform(new RetriableCancelable() { - @Override - public MavenArtifact execute() throws RemoteException, MavenServerProcessCanceledException { - return getOrCreateWrappee().resolve(info, remoteRepositories); - } - }); + return performCancelable(() -> getOrCreateWrappee().resolve(info, remoteRepositories)); } @NotNull @@ -163,12 +138,7 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper artifacts, @NotNull final List remoteRepositories) throws MavenProcessCanceledException { - return perform(new RetriableCancelable>() { - @Override - public List execute() throws RemoteException, MavenServerProcessCanceledException { - return getOrCreateWrappee().resolveTransitively(artifacts, remoteRepositories); - } - }); + return performCancelable(() -> getOrCreateWrappee().resolveTransitively(artifacts, remoteRepositories)); } @NotNull @@ -176,12 +146,7 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper remoteRepositories) throws MavenProcessCanceledException { - return perform(new RetriableCancelable>() { - @Override - public List execute() throws RemoteException, MavenServerProcessCanceledException { - return getOrCreateWrappee().retrieveAvailableVersions(groupId, artifactId, remoteRepositories); - } - }); + return performCancelable(() -> getOrCreateWrappee().retrieveAvailableVersions(groupId, artifactId, remoteRepositories)); } public Collection resolvePlugin(@NotNull final MavenPlugin plugin, @@ -211,12 +176,7 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper() { - @Override - public MavenModel execute() throws RemoteException, MavenServerProcessCanceledException { - return getOrCreateWrappee().readModel(file); - } - }); + return performCancelable(() -> getOrCreateWrappee().readModel(file)); } @NotNull @@ -224,13 +184,8 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper activeProfiles, @NotNull final Collection inactiveProfiles, @NotNull final List goals) throws MavenProcessCanceledException { - return perform(new RetriableCancelable() { - @Override - public MavenServerExecutionResult execute() throws RemoteException, MavenServerProcessCanceledException { - return getOrCreateWrappee() - .execute(new File(file.getPath()), activeProfiles, inactiveProfiles, goals, Collections.emptyList(), false, false); - } - }); + return performCancelable(() -> getOrCreateWrappee() + .execute(new File(file.getPath()), activeProfiles, inactiveProfiles, goals, Collections.emptyList(), false, false)); } @NotNull @@ -241,13 +196,8 @@ public abstract class MavenEmbedderWrapper extends RemoteObjectWrapper selectedProjects, final boolean alsoMake, final boolean alsoMakeDependents) throws MavenProcessCanceledException { - return perform(new RetriableCancelable() { - @Override - public MavenServerExecutionResult execute() throws RemoteException, MavenServerProcessCanceledException { - return getOrCreateWrappee() - .execute(new File(file.getPath()), activeProfiles, inactiveProfiles, goals, selectedProjects, alsoMake, alsoMakeDependents); - } - }); + return performCancelable(() -> getOrCreateWrappee() + .execute(new File(file.getPath()), activeProfiles, inactiveProfiles, goals, selectedProjects, alsoMake, alsoMakeDependents)); } public void reset() { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenIndexerWrapper.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenIndexerWrapper.java index 3a7c574ff68b..742dcf6f17ab 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenIndexerWrapper.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenIndexerWrapper.java @@ -58,12 +58,7 @@ public abstract class MavenIndexerWrapper extends RemoteObjectWrapper() { - @Override - public Object execute() throws RemoteException, MavenServerIndexerException { - return getRemoteId(localId); - } - }); + perform(() -> getRemoteId(localId)); return localId; } @@ -100,65 +95,44 @@ public abstract class MavenIndexerWrapper extends RemoteObjectWrapper() { - @Override - public Integer execute() throws RemoteException { - return getOrCreateWrappee().getIndexCount(); - } - }); + return perform(() -> getOrCreateWrappee().getIndexCount()); } public void updateIndex(final int localId, final MavenGeneralSettings settings, final MavenProgressIndicator indicator) throws MavenProcessCanceledException, MavenServerIndexerException { - perform(new IndexRetriableCancelable() { - @Override - public Object execute() throws RemoteException, MavenServerIndexerException, MavenServerProcessCanceledException { - MavenServerProgressIndicator indicatorWrapper = MavenServerManager.wrapAndExport(indicator); - try { - getOrCreateWrappee().updateIndex(getRemoteId(localId), MavenServerManager.convertSettings(settings), indicatorWrapper); - } - finally { - UnicastRemoteObject.unexportObject(indicatorWrapper, true); - } - return null; + performCancelable(() -> { + MavenServerProgressIndicator indicatorWrapper = MavenServerManager.wrapAndExport(indicator); + try { + getOrCreateWrappee().updateIndex(getRemoteId(localId), MavenServerManager.convertSettings(settings), indicatorWrapper); } + finally { + UnicastRemoteObject.unexportObject(indicatorWrapper, true); + } + return null; }); } public void processArtifacts(final int indexId, final MavenIndicesProcessor processor) throws MavenServerIndexerException { - perform(new IndexRetriable() { - @Override - public Object execute() throws RemoteException, MavenServerIndexerException { - MavenServerIndicesProcessor processorWrapper = MavenServerManager.wrapAndExport(processor); - try { - getOrCreateWrappee().processArtifacts(getRemoteId(indexId), processorWrapper); - } - finally { - UnicastRemoteObject.unexportObject(processorWrapper, true); - } - return null; + perform(() -> { + MavenServerIndicesProcessor processorWrapper = MavenServerManager.wrapAndExport(processor); + try { + getOrCreateWrappee().processArtifacts(getRemoteId(indexId), processorWrapper); } + finally { + UnicastRemoteObject.unexportObject(processorWrapper, true); + } + return null; }); } public MavenId addArtifact(final int localId, final File artifactFile) throws MavenServerIndexerException { - return perform(new IndexRetriable() { - @Override - public MavenId execute() throws RemoteException, MavenServerIndexerException { - return getOrCreateWrappee().addArtifact(getRemoteId(localId), artifactFile); - } - }); + return perform(() -> getOrCreateWrappee().addArtifact(getRemoteId(localId), artifactFile)); } public Set search(final int localId, final Query query, final int maxResult) throws MavenServerIndexerException { - return perform(new IndexRetriable>() { - @Override - public Set execute() throws RemoteException, MavenServerIndexerException { - return getOrCreateWrappee().search(getRemoteId(localId), query, maxResult); - } - }); + return perform(() -> getOrCreateWrappee().search(getRemoteId(localId), query, maxResult)); } private synchronized int getRemoteId(int localId) throws RemoteException, MavenServerIndexerException { @@ -172,12 +146,7 @@ public abstract class MavenIndexerWrapper extends RemoteObjectWrapper getArchetypes() { - return perform(new Retriable>() { - @Override - public Collection execute() throws RemoteException { - return getOrCreateWrappee().getArchetypes(); - } - }); + return perform(() -> getOrCreateWrappee().getArchetypes()); } @TestOnly diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java index 7a10a2d2de10..8247c2333c3a 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java @@ -526,33 +526,18 @@ public class MavenServerManager extends RemoteObjectWrapper impleme @NotNull public MavenModel interpolateAndAlignModel(final MavenModel model, final File basedir) { - return perform(new Retriable() { - @Override - public MavenModel execute() throws RemoteException { - return getOrCreateWrappee().interpolateAndAlignModel(model, basedir); - } - }); + return perform(() -> getOrCreateWrappee().interpolateAndAlignModel(model, basedir)); } public MavenModel assembleInheritance(final MavenModel model, final MavenModel parentModel) { - return perform(new Retriable() { - @Override - public MavenModel execute() throws RemoteException { - return getOrCreateWrappee().assembleInheritance(model, parentModel); - } - }); + return perform(() -> getOrCreateWrappee().assembleInheritance(model, parentModel)); } public ProfileApplicationResult applyProfiles(final MavenModel model, final File basedir, final MavenExplicitProfiles explicitProfiles, final Collection alwaysOnProfiles) { - return perform(new Retriable() { - @Override - public ProfileApplicationResult execute() throws RemoteException { - return getOrCreateWrappee().applyProfiles(model, basedir, explicitProfiles, alwaysOnProfiles); - } - }); + return perform(() -> getOrCreateWrappee().applyProfiles(model, basedir, explicitProfiles, alwaysOnProfiles)); } public void addDownloadListener(MavenServerDownloadListener listener) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/RemoteObjectWrapper.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/RemoteObjectWrapper.java index ce964ed790f2..402b41d7c40a 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/RemoteObjectWrapper.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/RemoteObjectWrapper.java @@ -32,7 +32,7 @@ public abstract class RemoteObjectWrapper { @Nullable protected synchronized T getWrappee() { - return myWrappee == null ? null : myWrappee; + return myWrappee; } @NotNull @@ -69,7 +69,7 @@ public abstract class RemoteObjectWrapper { myWrappee = null; } - protected T perform(Retriable r) { + protected R perform(Retriable r) throws E { RemoteException last = null; for (int i = 0; i < 2; i++) { try { @@ -82,7 +82,7 @@ public abstract class RemoteObjectWrapper { throw new RuntimeException("Cannot reconnect.", last); } - protected T perform(RetriableCancelable r) throws MavenProcessCanceledException { + protected R performCancelable(RetriableCancelable r) throws MavenProcessCanceledException, E { RemoteException last = null; for (int i = 0; i < 2; i++) { try { @@ -98,48 +98,13 @@ public abstract class RemoteObjectWrapper { throw new RuntimeException("Cannot reconnect.", last); } - protected T perform(IndexRetriable r) throws MavenServerIndexerException { - RemoteException last = null; - for (int i = 0; i < 2; i++) { - try { - return r.execute(); - } - catch (RemoteException e) { - handleRemoteError(last = e); - } - } - throw new RuntimeException("Cannot reconnect.", last); + @FunctionalInterface + protected interface Retriable { + T execute() throws RemoteException, E; } - protected T perform(IndexRetriableCancelable r) throws MavenServerIndexerException, MavenProcessCanceledException { - RemoteException last = null; - for (int i = 0; i < 2; i++) { - try { - return r.execute(); - } - catch (RemoteException e) { - handleRemoteError(last = e); - } - catch (MavenServerProcessCanceledException e) { - throw new MavenProcessCanceledException(); - } - } - throw new RuntimeException("Cannot reconnect.", last); - } - - protected interface Retriable { - T execute() throws RemoteException; - } - - protected interface IndexRetriable { - T execute() throws RemoteException, MavenServerIndexerException; - } - - protected interface IndexRetriableCancelable { - T execute() throws RemoteException, MavenServerIndexerException, MavenServerProcessCanceledException; - } - - protected interface RetriableCancelable { - T execute() throws RemoteException, MavenServerProcessCanceledException; + @FunctionalInterface + protected interface RetriableCancelable { + T execute() throws RemoteException, MavenServerProcessCanceledException, E; } }