Skip to content

Commit

Permalink
Add messaging.proto instread of datastream
Browse files Browse the repository at this point in the history
  • Loading branch information
meltsufin committed Oct 26, 2021
1 parent 49f0b39 commit 8c59769
Show file tree
Hide file tree
Showing 11 changed files with 2,152 additions and 574 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ private static Map<TypeNode, Field> parseTypeFromArgumentName(
return typeToField;
}

// Parse the resource name tyeps.
// Parse the resource name types.
List<ResourceName> resourceNameArgs =
ResourceReferenceParser.parseResourceNames(
field.resourceReference(),
Expand All @@ -206,7 +206,8 @@ private static Map<TypeNode, Field> parseTypeFromArgumentName(
resourceNames,
patternsToResourceNames);
outputArgResourceNames.addAll(resourceNameArgs);
if (resourceNameArgs.size() == 1) {
// For flattened methods, use the first candidate resource reference.
if (resourceNameArgs.size() >= 1) {
typeToField.put(
TypeNode.STRING,
field
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -881,7 +881,11 @@ static String parsePageSizeFieldName(
// with monolith-gnerated libraries.
String pagedFieldName = null;

if (inputMessage.fieldMap().containsKey("page_token")
if (inputMessage != null
&& inputMessage.fieldMap() != null
&& inputMessage.fieldMap().containsKey("page_token")
&& outputMessage != null
&& outputMessage.fieldMap() != null
&& outputMessage.fieldMap().containsKey("next_page_token")) {
// List of potential field names representing page size.
// page_size gets priority over max_results if both are present
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import com.google.api.generator.gapic.protoparser.Parser;
import com.google.api.generator.gapic.protoparser.ServiceConfigParser;
import com.google.bookshop.v1beta1.BookshopProto;
import com.google.cloud.datastream.v1alpha1.CloudDatastreamServiceProto;
import com.google.logging.v2.LogEntryProto;
import com.google.logging.v2.LoggingConfigProto;
import com.google.logging.v2.LoggingMetricsProto;
Expand All @@ -38,6 +37,7 @@
import com.google.pubsub.v1.PubsubProto;
import com.google.showcase.v1beta1.EchoOuterClass;
import com.google.showcase.v1beta1.IdentityOuterClass;
import com.google.showcase.v1beta1.MessagingOuterClass;
import com.google.showcase.v1beta1.TestingOuterClass;
import com.google.testdata.v1.DeprecatedServiceOuterClass;
import google.cloud.CommonResources;
Expand All @@ -52,6 +52,7 @@
import java.util.Set;

public class TestProtoLoader {

private static final TestProtoLoader INSTANCE =
new TestProtoLoader(Transport.GRPC, "src/test/java/com/google/api/generator/gapic/testdata/");
private final String testFilesDirectory;
Expand Down Expand Up @@ -171,26 +172,34 @@ public GapicContext parseShowcaseIdentity() {
.build();
}

public GapicContext parseDatastream() {
FileDescriptor fileDescriptor = CloudDatastreamServiceProto.getDescriptor();
ServiceDescriptor datastreamService = fileDescriptor.getServices().get(0);
assertEquals(datastreamService.getName(), "Datastream");

Map<String, Message> messageTypes = Parser.parseMessages(fileDescriptor);
Map<String, ResourceName> resourceNames = Parser.parseResourceNames(fileDescriptor);
Set<ResourceName> outputResourceNames = new HashSet<>();
List<Service> services =
Parser.parseService(
fileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames);

return GapicContext.builder()
.setMessages(messageTypes)
.setResourceNames(resourceNames)
.setServices(services)
.setHelperResourceNames(outputResourceNames)
.setTransport(transport)
.build();
}
public GapicContext parseShowcaseMessaging() {
FileDescriptor fileDescriptor = MessagingOuterClass.getDescriptor();
ServiceDescriptor messagingService = fileDescriptor.getServices().get(0);
assertEquals(messagingService.getName(), "Messaging");

Map<String, Message> messageTypes = Parser.parseMessages(fileDescriptor);
Map<String, ResourceName> resourceNames = Parser.parseResourceNames(fileDescriptor);

FileDescriptor identityFileDescriptor = IdentityOuterClass.getDescriptor();
Map<String, ResourceName> identityResourceNames = Parser
.parseResourceNames(identityFileDescriptor);

resourceNames.put("showcase.googleapis.com/User",
identityResourceNames.get("showcase.googleapis.com/User"));

Set<ResourceName> outputResourceNames = new HashSet<>();
List<Service> services =
Parser.parseService(
fileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames);

return GapicContext.builder()
.setMessages(messageTypes)
.setResourceNames(resourceNames)
.setServices(services)
.setHelperResourceNames(outputResourceNames)
.setTransport(transport)
.build();
}

public GapicContext parseShowcaseTesting() {
FileDescriptor testingFileDescriptor = TestingOuterClass.getDescriptor();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,14 @@ public void generateServiceClasses_bookshopNameConflicts() {

@Test
public void generateServiceClasses_childTypeParentInJavadoc() {
GapicContext context = GrpcTestProtoLoader.instance().parseDatastream();
GapicContext context = GrpcTestProtoLoader.instance().parseShowcaseMessaging();
Service protoService = context.services().get(0);
GapicClass clazz = ServiceClientClassComposer.instance().generate(context, protoService);

JavaWriterVisitor visitor = new JavaWriterVisitor();
clazz.classDefinition().accept(visitor);
Utils.saveCodegenToFile(this.getClass(), "DatastreamClient.golden", visitor.write());
Path goldenFilePath = Paths.get(Utils.getGoldenDir(this.getClass()), "DatastreamClient.golden");
Utils.saveCodegenToFile(this.getClass(), "MessagingClient.golden", visitor.write());
Path goldenFilePath = Paths.get(Utils.getGoldenDir(this.getClass()), "MessagingClient.golden");
assertCodeEquals(goldenFilePath, visitor.write());
}
}
Loading

0 comments on commit 8c59769

Please sign in to comment.