Java Examples for com.googlecode.protobuf.format.JsonFormat
The following java examples will help you to understand the usage of com.googlecode.protobuf.format.JsonFormat. These source code samples are taken from different open source projects.
Example 1
| Project: obiba-commons-master File: JsonIoUtil.java View source code |
public static void printCollection(Iterable<? extends Message> messages, Appendable appendable) throws IOException {
if (messages == null)
throw new IllegalArgumentException("messages cannot be null");
if (appendable == null)
throw new IllegalArgumentException("messages cannot be null");
// Start the Array
appendable.append('[');
boolean first = true;
for (Message ml : messages) {
// If this isn't the first item, prepend with a comma
if (!first)
appendable.append(',');
first = false;
JsonFormat.print(ml, appendable);
}
// Close the Array
appendable.append(']');
}Example 2
| Project: sloot-editor-master File: UploadToSpritesSlootController.java View source code |
private void exportSprites(IPath basePath, IResource resource) throws CoreException, IOException {
/* Export Entities */
if (isEntity(resource)) {
IFile file = (IFile) resource;
CGEntity cgEntity = CGEntity.parseFrom(file.getContents());
/* Rewrite fixtures/spritesheet/spritesheetJsonFile path */
CGEntity.Builder bldr = CGEntity.newBuilder(cgEntity);
for (CGEntityAnimation.Builder animBldr : bldr.getAnimationsBuilderList()) {
IPath trimmedBasePath = basePath.removeFirstSegments(basePath.segmentCount() - 1);
if (!animBldr.getSpritesheetFileBuilder().getResourceFile().isEmpty()) {
String lastSegmentSpritesheetFile = new Path(animBldr.getSpritesheetFileBuilder().getResourceFile()).lastSegment();
String rewrittenPath = trimmedBasePath.append(lastSegmentSpritesheetFile).toOSString();
animBldr.getSpritesheetFileBuilder().setResourceFile(rewrittenPath).setResourceFileAbsolute("");
}
if (!animBldr.getSpritesheetJsonFile().getResourceFile().isEmpty()) {
String lastSegmentSpritesheetJsonFile = new Path(animBldr.getSpritesheetJsonFileBuilder().getResourceFile()).lastSegment();
String rewrittenPath = trimmedBasePath.append(lastSegmentSpritesheetJsonFile).toOSString();
animBldr.getSpritesheetJsonFileBuilder().setResourceFile(rewrittenPath).setResourceFileAbsolute("");
}
/* For custom collision type */
if (animBldr.getCollisionType() == CGEntityCollisionType.CUSTOM) {
String lastSegment = new Path(animBldr.getFixtureFileBuilder().getResourceFile()).lastSegment();
String rewrittenPath = trimmedBasePath.append(lastSegment).toOSString();
animBldr.getFixtureFileBuilder().setResourceFile(rewrittenPath).setResourceFileAbsolute("");
}
}
CGEntity modifiedCGEntity = bldr.build();
/* Step 1 : Generate JSON file and write it to file */
String json = JsonFormat.printToString(modifiedCGEntity);
File outputFile = basePath.append(resource.getName()).addFileExtension("json").toFile();
FileUtils.writeByteArrayToFile(outputFile, json.getBytes());
/* Step 2 : Generate PNG preview file and write it to file */
// extract image from
Entity e = EntityAdapter.asEntity(cgEntity);
// unmodified information
Image i = EntitiesUtil.getDefaultFrame(e, 1f);
String imgOutputFilename = basePath.append(resource.getName()).addFileExtension("png").toOSString();
ImageLoader il = new ImageLoader();
il.data = new ImageData[] { i.getImageData() };
il.save(imgOutputFilename, SWT.IMAGE_PNG);
}
}Example 3
| Project: MSEC-master File: RequestDecoder.java View source code |
private RpcRequest deserializeHTTPPackage(String request) {
RpcRequest rpcRequest = new RpcRequest();
HttpRequestParser httpParser = new HttpRequestParser();
try {
httpParser.parseRequest(request);
} catch (IOException ex) {
log.error("HTTP Request parse failed." + ex.getMessage());
rpcRequest.setException(new IllegalArgumentException("Request decode error: HTTP Request parse failed." + ex.getMessage()));
return rpcRequest;
} catch (HttpFormatException ex) {
log.error("HTTP Request parse failed." + ex.getMessage());
rpcRequest.setException(new IllegalArgumentException("Request decode error: HTTP Request parse failed." + ex.getMessage()));
return rpcRequest;
}
rpcRequest.setHttpCgiName(httpParser.getCgiPath());
if (httpParser.getCgiPath().compareToIgnoreCase("/list") == 0) {
return rpcRequest;
}
if (httpParser.getCgiPath().compareToIgnoreCase("/invoke") != 0) {
log.error("HTTP cgi not found: " + httpParser.getCgiPath());
rpcRequest.setException(new IllegalArgumentException("HTTP cgi not found: " + httpParser.getURI()));
return rpcRequest;
}
String serviceMethodName = httpParser.getQueryString("methodName");
int pos = serviceMethodName.lastIndexOf('.');
if (pos == -1 || pos == 0 || pos == serviceMethodName.length() - 1) {
log.error("Invalid serviceMethodName (" + serviceMethodName + "). Must be in format like *.*");
rpcRequest.setException(new IllegalArgumentException("Invalid serviceMethodName (" + serviceMethodName + "). Must be in format like *.*"));
return rpcRequest;
}
String serviceName = serviceMethodName.substring(0, pos);
String methodName = serviceMethodName.substring(pos + 1);
String seq = httpParser.getQueryString("seq");
String param = httpParser.getQueryString("param");
if (param == null || param.isEmpty()) {
param = httpParser.getMessageBody();
}
try {
param = java.net.URLDecoder.decode(param, "UTF-8");
} catch (UnsupportedEncodingException e) {
param = "";
}
rpcRequest.setServiceName(serviceName);
rpcRequest.setMethodName(methodName);
if (seq == null || seq.isEmpty()) {
rpcRequest.setSeq(ServiceFactory.generateSequence());
} else {
rpcRequest.setSeq(Long.valueOf(seq).longValue());
}
log.info("In HTTP package service: " + serviceName + " method: " + methodName + " param: " + param);
rpcRequest.setFromModule("UnknownModule");
rpcRequest.setFlowid(rpcRequest.getSeq() ^ NettyCodecUtils.generateColorId(serviceName + methodName));
AccessMonitor.add("frm.rpc request incoming: " + methodName);
ServiceFactory.ServiceMethodEntry serviceMethodEntry = ServiceFactory.getServiceMethodEntry(serviceName, methodName);
if (serviceMethodEntry == null) {
log.error("No service method registered: " + rpcRequest.getServiceName() + "/" + rpcRequest.getMethodName());
rpcRequest.setException(new IllegalArgumentException("No service method registered: " + rpcRequest.getServiceName() + "/" + rpcRequest.getMethodName()));
return rpcRequest;
}
Message.Builder builder = serviceMethodEntry.getParamTypeBuilder();
try {
builder.clear();
JsonFormat.merge(param, builder);
} catch (JsonFormat.ParseException ex) {
log.error("Json parse failed." + ex.getMessage());
rpcRequest.setException(new IllegalArgumentException("Request decode error: Json parse failed." + ex.getMessage()));
return rpcRequest;
}
if (!builder.isInitialized()) {
log.error("Json to Protobuf failed: missing required fields");
rpcRequest.setException(new IllegalArgumentException("Json to Protobuf failed: missing required fields: " + builder.getInitializationErrorString()));
return rpcRequest;
}
rpcRequest.setParameter(builder.build());
log.info("RPC Request received. ServiceMethodName: " + rpcRequest.getServiceName() + "/" + rpcRequest.getMethodName() + "\tSeq: " + rpcRequest.getSeq() + "\tParameter: " + rpcRequest.getParameter());
return rpcRequest;
}Example 4
| Project: iis-master File: ImportInformationSpaceReducerTest.java View source code |
@Test
public void testReduceResultWithRelations() throws Exception {
// given
Configuration conf = setOutputDirs(new Configuration());
doReturn(conf).when(context).getConfiguration();
reducer.setup(context);
String resultId = "resultId";
String id = InfoSpaceConstants.ROW_PREFIX_RESULT + resultId;
Text key = new Text(id);
InfoSpaceRecord bodyRecord = new InfoSpaceRecord(new Text(Type.result.name()), new Text(OafBodyWithOrderedUpdates.BODY_QUALIFIER_NAME), new Text(JsonFormat.printToString(buildResultEntity(resultId))));
String updatedPublisher = "updated publisher";
InfoSpaceRecord updateRecord = new InfoSpaceRecord(new Text(Type.result.name()), new Text("update"), new Text(JsonFormat.printToString(buildResultEntity(resultId, updatedPublisher, false))));
String projectId = "projectId";
InfoSpaceRecord resProjRelRecord = new InfoSpaceRecord(new Text(reducer.resProjColumnFamily), new Text("resProjQualifier"), new Text(JsonFormat.printToString(buildRel(resultId, projectId))));
String dedupedId = "dedupedId";
InfoSpaceRecord dedupMappingRelRecord = new InfoSpaceRecord(new Text(reducer.dedupMappingColumnFamily), new Text("dedupQualifier"), new Text(JsonFormat.printToString(buildRel(resultId, dedupedId))));
List<InfoSpaceRecord> values = Lists.newArrayList(bodyRecord, updateRecord, resProjRelRecord, dedupMappingRelRecord);
// execute
reducer.reduce(key, values, context);
// assert
verify(context, never()).write(any(), any());
verify(multipleOutputs, times(3)).write(mosKeyCaptor.capture(), mosValueCaptor.capture());
// doc meta
assertEquals(conf.get(OUTPUT_NAME_DOCUMENT_META), mosKeyCaptor.getAllValues().get(0));
DocumentMetadata docMeta = (DocumentMetadata) mosValueCaptor.getAllValues().get(0).datum();
assertNotNull(docMeta);
assertEquals(resultId, docMeta.getId());
assertEquals(PUBLISHER_DEFAULT, docMeta.getPublisher());
// result project rel
assertEquals(conf.get(OUTPUT_NAME_DOCUMENT_PROJECT), mosKeyCaptor.getAllValues().get(1));
DocumentToProject docProjRel = (DocumentToProject) mosValueCaptor.getAllValues().get(1).datum();
assertNotNull(docProjRel);
assertEquals(resultId, docProjRel.getDocumentId());
assertEquals(projectId, docProjRel.getProjectId());
// dedup mapping rel
assertEquals(conf.get(OUTPUT_NAME_DEDUP_MAPPING), mosKeyCaptor.getAllValues().get(2));
IdentifierMapping dedupMappingRel = (IdentifierMapping) mosValueCaptor.getAllValues().get(2).datum();
assertNotNull(dedupMappingRel);
assertEquals(dedupedId, dedupMappingRel.getOriginalId());
assertEquals(resultId, dedupMappingRel.getNewId());
}Example 5
| Project: spring4-1-showcase-master File: ProtobufHttpMessageConverter.java View source code |
@Override
protected Message readInternal(Class<? extends Message> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
MediaType contentType = inputMessage.getHeaders().getContentType();
contentType = (contentType != null ? contentType : PROTOBUF);
Charset charset = getCharset(inputMessage.getHeaders());
InputStreamReader reader = new InputStreamReader(inputMessage.getBody(), charset);
try {
Message.Builder builder = getMessageBuilder(clazz);
if (MediaType.APPLICATION_JSON.isCompatibleWith(contentType)) {
JsonFormat.merge(reader, this.extensionRegistry, builder);
} else if (MediaType.TEXT_PLAIN.isCompatibleWith(contentType)) {
TextFormat.merge(reader, this.extensionRegistry, builder);
} else if (MediaType.APPLICATION_XML.isCompatibleWith(contentType)) {
XmlFormat.merge(reader, this.extensionRegistry, builder);
} else {
builder.mergeFrom(inputMessage.getBody(), this.extensionRegistry);
}
return builder.build();
} catch (Exception e) {
throw new HttpMessageNotReadableException("Could not read Protobuf message: " + e.getMessage(), e);
}
}Example 6
| Project: ja-micro-master File: ProtobufUtil.java View source code |
public static <TYPE extends Message> TYPE jsonToProtobuf(String request, Class<TYPE> messageClass) {
if (request == null) {
return null;
} else if ("{}".equals(request)) {
try {
TYPE.Builder builder = getBuilder(messageClass);
return (TYPE) builder.getDefaultInstanceForType();
} catch (Exception e) {
logger.warn("Error building protobuf object of type {} from json: {}", messageClass.getName(), request);
}
}
try {
TYPE.Builder builder = getBuilder(messageClass);
JsonFormat formatter = new JsonFormat();
try {
ByteArrayInputStream stream = new ByteArrayInputStream(request.getBytes());
formatter.merge(stream, builder);
} catch (IOException e) {
logger.warn("Error building protobuf object of type {} from json: {}", messageClass.getName(), request);
}
return (TYPE) builder.build();
} catch (Exception e) {
throw new RuntimeException("Error deserializing json to protobuf", e);
}
}Example 7
| Project: config-protobuf-spring-java-master File: AbstractConfigProvider.java View source code |
protected Message.Builder populateJsonMessage(Message.Builder builder, InputStream data) throws Exception {
JsonFormat.merge(new InputStreamReader(data), builder);
return builder;
}