summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Fraser <george@fivetran.com>2018-12-28 18:16:42 -0800
committerGeorge Fraser <george@fivetran.com>2018-12-28 18:16:42 -0800
commit3bdefe1c30f531c7a646df9b9b14eec232f1fe1b (patch)
tree7e7ec9c7ced8e1f22aa3f80af6e761224e62ce0f
parentcad778ca0daae307de3f34579ddbccccb8088aaf (diff)
downloadjava-language-server-3bdefe1c30f531c7a646df9b9b14eec232f1fe1b.zip
Remove guava
-rw-r--r--pom.xml6
-rw-r--r--src/main/java/module-info.java1
-rw-r--r--src/main/java/org/javacs/FileManagerWrapper.java15
-rw-r--r--src/main/java/org/javacs/JavaCompilerService.java6
-rw-r--r--src/main/java/org/javacs/Parser.java15
-rw-r--r--src/main/java/org/javacs/lsp/LSP.java8
-rw-r--r--src/test/java/org/javacs/CompletionsTest.java7
-rw-r--r--src/test/java/org/javacs/SearchTest.java9
-rw-r--r--src/test/java/org/javacs/lsp/LspTest.java4
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 @@
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
- <!-- Guava collections-->
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>25.1-jre</version>
- </dependency>
<!-- Testing framework -->
<dependency>
<groupId>junit</groupId>
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 <T> Iterable<T> filter(Iterable<T> in, Predicate<T> f) {
+ return StreamSupport.stream(in.spliterator(), false).filter(f)::iterator;
+ }
+
private Iterable<? extends JavaFileObject> removeModuleInfo(Iterable<? extends JavaFileObject> in) {
- return Iterables.filter(in, this::notModuleInfo);
+ return filter(in, this::notModuleInfo);
}
private Iterable<JavaFileObject> removeModuleInfoInvariant(Iterable<JavaFileObject> in) {
- return Iterables.filter(in, this::notModuleInfo);
+ return filter(in, this::notModuleInfo);
}
private Iterable<? extends File> removeModuleInfoFile(Iterable<? extends File> in) {
- return Iterables.filter(in, this::notModuleInfo);
+ return filter(in, this::notModuleInfo);
}
private Iterable<? extends Path> removeModuleInfoPath(Iterable<? extends Path> 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<Path>();
+ 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);
}