use of com.esotericsoftware.kryo.io.Output in project sling by apache.
the class KryoContentSerializer method exportToStream.
@Override
public void exportToStream(ResourceResolver resourceResolver, DistributionExportOptions options, OutputStream outputStream) throws DistributionException {
DistributionExportFilter filter = options.getFilter();
Kryo kryo = new Kryo();
kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
kryo.addDefaultSerializer(Resource.class, new ResourceSerializer(filter.getPropertyFilter()));
kryo.addDefaultSerializer(InputStream.class, new InputStreamSerializer());
Output output = new Output(outputStream);
LinkedList<Resource> resources = new LinkedList<Resource>();
for (DistributionExportFilter.TreeFilter nodeFilter : filter.getNodeFilters()) {
Resource resource = resourceResolver.getResource(nodeFilter.getPath());
if (resource != null) {
addResource(nodeFilter, resources, resource);
}
}
kryo.writeObject(output, resources);
output.flush();
}
use of com.esotericsoftware.kryo.io.Output in project gatk by broadinstitute.
the class PSTreeUnitTest method testSerialize.
@Test
public void testSerialize() throws Exception {
final PSTree tree = new PSTree("1");
tree.addNode("2", "n2", "1", 0, "none");
tree.addNode("3", "n3", "1", 0, "none");
tree.addNode("4", "n4", "2", 0, "none");
try {
final File tempFile = createTempFile("test", ".dat");
final Kryo kryo = new Kryo();
kryo.setReferences(false);
Output output = new Output(new FileOutputStream(tempFile));
kryo.writeObject(output, tree);
output.close();
final Input input = new Input(new FileInputStream(tempFile));
final PSTree tree_in = kryo.readObject(input, PSTree.class);
Assert.assertEquals(tree_in, tree);
} catch (FileNotFoundException e) {
throw new IOException("Error with Kryo IO", e);
}
}
use of com.esotericsoftware.kryo.io.Output in project gatk by broadinstitute.
the class AlignedAssemblyUnitTest method testAlignedAssemblySerialization.
@Test(dataProvider = "AlignedAssemblySerializationTest", groups = "sv")
public void testAlignedAssemblySerialization(final Integer assemblyID, final AlignedAssembly expectedAssembly) {
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final Output out = new Output(bos);
final Kryo kryo = new Kryo();
kryo.writeClassAndObject(out, expectedAssembly);
out.flush();
final ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
final Input in = new Input(bis);
@SuppressWarnings("unchecked") final AlignedAssembly roundTrip = (AlignedAssembly) kryo.readClassAndObject(in);
Assert.assertEquals(roundTrip, expectedAssembly);
}
use of com.esotericsoftware.kryo.io.Output in project gatk by broadinstitute.
the class ChimericAlignmentUnitTest method testSerialization.
private static void testSerialization(final AlignedAssembly.AlignmentInterval region1, final AlignedAssembly.AlignmentInterval region2) {
final ChimericAlignment chimericAlignment = new ChimericAlignment(region1, region2, Collections.emptyList(), "dummyName");
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final Output out = new Output(bos);
final Kryo kryo = new Kryo();
kryo.writeClassAndObject(out, chimericAlignment);
out.flush();
final ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
final Input in = new Input(bis);
@SuppressWarnings("unchecked") final ChimericAlignment roundTrip = (ChimericAlignment) kryo.readClassAndObject(in);
Assert.assertEquals(roundTrip, chimericAlignment);
Assert.assertEquals(roundTrip.hashCode(), chimericAlignment.hashCode());
}
use of com.esotericsoftware.kryo.io.Output in project gatk by broadinstitute.
the class PSUtils method writeKryoTwo.
/**
* Writes two objects using Kryo to specified local file path.
* NOTE: using setReferences(false), which must also be set when reading the file. Does not work with nested
* objects that reference its parent.
*/
public static void writeKryoTwo(final String filePath, final Object obj1, final Object obj2) {
try {
final Kryo kryo = new Kryo();
kryo.setReferences(false);
Output output = new Output(new FileOutputStream(filePath));
kryo.writeClassAndObject(output, obj1);
kryo.writeClassAndObject(output, obj2);
output.close();
} catch (final FileNotFoundException e) {
throw new UserException.CouldNotCreateOutputFile("Could not serialize objects to file", e);
}
}
Aggregations