From 023e27c4d22a3a28f96af50c1333a0e671fc95b9 Mon Sep 17 00:00:00 2001 From: Nicole Deflaux Date: Fri, 25 Aug 2017 11:36:01 -0700 Subject: [PATCH 1/2] Fix test per updates to underlying data. Change-Id: I7a21a2bbce86481b2a53a7f716446586a8029217 --- .../genomics/utils/IntegrationTestHelper.java | 13 +---- .../MergeAllVariantsAtSameSiteITCase.java | 28 +++-------- ...MergeNonVariantSegmentsWithSnpsITCase.java | 34 ++++--------- ...eNonVariantSegmentsWithVariantsITCase.java | 49 +++++-------------- 4 files changed, 30 insertions(+), 94 deletions(-) diff --git a/src/test/java/com/google/cloud/genomics/utils/IntegrationTestHelper.java b/src/test/java/com/google/cloud/genomics/utils/IntegrationTestHelper.java index cbd5ade..327cdd7 100644 --- a/src/test/java/com/google/cloud/genomics/utils/IntegrationTestHelper.java +++ b/src/test/java/com/google/cloud/genomics/utils/IntegrationTestHelper.java @@ -29,22 +29,11 @@ public class IntegrationTestHelper { public static final String PLATINUM_GENOMES_VARIANTSET = "3049512673186936334"; public static final String[] PLATINUM_GENOMES_CALLSET_NAMES = { "NA12877", - "NA12893", - "NA12885", "NA12889", - "NA12887", - "NA12881", - "NA12888", - "NA12882", - "NA12879", "NA12891", - "NA12883", "NA12892", - "NA12886", "NA12890", "NA12878", - "NA12884", - "NA12880", }; public static final String[] PLATINUM_GENOMES_READGROUPSETS = { "CMvnhpKTFhCAv6TKo6Dglgg", @@ -66,7 +55,7 @@ public class IntegrationTestHelper { }; public static final String PLATINUM_GENOMES_REFERENCE_SET_ID = "CNfS6aHAoved2AEQ6PnzkOzw15rqAQ"; public static final String PLATINUM_GENOMES_BRCA1_REFERENCES = "chr17:41196311:41277499"; - public static final int PLATINUM_GENOMES_BRCA1_EXPECTED_NUM_VARIANTS = 19517; + public static final int PLATINUM_GENOMES_BRCA1_EXPECTED_NUM_VARIANTS = 7588; public static final String PLATINUM_GENOMES_KLOTHO_REFERENCES = "chr13:33628137:33628138"; public static final ReferenceBound[] PLATINUM_GENOMES_VARIANTSET_BOUNDS = { new ReferenceBound().setReferenceName("chr1").setUpperBound(250226910L), diff --git a/src/test/java/com/google/cloud/genomics/utils/grpc/MergeAllVariantsAtSameSiteITCase.java b/src/test/java/com/google/cloud/genomics/utils/grpc/MergeAllVariantsAtSameSiteITCase.java index d2d1d6f..bd2bd88 100644 --- a/src/test/java/com/google/cloud/genomics/utils/grpc/MergeAllVariantsAtSameSiteITCase.java +++ b/src/test/java/com/google/cloud/genomics/utils/grpc/MergeAllVariantsAtSameSiteITCase.java @@ -70,7 +70,7 @@ public class MergeAllVariantsAtSameSiteITCase { public void testMerge() throws Exception { ImmutableList requests = ShardUtils.getVariantRequests(PROTOTYPE, - 100L, "chr17:41204796:41204797"); + 100L, "chr17:41198773:41198774"); assertEquals(1, requests.size()); Iterator iter = @@ -84,29 +84,15 @@ public void testMerge() throws Exception { // Platinum genomes has both a snp and an insertion at this genomic site // but merging the calls together yields an ambiguous result. - Variant expectedOutput1 = TestHelper.makeVariant("chr17", 41204796, 41204797, "A", Arrays.asList("AAC", "C")) - .addCalls(TestHelper.makeCall("NA12882", 1, 1)) // ambiguous - .addCalls(TestHelper.makeCall("NA12879", 1, 1)) // ambiguous - .addCalls(TestHelper.makeCall("NA12891", 0, 1)) // ambiguous + Variant expectedOutput1 = TestHelper.makeVariant("chr17", 41198773, 41198774, "C", Arrays.asList("A", "CA")) .addCalls(TestHelper.makeCall("NA12878", 0, 1)) // ambiguous - .addCalls(TestHelper.makeCall("NA12884", 1, 1)) // ambiguous - .addCalls(TestHelper.makeCall("NA12882", 0, 2)) // ambiguous - .addCalls(TestHelper.makeCall("NA12879", 0, 2)) // ambiguous - .addCalls(TestHelper.makeCall("NA12892", 0, 0)) - .addCalls(TestHelper.makeCall("NA12893", 0, 0)) - .addCalls(TestHelper.makeCall("NA12890", 0, 0)) - .addCalls(TestHelper.makeCall("NA12883", 0, 0)) - .addCalls(TestHelper.makeCall("NA12891", 0, 0)) // ambiguous - .addCalls(TestHelper.makeCall("NA12880", 0, 0)) + .addCalls(TestHelper.makeCall("NA12892", 0, 2)) // ambiguous + .addCalls(TestHelper.makeCall("NA12878", 0, 2)) // ambiguous .addCalls(TestHelper.makeCall("NA12877", 0, 0)) - .addCalls(TestHelper.makeCall("NA12885", 0, 0)) .addCalls(TestHelper.makeCall("NA12889", 0, 0)) - .addCalls(TestHelper.makeCall("NA12887", 0, 0)) - .addCalls(TestHelper.makeCall("NA12881", 0, 0)) - .addCalls(TestHelper.makeCall("NA12888", 0, 0)) - .addCalls(TestHelper.makeCall("NA12886", 0, 0)) - .addCalls(TestHelper.makeCall("NA12878", 0, 0)) // ambiguous - .addCalls(TestHelper.makeCall("NA12884", 0, 0)) // ambiguous + .addCalls(TestHelper.makeCall("NA12891", 0, 0)) + .addCalls(TestHelper.makeCall("NA12892", 0, 0)) // ambiguous + .addCalls(TestHelper.makeCall("NA12890", 0, 0)) .putAllInfo(emptyInfo) .build(); diff --git a/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithSnpsITCase.java b/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithSnpsITCase.java index 76899d3..a65e830 100644 --- a/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithSnpsITCase.java +++ b/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithSnpsITCase.java @@ -67,7 +67,7 @@ public class MergeNonVariantSegmentsWithSnpsITCase { public void testMerge() throws Exception { ImmutableList requests = ShardUtils.getVariantRequests(PROTOTYPE, - 100, "chr17:41204796:41204797"); + 100, "chr17:41198773:41198774"); assertEquals(1, requests.size()); Iterator iter = @@ -77,32 +77,18 @@ public void testMerge() throws Exception { "variants(alternateBases,calls(callSetName,genotype),end,referenceBases,referenceName,start)"); // Platinum genomes has both a snp and an insertion at this genomic site. - Variant expectedOutput1 = TestHelper.makeVariant("chr17", 41204796, 41204797, "A", Arrays.asList("AAC")) - .addCalls(TestHelper.makeCall("NA12882", 1, 1)) - .addCalls(TestHelper.makeCall("NA12879", 1, 1)) - .addCalls(TestHelper.makeCall("NA12891", 0, 1)) + Variant expectedOutput1 = TestHelper.makeVariant("chr17", 41198773, 41198774, "C", Arrays.asList("A")) .addCalls(TestHelper.makeCall("NA12878", 0, 1)) - .addCalls(TestHelper.makeCall("NA12884", 1, 1)) - .build(); - - Variant expectedOutput2 = TestHelper.makeVariant("chr17", 41204796, 41204797, "A", Arrays.asList("C")) - .addCalls(TestHelper.makeCall("NA12882", 0, 1)) - .addCalls(TestHelper.makeCall("NA12879", 0, 1)) - .addCalls(TestHelper.makeCall("NA12892", 0, 0)) - .addCalls(TestHelper.makeCall("NA12893", 0, 0)) - .addCalls(TestHelper.makeCall("NA12890", 0, 0)) - .addCalls(TestHelper.makeCall("NA12883", 0, 0)) - .addCalls(TestHelper.makeCall("NA12891", 0, 0)) - .addCalls(TestHelper.makeCall("NA12880", 0, 0)) .addCalls(TestHelper.makeCall("NA12877", 0, 0)) - .addCalls(TestHelper.makeCall("NA12885", 0, 0)) .addCalls(TestHelper.makeCall("NA12889", 0, 0)) - .addCalls(TestHelper.makeCall("NA12887", 0, 0)) - .addCalls(TestHelper.makeCall("NA12881", 0, 0)) - .addCalls(TestHelper.makeCall("NA12888", 0, 0)) - .addCalls(TestHelper.makeCall("NA12886", 0, 0)) - .addCalls(TestHelper.makeCall("NA12878", 0, 0)) - .addCalls(TestHelper.makeCall("NA12884", 0, 0)) + .addCalls(TestHelper.makeCall("NA12891", 0, 0)) + .addCalls(TestHelper.makeCall("NA12892", 0, 0)) + .addCalls(TestHelper.makeCall("NA12890", 0, 0)) + .build(); + + Variant expectedOutput2 = TestHelper.makeVariant("chr17", 41198773, 41198774, "C", Arrays.asList("CA")) + .addCalls(TestHelper.makeCall("NA12892", 0, 1)) + .addCalls(TestHelper.makeCall("NA12878", 0, 1)) .build(); VariantMergeStrategyTestHelper.mergeTest(requests.get(0).getStart(), iter.next().getVariantsList(), diff --git a/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithVariantsITCase.java b/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithVariantsITCase.java index 7c008cb..a8bbd8d 100644 --- a/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithVariantsITCase.java +++ b/src/test/java/com/google/cloud/genomics/utils/grpc/MergeNonVariantSegmentsWithVariantsITCase.java @@ -67,7 +67,7 @@ public class MergeNonVariantSegmentsWithVariantsITCase { public void testMerge() throws Exception { ImmutableList requests = ShardUtils.getVariantRequests(PROTOTYPE, - 100, "chr17:41204796:41204797"); + 100, "chr17:41198773:41198774"); assertEquals(1, requests.size()); Iterator iter = @@ -77,48 +77,23 @@ public void testMerge() throws Exception { "variants(alternateBases,calls(callSetName,genotype),end,referenceBases,referenceName,start)"); // Platinum genomes has both a snp and an insertion at this genomic site. - Variant expectedOutput1 = TestHelper.makeVariant("chr17", 41204796, 41204797, "A", Arrays.asList("AAC")) - .addCalls(TestHelper.makeCall("NA12882", 1, 1)) - .addCalls(TestHelper.makeCall("NA12879", 1, 1)) - .addCalls(TestHelper.makeCall("NA12891", 0, 1)) // ambiguous - .addCalls(TestHelper.makeCall("NA12878", 0, 1)) // ambiguous - .addCalls(TestHelper.makeCall("NA12884", 1, 1)) // ambiguous - .addCalls(TestHelper.makeCall("NA12892", 0, 0)) - .addCalls(TestHelper.makeCall("NA12893", 0, 0)) - .addCalls(TestHelper.makeCall("NA12890", 0, 0)) - .addCalls(TestHelper.makeCall("NA12883", 0, 0)) - .addCalls(TestHelper.makeCall("NA12891", 0, 0)) // ambiguous - .addCalls(TestHelper.makeCall("NA12880", 0, 0)) + Variant expectedOutput1 = TestHelper.makeVariant("chr17", 41198773, 41198774, "C", Arrays.asList("A")) + .addCalls(TestHelper.makeCall("NA12878", 0, 1)) .addCalls(TestHelper.makeCall("NA12877", 0, 0)) - .addCalls(TestHelper.makeCall("NA12885", 0, 0)) .addCalls(TestHelper.makeCall("NA12889", 0, 0)) - .addCalls(TestHelper.makeCall("NA12887", 0, 0)) - .addCalls(TestHelper.makeCall("NA12881", 0, 0)) - .addCalls(TestHelper.makeCall("NA12888", 0, 0)) - .addCalls(TestHelper.makeCall("NA12886", 0, 0)) - .addCalls(TestHelper.makeCall("NA12878", 0, 0)) // ambiguous - .addCalls(TestHelper.makeCall("NA12884", 0, 0)) // ambiguous - .build(); - - - Variant expectedOutput2 = TestHelper.makeVariant("chr17", 41204796, 41204797, "A", Arrays.asList("C")) - .addCalls(TestHelper.makeCall("NA12882", 0, 1)) - .addCalls(TestHelper.makeCall("NA12879", 0, 1)) + .addCalls(TestHelper.makeCall("NA12891", 0, 0)) .addCalls(TestHelper.makeCall("NA12892", 0, 0)) - .addCalls(TestHelper.makeCall("NA12893", 0, 0)) .addCalls(TestHelper.makeCall("NA12890", 0, 0)) - .addCalls(TestHelper.makeCall("NA12883", 0, 0)) - .addCalls(TestHelper.makeCall("NA12891", 0, 0)) - .addCalls(TestHelper.makeCall("NA12880", 0, 0)) + .build(); + + Variant expectedOutput2 = TestHelper.makeVariant("chr17", 41198773, 41198774, "C", Arrays.asList("CA")) + .addCalls(TestHelper.makeCall("NA12892", 0, 1)) // ambiguous + .addCalls(TestHelper.makeCall("NA12878", 0, 1)) // ambiguous .addCalls(TestHelper.makeCall("NA12877", 0, 0)) - .addCalls(TestHelper.makeCall("NA12885", 0, 0)) .addCalls(TestHelper.makeCall("NA12889", 0, 0)) - .addCalls(TestHelper.makeCall("NA12887", 0, 0)) - .addCalls(TestHelper.makeCall("NA12881", 0, 0)) - .addCalls(TestHelper.makeCall("NA12888", 0, 0)) - .addCalls(TestHelper.makeCall("NA12886", 0, 0)) - .addCalls(TestHelper.makeCall("NA12878", 0, 0)) - .addCalls(TestHelper.makeCall("NA12884", 0, 0)) + .addCalls(TestHelper.makeCall("NA12891", 0, 0)) + .addCalls(TestHelper.makeCall("NA12892", 0, 0)) // ambiguous + .addCalls(TestHelper.makeCall("NA12890", 0, 0)) .build(); VariantMergeStrategyTestHelper.mergeTest(requests.get(0).getStart(), iter.next().getVariantsList(), From c5a25f18cb796b5624eb3acf45e881012674a692 Mon Sep 17 00:00:00 2001 From: Nicole Deflaux Date: Wed, 6 Sep 2017 15:41:26 -0700 Subject: [PATCH 2/2] Update to newer versions of dependencies. Change-Id: If87e107ba58a624112143893a43287e5db555f4f --- README.md | 10 ++-- pom.xml | 57 ++++++++++++++----- .../grpc/FaultyGenomicsServerITCase.java | 6 +- .../grpc/GenomicsStreamIteratorRetryTest.java | 49 ++++++++++------ .../grpc/GenomicsStreamIteratorTest.java | 8 +-- 5 files changed, 88 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 8c7d615..490c8bf 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This project's goal is to reduce duplicate code across different Google Genomics If you have duplicate code appearing in your projects, or see useful functions in the other [googlegenomics Java repositories](https://github.com/googlegenomics?query=-java) that you want to depend on, please [contribute](CONTRIBUTING.rst)! -##Depending on this project +## Depending on this project Note: you can find the latest available version of this project in [Maven's central repository](https://search.maven.org/#search%7Cga%7C1%7Ca%3A%22google-genomics-utils%22). @@ -17,7 +17,7 @@ Add the following to your `pom.xml` file: com.google.cloud.genomics google-genomics-utils - v1beta2-0.1 + v1-0.8 @@ -31,7 +31,7 @@ repositories { } dependencies { - compile 'com.google.cloud.genomics:google-genomics-utils:v1-0.7' + compile 'com.google.cloud.genomics:google-genomics-utils:v1-0.8' } ``` @@ -113,9 +113,9 @@ This section contains details on getting a new release into Maven central and ca mvn release:prepare && mvn release:perform ``` > ... -> **What is the release version for "Google Genomics Utils"?:** \ +> **What is the release version for "Google Genomics Utils"?:** \ > **What is SCM release tag or label for "Google Genomics Utils"?:** \ -> **What is the new development version for "Google Genomics Utils"?** \ +> **What is the new development version for "Google Genomics Utils"?** \ 2. Find the repository at https://oss.sonatype.org/#stagingRepositories and close it. 3. If closing succeeds, then release it. See the [detailed instructions](http://central.sonatype.org/pages/releasing-the-deployment.html#close-and-drop-or-release-your-staging-repository) for more info. diff --git a/pom.xml b/pom.xml index 21b67ff..32e2ffa 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ com.github.samtools htsjdk - 1.128 + 2.11.0 org.testng @@ -106,7 +106,25 @@ com.google.api.grpc grpc-google-genomics-v1 - 0.0.9 + 0.1.0 + + + com.google.api.grpc + grpc-google-common-protos + + + com.google.api.grpc + grpc-google-iam-v1 + + + com.google.protobuf + protobuf-java + + + io.grpc + grpc-all + + com.google.http-client @@ -141,14 +159,29 @@ test - org.mockito - mockito-core - 1.10.8 - test + org.mockito + mockito-core + 2.8.47 + test + + + io.grpc + grpc-netty + ${io.grpc.version} + + + io.grpc + grpc-protobuf + ${io.grpc.version} + + + io.grpc + grpc-stub + ${io.grpc.version} io.grpc - grpc-all + grpc-auth ${io.grpc.version} @@ -156,7 +189,7 @@ com.google.apis google-api-services-storage - v1-rev22-1.19.0 + v1-rev110-1.22.0 test @@ -287,13 +320,11 @@ - 4.11 1.22.0 - 0.4.0 - v1-rev109-1.22.0 + 0.7.1 + v1-rev512-1.22.0 19.0 - 1.0.1 - 1.10.8 + 1.6.1 UTF-8 UTF-8 1.7 diff --git a/src/test/java/com/google/cloud/genomics/utils/grpc/FaultyGenomicsServerITCase.java b/src/test/java/com/google/cloud/genomics/utils/grpc/FaultyGenomicsServerITCase.java index bba0b5d..4a62725 100644 --- a/src/test/java/com/google/cloud/genomics/utils/grpc/FaultyGenomicsServerITCase.java +++ b/src/test/java/com/google/cloud/genomics/utils/grpc/FaultyGenomicsServerITCase.java @@ -63,7 +63,7 @@ public class FaultyGenomicsServerITCase { public static void startServer() throws IOException, GeneralSecurityException { try { server = InProcessServerBuilder.forName(SERVER_NAME) - .addService(StreamingVariantServiceGrpc.bindService(new VariantsIntegrationServerImpl())) + .addService(new VariantsIntegrationServerImpl()) .build().start(); } catch (IOException ex) { throw new RuntimeException(ex); @@ -76,8 +76,8 @@ public static void stopServer() { server.shutdownNow(); } - protected static class VariantsIntegrationServerImpl implements - StreamingVariantServiceGrpc.StreamingVariantService { + protected static class VariantsIntegrationServerImpl extends + StreamingVariantServiceGrpc.StreamingVariantServiceImplBase { final Random random = new Random(); @Override diff --git a/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorRetryTest.java b/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorRetryTest.java index ef50d71..05527ce 100644 --- a/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorRetryTest.java +++ b/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorRetryTest.java @@ -90,13 +90,12 @@ enum InjectionSite { protected Server server; - protected static class UnitServerImpl implements StreamingReadServiceGrpc.StreamingReadService, - StreamingVariantServiceGrpc.StreamingVariantService { + protected static class FaultInjector { protected final InjectionSite injectionSite; protected volatile boolean failNow; // Accessed by the InProcess Server executor threads. - protected UnitServerImpl(InjectionSite targetSite) { + protected FaultInjector(InjectionSite targetSite) { injectionSite = targetSite; failNow = true; } @@ -109,18 +108,6 @@ protected synchronized boolean shouldInjectNow(InjectionSite currentSite) { return false; } - @Override - public void streamReads(StreamReadsRequest request, - StreamObserver responseObserver) { - respondWithFaults(responseObserver, READ_RESPONSES); - } - - @Override - public void streamVariants(StreamVariantsRequest request, - StreamObserver responseObserver) { - respondWithFaults(responseObserver, VARIANT_RESPONSES); - } - protected synchronized void respondWithFaults(StreamObserver responseObserver, Message[] responses) { if (shouldInjectNow(InjectionSite.AT_BEGINNING)) { responseObserver.onError(Status.UNAVAILABLE.withDescription("injected fault") @@ -156,6 +143,34 @@ protected synchronized void respondWithFaults(StreamObserver responseObserver, M } } + protected static class ReadUnitServerImpl extends StreamingReadServiceGrpc.StreamingReadServiceImplBase { + final FaultInjector faultInjector; + + public ReadUnitServerImpl(InjectionSite targetSite) { + faultInjector = new FaultInjector(targetSite); + } + + @Override + public void streamReads(StreamReadsRequest request, + StreamObserver responseObserver) { + faultInjector.respondWithFaults(responseObserver, READ_RESPONSES); + } + } + + protected static class VariantUnitServerImpl extends StreamingVariantServiceGrpc.StreamingVariantServiceImplBase { + final FaultInjector faultInjector; + + public VariantUnitServerImpl(InjectionSite targetSite) { + faultInjector = new FaultInjector(targetSite); + } + + @Override + public void streamVariants(StreamVariantsRequest request, + StreamObserver responseObserver) { + faultInjector.respondWithFaults(responseObserver, VARIANT_RESPONSES); + } + } + /** * Starts the in-process server configured to inject one fault at the specified target site. * @@ -165,8 +180,8 @@ public void startServer(InjectionSite targetSite) { try { server = InProcessServerBuilder.forName(testName.getMethodName()) - .addService(StreamingReadServiceGrpc.bindService(new UnitServerImpl(targetSite))) - .addService(StreamingVariantServiceGrpc.bindService(new UnitServerImpl(targetSite))) + .addService(new ReadUnitServerImpl(targetSite)) + .addService(new VariantUnitServerImpl(targetSite)) .build() .start(); } catch (IOException ex) { diff --git a/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorTest.java b/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorTest.java index c47c9cc..e9861d2 100644 --- a/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorTest.java +++ b/src/test/java/com/google/cloud/genomics/utils/grpc/GenomicsStreamIteratorTest.java @@ -61,8 +61,8 @@ public class GenomicsStreamIteratorTest { public static void startServer() { try { server = InProcessServerBuilder.forName(SERVER_NAME) - .addService(StreamingReadServiceGrpc.bindService(new ReadsUnitServerImpl())) - .addService(StreamingVariantServiceGrpc.bindService(new VariantsUnitServerImpl())) + .addService(new ReadsUnitServerImpl()) + .addService(new VariantsUnitServerImpl()) .build().start(); } catch (IOException ex) { throw new RuntimeException(ex); @@ -74,7 +74,7 @@ public static void stopServer() { server.shutdownNow(); } - protected static class ReadsUnitServerImpl implements StreamingReadServiceGrpc.StreamingReadService { + protected static class ReadsUnitServerImpl extends StreamingReadServiceGrpc.StreamingReadServiceImplBase { @Override public void streamReads(StreamReadsRequest request, StreamObserver responseObserver) { @@ -88,7 +88,7 @@ public void streamReads(StreamReadsRequest request, } } - protected static class VariantsUnitServerImpl implements StreamingVariantServiceGrpc.StreamingVariantService { + protected static class VariantsUnitServerImpl extends StreamingVariantServiceGrpc.StreamingVariantServiceImplBase { @Override public void streamVariants(StreamVariantsRequest request, StreamObserver responseObserver) {