public ProtobufJavaUtilSupport(@Nullable JsonFormat.Parser parser, @Nullable JsonFormat.Printer printer) { this.parser = (parser != null ? parser : JsonFormat.parser()); this.printer = (printer != null ? printer : JsonFormat.printer()); }
public ProtobufJavaUtilSupport(@Nullable JsonFormat.Parser parser, @Nullable JsonFormat.Printer printer) { this.parser = (parser != null ? parser : JsonFormat.parser()); this.printer = (printer != null ? printer : JsonFormat.printer()); }
/** * Parses the JSON input file containing the list of features. */ public static List<Feature> parseFeatures(URL file) throws IOException { InputStream input = file.openStream(); try { Reader reader = new InputStreamReader(input); try { FeatureDatabase.Builder database = FeatureDatabase.newBuilder(); JsonFormat.parser().merge(reader, database); return database.getFeatureList(); } finally { reader.close(); } } finally { input.close(); } }
/** * Parses the JSON input file containing the list of features. */ public static List<Feature> parseFeatures(URL file) throws IOException { InputStream input = file.openStream(); try { Reader reader = new InputStreamReader(input); try { FeatureDatabase.Builder database = FeatureDatabase.newBuilder(); JsonFormat.parser().merge(reader, database); return database.getFeatureList(); } finally { reader.close(); } } finally { input.close(); } }
public static <T extends Message> MethodDescriptor.Marshaller<T> jsonMarshaller(final T defaultInstance) { final JsonFormat.Printer printer = JsonFormat.printer().preservingProtoFieldNames(); final JsonFormat.Parser parser = JsonFormat.parser(); final Charset charset = Charset.forName("UTF-8");
@Before public void setup() { this.registryInitializer = mock(ExtensionRegistryInitializer.class); this.extensionRegistry = mock(ExtensionRegistry.class); this.converter = new ProtobufJsonFormatHttpMessageConverter( JsonFormat.parser(), JsonFormat.printer(), this.registryInitializer); this.testMsg = Msg.newBuilder().setFoo("Foo").setBlah(SecondMsg.newBuilder().setBlah(123).build()).build(); }
private void run() throws Exception { stream = new SpannerImpl.GrpcStreamIterator(10); stream.setCall( new SpannerRpc.StreamingCall() { @Override public void cancel(@Nullable String message) {} @Override public void request(int numMessages) {} }); consumer = stream.consumer(); resultSet = new SpannerImpl.GrpcResultSet(stream, new NoOpListener(), QueryMode.NORMAL); JSONArray chunks = testCase.getJSONArray("chunks"); JSONObject expectedResult = testCase.getJSONObject("result"); for (int i = 0; i < chunks.length(); i++) { PartialResultSet.Builder builder = PartialResultSet.newBuilder(); JsonFormat.parser().merge(chunks.getString(i), builder); consumer.onPartialResultSet(builder.build()); } consumer.onCompleted(); assertResultSet(resultSet, expectedResult.getJSONArray("value")); }
@Test public void writeJsonWithJavaFormat() throws IOException { this.converter = new ProtobufHttpMessageConverter( new ProtobufHttpMessageConverter.ProtobufJavaFormatSupport(), this.extensionRegistry); MockHttpOutputMessage outputMessage = new MockHttpOutputMessage(); MediaType contentType = MediaType.APPLICATION_JSON_UTF8; this.converter.write(this.testMsg, contentType, outputMessage); assertEquals(contentType, outputMessage.getHeaders().getContentType()); final String body = outputMessage.getBodyAsString(Charset.forName("UTF-8")); assertFalse("body is empty", body.isEmpty()); Msg.Builder builder = Msg.newBuilder(); JsonFormat.parser().merge(body, builder); assertEquals(this.testMsg, builder.build()); assertNull(outputMessage.getHeaders().getFirst( ProtobufHttpMessageConverter.X_PROTOBUF_MESSAGE_HEADER)); assertNull(outputMessage.getHeaders().getFirst( ProtobufHttpMessageConverter.X_PROTOBUF_SCHEMA_HEADER)); }
@Test public void writeJsonWithGoogleProtobuf() throws IOException { this.converter = new ProtobufHttpMessageConverter( new ProtobufHttpMessageConverter.ProtobufJavaUtilSupport(null, null), this.extensionRegistry); MockHttpOutputMessage outputMessage = new MockHttpOutputMessage(); MediaType contentType = MediaType.APPLICATION_JSON_UTF8; this.converter.write(this.testMsg, contentType, outputMessage); assertEquals(contentType, outputMessage.getHeaders().getContentType()); final String body = outputMessage.getBodyAsString(Charset.forName("UTF-8")); assertFalse("body is empty", body.isEmpty()); Msg.Builder builder = Msg.newBuilder(); JsonFormat.parser().merge(body, builder); assertEquals(this.testMsg, builder.build()); assertNull(outputMessage.getHeaders().getFirst( ProtobufHttpMessageConverter.X_PROTOBUF_MESSAGE_HEADER)); assertNull(outputMessage.getHeaders().getFirst( ProtobufHttpMessageConverter.X_PROTOBUF_SCHEMA_HEADER)); }
/** * Parses the JSON input file containing the list of features. */ public static List<Feature> parseFeatures(URL file) throws IOException { InputStream input = file.openStream(); try { Reader reader = new InputStreamReader(input); try { FeatureDatabase.Builder database = FeatureDatabase.newBuilder(); JsonFormat.parser().merge(reader, database); return database.getFeatureList(); } finally { reader.close(); } } finally { input.close(); } }
/** * Converts a JSON object to a protobuf message. * <p> * Note: Ignores unknown fields * * @param builder the proto message type builder * @param input the JSON object to convert * @return the converted protobuf message */ public static Message fromJson(Message.Builder builder, JsonObject input) throws Exception { JsonFormat.parser().ignoringUnknownFields().merge(input.toString(), builder); return builder.build(); }
private static DeviceSpec parseDeviceSpecInternal(Reader deviceSpecReader, boolean canSkipFields) throws IOException { DeviceSpec.Builder builder = DeviceSpec.newBuilder(); JsonFormat.parser().merge(deviceSpecReader, builder); DeviceSpec deviceSpec = builder.build(); validateDeviceSpec(deviceSpec, canSkipFields); return deviceSpec; }
JsonElement element = new JsonParser().parse(input); cleanJsonElement(element); JsonFormat.parser().ignoringUnknownFields().merge(element.toString(), builder); return (TYPE) builder.build(); } catch (Exception e) {
JsonFormat.parser().merge(jsonContents, builder);
private static BundleConfig parseBundleConfigJson(Path bundleConfigJsonPath) { BundleConfig.Builder bundleConfig = BundleConfig.newBuilder(); try (Reader bundleConfigReader = BufferedIo.reader(bundleConfigJsonPath)) { JsonFormat.parser().merge(bundleConfigReader, bundleConfig); } catch (InvalidProtocolBufferException e) { throw CommandExecutionException.builder() .withCause(e) .withMessage("The file '%s' is not a valid BundleConfig JSON file.", bundleConfigJsonPath) .build(); } catch (IOException e) { throw CommandExecutionException.builder() .withCause(e) .withMessage( "An error occurred while trying to read the file '%s'.", bundleConfigJsonPath) .build(); } return bundleConfig.build(); }
@Test public void deviceSpecFromPbJson() throws Exception { DeviceSpec.Builder expectedDeviceSpecBuilder = DeviceSpec.newBuilder(); try (Reader reader = TestData.openReader("testdata/device/pixel2_spec.json")) { JsonFormat.parser().merge(reader, expectedDeviceSpecBuilder); } DeviceSpec expectedDeviceSpec = expectedDeviceSpecBuilder.build(); BuildApksResult tableOfContentsProto = BuildApksResult.getDefaultInstance(); Path apksArchiveFile = createApksArchiveFile(tableOfContentsProto, tmpDir.resolve("bundle.apks")); Path deviceSpecFile = copyToTempDir("testdata/device/pixel2_spec.json"); ExtractApksCommand command = ExtractApksCommand.fromFlags( new FlagParser().parse("--device-spec=" + deviceSpecFile, "--apks=" + apksArchiveFile)); assertThat(command.getDeviceSpec()).isEqualTo(expectedDeviceSpec); }
private void mergeJsonProto(Path path, Message.Builder builder) { try (InputStream inputStream = Files.newInputStream(path)) { Reader reader = new InputStreamReader(inputStream); JsonFormat.parser().merge(reader, builder); } catch (FileNotFoundException e) { throw new SpecNotFound("Spec not found at filepath " + path.toString(), e); } catch (IOException e) { throw new SpecRetrievalException("Error parsing spec at filepath " + path.toString(), e); } }
@Test public void oneDevice_noDeviceId_works() throws Exception { DeviceSpec deviceSpec = mergeSpecs(sdkVersion(21), abis("x86_64", "x86"), locales("en-GB"), density(360)); Path outputPath = tmp.getRoot().toPath().resolve("device.json"); // We set up a fake ADB server because the real one won't work on Forge. GetDeviceSpecCommand command = GetDeviceSpecCommand.builder() .setAdbPath(adbPath) .setAdbServer(fakeServerOneDevice(deviceSpec)) .setOutputPath(outputPath) .build(); assertThat(command.execute()).isEqualTo(deviceSpec); try (Reader deviceSpecReader = BufferedIo.reader(outputPath)) { DeviceSpec.Builder writtenSpecBuilder = DeviceSpec.newBuilder(); JsonFormat.parser().merge(deviceSpecReader, writtenSpecBuilder); assertThat(writtenSpecBuilder.build()).isEqualTo(deviceSpec); } }
@Test @Theory public void checkFlagsConstructionWithDeviceSpec( @FromDataPoints("deviceSpecs") String deviceSpecPath) throws Exception { DeviceSpec.Builder expectedDeviceSpecBuilder = DeviceSpec.newBuilder(); try (Reader reader = TestData.openReader(deviceSpecPath)) { JsonFormat.parser().merge(reader, expectedDeviceSpecBuilder); } DeviceSpec expectedDeviceSpec = expectedDeviceSpecBuilder.build(); BuildApksResult tableOfContentsProto = BuildApksResult.getDefaultInstance(); Path apksArchiveFile = createApksArchiveFile(tableOfContentsProto, tmpDir.resolve("bundle.apks")); Path deviceSpecFile = copyToTempDir(deviceSpecPath); GetSizeCommand command = GetSizeCommand.fromFlags( new FlagParser() .parse( "get-size", "total", "--device-spec=" + deviceSpecFile, "--apks=" + apksArchiveFile)); assertThat(command.getDeviceSpec()).isEqualTo(expectedDeviceSpec); }
@ProcessElement public void processElement(ProcessContext context) { String line = context.element(); FeatureRow.Builder builder = FeatureRow.newBuilder(); try { JsonFormat.parser().merge(line, builder); context.output(builder.build()); } catch (InvalidProtocolBufferException e) { throw new RuntimeException(e); } } }));