From 3bdefe1c30f531c7a646df9b9b14eec232f1fe1b Mon Sep 17 00:00:00 2001 From: George Fraser Date: Fri, 28 Dec 2018 18:16:42 -0800 Subject: Remove guava --- pom.xml | 6 ------ src/main/java/module-info.java | 1 - src/main/java/org/javacs/FileManagerWrapper.java | 15 ++++++++++----- src/main/java/org/javacs/JavaCompilerService.java | 6 ++++-- src/main/java/org/javacs/Parser.java | 15 +++------------ src/main/java/org/javacs/lsp/LSP.java | 8 +++++--- src/test/java/org/javacs/CompletionsTest.java | 7 +++---- src/test/java/org/javacs/SearchTest.java | 9 ++++++--- src/test/java/org/javacs/lsp/LspTest.java | 4 ++-- 9 files changed, 33 insertions(+), 38 deletions(-) diff --git a/pom.xml b/pom.xml index 3d111a4..a8bf74a 100644 --- a/pom.xml +++ b/pom.xml @@ -21,12 +21,6 @@ gson 2.8.5 - - - com.google.guava - guava - 25.1-jre - junit diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 4c714c6..955c53d 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,5 +1,4 @@ module javacs { - requires com.google.common; requires jdk.compiler; requires java.logging; requires java.xml; diff --git a/src/main/java/org/javacs/FileManagerWrapper.java b/src/main/java/org/javacs/FileManagerWrapper.java index 2b6a58a..8b765c0 100644 --- a/src/main/java/org/javacs/FileManagerWrapper.java +++ b/src/main/java/org/javacs/FileManagerWrapper.java @@ -1,6 +1,5 @@ package org.javacs; -import com.google.common.collect.Iterables; import java.io.File; import java.io.IOException; import java.nio.file.Path; @@ -14,6 +13,8 @@ import java.util.Map; import java.util.Objects; import java.util.ServiceLoader; import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.StreamSupport; import javax.tools.FileObject; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; @@ -50,20 +51,24 @@ class FileManagerWrapper implements StandardJavaFileManager { else return file; } + private Iterable filter(Iterable in, Predicate f) { + return StreamSupport.stream(in.spliterator(), false).filter(f)::iterator; + } + private Iterable removeModuleInfo(Iterable in) { - return Iterables.filter(in, this::notModuleInfo); + return filter(in, this::notModuleInfo); } private Iterable removeModuleInfoInvariant(Iterable in) { - return Iterables.filter(in, this::notModuleInfo); + return filter(in, this::notModuleInfo); } private Iterable removeModuleInfoFile(Iterable in) { - return Iterables.filter(in, this::notModuleInfo); + return filter(in, this::notModuleInfo); } private Iterable removeModuleInfoPath(Iterable in) { - return Iterables.filter(in, this::notModuleInfo); + return filter(in, this::notModuleInfo); } @Override diff --git a/src/main/java/org/javacs/JavaCompilerService.java b/src/main/java/org/javacs/JavaCompilerService.java index f59957d..b66f5be 100644 --- a/src/main/java/org/javacs/JavaCompilerService.java +++ b/src/main/java/org/javacs/JavaCompilerService.java @@ -1,6 +1,5 @@ package org.javacs; -import com.google.common.collect.Sets; import com.sun.source.tree.ClassTree; import com.sun.source.tree.CompilationUnitTree; import com.sun.source.tree.MethodTree; @@ -50,7 +49,10 @@ public class JavaCompilerService { this.sourcePath = Collections.unmodifiableSet(sourcePath); this.classPath = Collections.unmodifiableSet(classPath); this.docPath = Collections.unmodifiableSet(docPath); - this.docs = new Docs(Sets.union(sourcePath, docPath)); + var docSourcePath = new HashSet(); + docSourcePath.addAll(sourcePath); + docSourcePath.addAll(docPath); + this.docs = new Docs(docSourcePath); this.classPathClasses = Classes.classPathTopLevelClasses(classPath); } diff --git a/src/main/java/org/javacs/Parser.java b/src/main/java/org/javacs/Parser.java index f67b0af..d5b94d2 100644 --- a/src/main/java/org/javacs/Parser.java +++ b/src/main/java/org/javacs/Parser.java @@ -1,6 +1,5 @@ package org.javacs; -import com.google.common.base.Joiner; import com.sun.source.tree.*; import com.sun.source.util.*; import java.io.File; @@ -317,9 +316,7 @@ class Parser { var candidates = imports.classes.stream().filter(c -> c.endsWith("." + unresolved)).collect(Collectors.toSet()); if (candidates.size() > 1) { LOG.warning( - String.format( - "%s is ambiguous between previously imported candidates %s", - unresolved, Joiner.on(", ").join(candidates))); + String.format("%s is ambiguous between previously imported candidates %s", unresolved, candidates)); return Optional.empty(); } else if (candidates.size() == 1) { return Optional.of(candidates.iterator().next()); @@ -335,10 +332,7 @@ class Parser { .filter(c -> imports.packages.contains(mostName(c))) .collect(Collectors.toSet()); if (candidates.size() > 1) { - LOG.warning( - String.format( - "%s is ambiguous between package-based candidates %s", - unresolved, Joiner.on(", ").join(candidates))); + LOG.warning(String.format("%s is ambiguous between package-based candidates %s", unresolved, candidates)); return Optional.empty(); } else if (candidates.size() == 1) { return Optional.of(candidates.iterator().next()); @@ -348,10 +342,7 @@ class Parser { candidates = classPath.stream().filter(c -> lastName(c).equals(unresolved)).collect(Collectors.toSet()); if (candidates.size() > 1) { - LOG.warning( - String.format( - "%s is ambiguous between classpath candidates %s", - unresolved, Joiner.on(", ").join(candidates))); + LOG.warning(String.format("%s is ambiguous between classpath candidates %s", unresolved, candidates)); } else if (candidates.size() == 1) { return Optional.of(candidates.iterator().next()); } else { diff --git a/src/main/java/org/javacs/lsp/LSP.java b/src/main/java/org/javacs/lsp/LSP.java index f9b4572..2f3aaa4 100644 --- a/src/main/java/org/javacs/lsp/LSP.java +++ b/src/main/java/org/javacs/lsp/LSP.java @@ -1,9 +1,9 @@ package org.javacs.lsp; -import com.google.common.base.Charsets; import com.google.gson.Gson; import com.google.gson.JsonElement; import java.io.*; +import java.nio.charset.Charset; import java.util.Optional; import java.util.UUID; import java.util.concurrent.ArrayBlockingQueue; @@ -88,10 +88,12 @@ public class LSP { return gson.fromJson(token, Message.class); } + private static final Charset UTF_8 = Charset.forName("UTF-8"); + private static void writeClient(OutputStream client, String messageText) { - var messageBytes = messageText.getBytes(Charsets.UTF_8); + var messageBytes = messageText.getBytes(UTF_8); var headerText = String.format("Content-Length: %d\r\n\r\n", messageBytes.length); - var headerBytes = headerText.getBytes(Charsets.UTF_8); + var headerBytes = headerText.getBytes(UTF_8); try { client.write(headerBytes); client.write(messageBytes); diff --git a/src/test/java/org/javacs/CompletionsTest.java b/src/test/java/org/javacs/CompletionsTest.java index d213a74..e2b657f 100644 --- a/src/test/java/org/javacs/CompletionsTest.java +++ b/src/test/java/org/javacs/CompletionsTest.java @@ -3,7 +3,6 @@ package org.javacs; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; -import com.google.common.collect.Lists; import java.util.stream.Collectors; import org.javacs.lsp.*; import org.junit.Ignore; @@ -501,7 +500,7 @@ public class CompletionsTest extends CompletionsBase { // Static methods var items = items(file, 6, 19); - var suggestions = Lists.transform(items, i -> i.insertText); + var suggestions = items.stream().map(i -> i.insertText).collect(Collectors.toList()); assertThat(suggestions, hasItems("ArrayList<>($0)")); @@ -556,7 +555,7 @@ public class CompletionsTest extends CompletionsBase { // Static methods var items = items(file, 4, 25); - var suggestions = Lists.transform(items, i -> i.label); + var suggestions = items.stream().map(i -> i.label).collect(Collectors.toList()); assertThat(suggestions, hasItems("OtherPackagePublic")); assertThat(suggestions, not(hasItems("OtherPackagePrivate"))); @@ -577,7 +576,7 @@ public class CompletionsTest extends CompletionsBase { // Static methods var items = items(file, 5, 14); - var suggestions = Lists.transform(items, i -> i.label); + var suggestions = items.stream().map(i -> i.label).collect(Collectors.toList()); assertThat(suggestions, hasItems("OtherPackagePublic")); assertThat(suggestions, not(hasItems("OtherPackagePrivate"))); diff --git a/src/test/java/org/javacs/SearchTest.java b/src/test/java/org/javacs/SearchTest.java index 3ecc567..82a2c21 100644 --- a/src/test/java/org/javacs/SearchTest.java +++ b/src/test/java/org/javacs/SearchTest.java @@ -3,12 +3,12 @@ package org.javacs; import static org.hamcrest.Matchers.*; import static org.junit.Assert.assertThat; -import com.google.common.base.Joiner; import java.io.IOException; import java.net.URI; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Set; +import java.util.StringJoiner; import java.util.logging.Logger; import java.util.stream.Collectors; import org.javacs.lsp.*; @@ -23,11 +23,14 @@ public class SearchTest { @BeforeClass public static void openSource() throws IOException { var uri = FindResource.uri("/org/javacs/example/AutocompleteBetweenLines.java"); - var textContent = Joiner.on("\n").join(Files.readAllLines(Paths.get(uri))); + var textContent = new StringJoiner("\n"); + for (var line : Files.readAllLines(Paths.get(uri))) { + textContent.add(line); + } var document = new TextDocumentItem(); document.uri = uri; - document.text = textContent; + document.text = textContent.toString(); server.didOpenTextDocument(new DidOpenTextDocumentParams(document)); } diff --git a/src/test/java/org/javacs/lsp/LspTest.java b/src/test/java/org/javacs/lsp/LspTest.java index 9ef7c4b..61fc2f3 100644 --- a/src/test/java/org/javacs/lsp/LspTest.java +++ b/src/test/java/org/javacs/lsp/LspTest.java @@ -3,11 +3,11 @@ package org.javacs.lsp; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; -import com.google.common.base.Charsets; import com.google.gson.JsonObject; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; +import java.nio.charset.Charset; import java.util.Optional; import org.junit.Before; import org.junit.Test; @@ -27,7 +27,7 @@ public class LspTest { var bytes = new byte[available]; var read = buffer.read(bytes); assert read == available; - return new String(bytes, Charsets.UTF_8); + return new String(bytes, Charset.forName("UTF-8")); } catch (IOException e) { throw new RuntimeException(e); } -- cgit v1.2.3