From dbe5bcd0321bd1381eeb93d6b733a3886daeb063 Mon Sep 17 00:00:00 2001 From: Jens Deppe Date: Wed, 21 Mar 2012 06:25:27 -0700 Subject: [PATCH 1/2] Restructuring to provide per-serializer classloading. Changes: Moved various core classes into a 'core' package. These classes get loaded by the system classloader. Create a lib-core directory which contains the *cks* jars. These jars are also loaded by the system classloader. As part of the build, the serializer specific classes are moved to build/bytecode/main/sx in order to easily reference them via a path which doesn't contain any core classes. This path is passed in via the system property loader.classpath. Each serializer is initialized using its own classloader and this path. Each serializer classloader is also given the jars in lib. The classes in build/bytecode/main/sx and jars in lib cannot be referenced by the system classloader otherwise this mechanism breaks. Only those serializers which are referenced using -include are actually initialized. There is a mapping between serializer name and the implementing class (see BenchmarkBase.java). Unfortunately this serialzer name doesn't get used when initializing the actual class so the name in the class still needs to be maintained. For some serializers, one register invocation actually produces multiple tests, each with a different name. Need to figure out how to remove this redundancy. Only some of the serializers have been tested using this new structure. Scala doesn't work. --- tpc/Makefile | 21 ++- tpc/chart.rb | 66 ++++++++ tpc/{lib => lib-core}/cakoose-util.jar | Bin tpc/{lib => lib-core}/cks-core.jar | Bin tpc/{lib => lib-core}/cks-text-reader.jar | Bin tpc/{lib => lib-core}/cks-text-writer.jar | Bin tpc/{lib => lib-core}/cks-tool.jar | Bin tpc/run | 5 +- tpc/run-stream | 2 +- .../{serializers => core}/BenchmarkBase.java | 152 ++++++++++++++++-- tpc/src/core/BenchmarkRunner.java | 37 +++++ .../MediaItemBenchmark.java | 14 +- .../MediaStreamBenchmark.java | 19 ++- .../SimpleClassLoader.java | 2 +- tpc/src/{serializers => core}/TestCase.java | 4 +- .../{serializers => core}/TestCaseRunner.java | 4 +- tpc/src/{serializers => core}/TestGroup.java | 4 +- tpc/src/{serializers => core}/TestGroups.java | 2 +- .../{serializers => core}/Transformer.java | 2 +- .../{ => core}/serializers/Serializer.java | 2 +- tpc/src/data/media/Image.java | 12 +- tpc/src/data/media/Media.java | 28 ++-- tpc/src/data/media/MediaContent.java | 4 +- tpc/src/data/media/MediaTransformer.java | 2 +- tpc/src/serializers/AvroGeneric.java | 3 + tpc/src/serializers/AvroSpecific.java | 2 + tpc/src/serializers/BenchmarkRunner.java | 117 -------------- tpc/src/serializers/Hessian.java | 3 +- tpc/src/serializers/JavaBuiltIn.java | 2 + tpc/src/serializers/JavaManual.java | 2 + tpc/src/serializers/Kryo.java | 4 + tpc/src/serializers/MongoDB.java | 2 + tpc/src/serializers/MsgPack.java | 4 + tpc/src/serializers/Scala.scala | 3 + tpc/src/serializers/Thrift.java | 2 + tpc/src/serializers/Wobly.java | 1 + tpc/src/serializers/cks/CksBinary.java | 4 +- tpc/src/serializers/cks/CksText.java | 4 +- .../jackson/BaseJacksonDriver.java | 2 +- .../jackson/JacksonBsonDatabind.java | 3 +- .../jackson/JacksonBsonManual.java | 2 +- .../jackson/JacksonJsonAfterburner.java | 2 +- .../jackson/JacksonJsonDatabind.java | 3 +- .../JacksonJsonDatabindWithStrings.java | 2 +- .../jackson/JacksonJsonManual.java | 3 +- .../serializers/jackson/JacksonJsonTree.java | 3 +- .../jackson/JacksonJsonTreeWithStrings.java | 2 +- .../jackson/JacksonSmileAfterburner.java | 3 +- .../jackson/JacksonSmileDatabind.java | 3 +- .../jackson/JacksonSmileManual.java | 2 +- .../jackson/JacksonXmlDatabind.java | 2 +- .../serializers/json/FastJSONDatabind.java | 4 +- .../serializers/json/FlexjsonDatabind.java | 4 +- tpc/src/serializers/json/JsonArgoTree.java | 4 +- .../json/JsonDotOrgManualTree.java | 4 +- .../serializers/json/JsonGsonDatabind.java | 4 +- tpc/src/serializers/json/JsonGsonManual.java | 4 +- tpc/src/serializers/json/JsonGsonTree.java | 4 +- .../serializers/json/JsonLibJsonDatabind.java | 4 +- .../json/JsonPathDeserializerOnly.java | 4 +- .../json/JsonSimpleManualTree.java | 4 +- .../json/JsonSimpleWithContentHandler.java | 4 +- .../serializers/json/JsonSmartManualTree.java | 4 +- .../serializers/json/JsonSvensonDatabind.java | 4 +- tpc/src/serializers/json/JsonTwoLattes.java | 4 +- tpc/src/serializers/json/JsonijJpath.java | 4 +- .../serializers/json/JsonijManualTree.java | 4 +- .../protobuf/ActiveMQProtobuf.java | 4 +- tpc/src/serializers/protobuf/Protobuf.java | 4 +- .../serializers/protobuf/ProtobufJson.java | 4 +- .../serializers/protostuff/Protostuff.java | 4 +- .../protostuff/ProtostuffJson.java | 4 +- .../protostuff/ProtostuffSmile.java | 5 +- .../serializers/protostuff/ProtostuffXml.java | 4 +- .../wobly/compact/WoblyCompactUtils.java | 3 +- .../wobly/simple/WoblySimpleUtils.java | 2 +- tpc/src/serializers/xml/Jaxb.java | 4 +- tpc/src/serializers/xml/XmlJavolution.java | 4 +- tpc/src/serializers/xml/XmlStax.java | 4 +- tpc/src/serializers/xml/XmlXStream.java | 4 +- 80 files changed, 435 insertions(+), 246 deletions(-) create mode 100755 tpc/chart.rb rename tpc/{lib => lib-core}/cakoose-util.jar (100%) rename tpc/{lib => lib-core}/cks-core.jar (100%) rename tpc/{lib => lib-core}/cks-text-reader.jar (100%) rename tpc/{lib => lib-core}/cks-text-writer.jar (100%) rename tpc/{lib => lib-core}/cks-tool.jar (100%) rename tpc/src/{serializers => core}/BenchmarkBase.java (85%) create mode 100644 tpc/src/core/BenchmarkRunner.java rename tpc/src/{serializers => core}/MediaItemBenchmark.java (95%) rename tpc/src/{serializers => core}/MediaStreamBenchmark.java (93%) rename tpc/src/{serializers => core}/SimpleClassLoader.java (99%) rename tpc/src/{serializers => core}/TestCase.java (77%) rename tpc/src/{serializers => core}/TestCaseRunner.java (94%) rename tpc/src/{serializers => core}/TestGroup.java (97%) rename tpc/src/{serializers => core}/TestGroups.java (93%) rename tpc/src/{serializers => core}/Transformer.java (97%) rename tpc/src/{ => core}/serializers/Serializer.java (98%) delete mode 100644 tpc/src/serializers/BenchmarkRunner.java diff --git a/tpc/Makefile b/tpc/Makefile index 0a3bf0b..07f982a 100644 --- a/tpc/Makefile +++ b/tpc/Makefile @@ -14,7 +14,7 @@ # Need 'javac' version 5 or greater. JavaC ?= javac -JavaC_Opt := -Xlint:unchecked +JavaC_Opt := -Xlint:unchecked -g empty := space := $(empty) $(empty) @@ -28,7 +28,7 @@ protobuf_generator ?= protoc thrift_generator ?= thrift activemqprotobuf_cp := $(call mkcp,$(wildcard lib/activemq-*.jar)) activemqprotobuf_generator ?= java -cp "$(activemqprotobuf_cp)" org.apache.activemq.protobuf.compiler.AltJavaGenerator -cks_generator ?= java -jar lib/cks-tool.jar +cks_generator ?= java -cp lib-core/cks-core.jar:lib-core/cks-text-reader.jar:lib-core/cks-text-writer.jar -jar lib-core/cks-tool.jar avro_cp ?= $(call mkcp,$(wildcard lib/avro-*.jar lib/jackson-*.jar lib/jopt-simple-*.jar lib/velocity-*.jar lib/slf4j-*.jar)) avro_generator ?= java -cp "$(avro_cp)" org.apache.avro.tool.Main protostuff_compiler ?= $(wildcard lib/protostuff-compiler-*.jar) @@ -47,7 +47,7 @@ Generate_protostuff ?= y .PHONY: default compile .DELETE_ON_ERROR: -default: compile build/gen-cp build/lib-cp +default: compile build/gen-cp build/lib-cp build/lib-core-cp p1 := @ @@ -76,6 +76,9 @@ build/lib-cp: lib $(p2)mkdir -p build $(p1)echo "$(call mkcp,$(wildcard lib/*.jar))" > "$@" +build/lib-core-cp: build/lib-cp + $(p1)echo "$(call mkcp,$(wildcard lib-core/*.jar))" > "$@" + ########################################################################## # Generate and Compile Bindings # $(1): name, $(2): filename @@ -138,14 +141,14 @@ JavaSourceFiles_$(1) = $$(shell find $$(JavaSourceRoots_$(1)) -type f -name '*.j endif # Compile to bytecode -build/bytecode/gen/$(2).compile.$$(StampSuffix_$(1)): $$(JavaSourceRoots_$(1)) $$(JavaSourceDirs_$(1)) $$(JavaSourceFiles_$(1)) lib build/lib-cp $(wildcard lib/*.jar) +build/bytecode/gen/$(2).compile.$$(StampSuffix_$(1)): $$(JavaSourceRoots_$(1)) $$(JavaSourceDirs_$(1)) $$(JavaSourceFiles_$(1)) lib build/lib-cp build/lib-core-cp $(wildcard lib/*.jar) $(p2)[ ! -e build/bytecode/gen/$(2) ] || rm -r build/bytecode/gen/$(2) $(p2)mkdir -p build/bytecode/gen/$(2) $(p2)rm -f build/bytecode/gen/$(2).compile.* # Compile: $$(JavaSourceRoots_$(1)) $(p2)touch "$$@" $(p1)$(JavaC) $(JavaC_Opt) $$(JavaC_Opt_$(2)) -d build/bytecode/gen/$(2) \ - -classpath "$$(shell cat build/lib-cp)" \ + -classpath "$$(shell cat build/lib-cp) $$(shell cat build/lib-core-cp)" \ $$(shell find $$(JavaSourceRoots_$(1)) -type f -name '*.java') build/bytecode/gen/$(2).compile: build/bytecode/gen/$(2).compile.$$(StampSuffix_$(1)) @@ -165,7 +168,7 @@ JavaSourceDirs = $(shell find $(JavaSourceRoots) -type d) JavaSourceFiles = $(shell find $(JavaSourceRoots) -type f -name '*.java') ScalaSourceFiles = $(shell find $(JavaSourceRoots) -type f -name '*.scala') -build/bytecode/main.compile: $(JavaSourceRoots) $(JavaSourceDirs) $(JavaSourceFiles) $(ScalaSourceFiles) lib build/lib-cp build/gen-cp $(wildcard lib/*.jar) $(Schemas:%=build/bytecode/gen/%.compile) +build/bytecode/main.compile: $(JavaSourceRoots) $(JavaSourceDirs) $(JavaSourceFiles) $(ScalaSourceFiles) lib build/lib-cp build/lib-core-cp build/gen-cp $(wildcard lib/*.jar) $(Schemas:%=build/bytecode/gen/%.compile) $(p2)[ ! -e build/bytecode/main ] || rm -r build/bytecode/main $(p2)mkdir -p build/bytecode/main $(p2)touch "$@" @@ -180,11 +183,15 @@ else # Compile: $(JavaSourceRoots) [javac] $(p1)$(JavaC) $(JavaC_Opt) -d build/bytecode/main \ -deprecation \ - -classpath "$(call mkcp,build/bytecode/main $(shell cat build/lib-cp) $(shell cat build/gen-cp))" \ + -classpath "$(call mkcp,build/bytecode/main $(shell cat build/lib-cp) $(shell cat build/gen-cp) $(shell cat build/lib-core-cp))" \ $(JavaSourceFiles) endif compile: build/bytecode/main.compile + $(p2)rm -rf build/bytecode/main/sx + $(p2)mkdir -p build/bytecode/main/sx + $(p2)mv build/bytecode/main/serializers build/bytecode/main/sx/ + # $(p2)mv build/bytecode/main/ext build/bytecode/main/sx/ ########################################################################## # Clean diff --git a/tpc/chart.rb b/tpc/chart.rb new file mode 100755 index 0000000..9a543bb --- /dev/null +++ b/tpc/chart.rb @@ -0,0 +1,66 @@ +#!/usr/bin/env ruby + +# This script produces the equivalent charts using the data output by running +# the benchmark. Just add your output lines to the end of this file and run it. +# Take a look below for an example... + +require 'uri' + +TITLES = [ + "create (nanos)", + "ser (nanos)", + "ser+same (nanos)", + "deser (nanos)", + "deser+shal (nanos)", + "deser+deep (nanos)", + "total (nanos)", + "size (bytes)", + "size+dfl (bytes)" +] + +data = {} +names = [] + +name_str = "" +DATA.readlines.each do |x| + x.chomp! + next if x =~ /^#/ or x.empty? + y = x.split + name = y.shift + data[name] = y.collect { |v| v.to_i } + names << name + name_str = "#{name}|#{name_str}" +end + +name_str = name_str[0..-2] +name_str = URI.encode_www_form_component(name_str) + +idx = 0 +width = 500 +height = names.size * 20 + 30 +bar_thickness = 10 +bar_spacing = 10 +TITLES.each do |title| + max = 0 + + val_str = "" + names.each do |n| + max = data[n][idx] if data[n][idx] > max + val_str += "#{data[n][idx]}," + end + + val_str = val_str[0..-2] + scale = max * 1.1 + + puts "" + + idx += 1 +end + + +__END__ +# create ser +same deser +shal +deep total size +dfl +java-built-in 213 11785 10656 50080 50026 50766 62551 889 514 +bson/mongodb 138 7815 7829 30058 30484 30622 38437 495 278 +avro 173 4380 4158 2058 2815 3839 8219 221 133 +protobuf 450 4197 1874 1697 1742 2253 6449 239 149 diff --git a/tpc/lib/cakoose-util.jar b/tpc/lib-core/cakoose-util.jar similarity index 100% rename from tpc/lib/cakoose-util.jar rename to tpc/lib-core/cakoose-util.jar diff --git a/tpc/lib/cks-core.jar b/tpc/lib-core/cks-core.jar similarity index 100% rename from tpc/lib/cks-core.jar rename to tpc/lib-core/cks-core.jar diff --git a/tpc/lib/cks-text-reader.jar b/tpc/lib-core/cks-text-reader.jar similarity index 100% rename from tpc/lib/cks-text-reader.jar rename to tpc/lib-core/cks-text-reader.jar diff --git a/tpc/lib/cks-text-writer.jar b/tpc/lib-core/cks-text-writer.jar similarity index 100% rename from tpc/lib/cks-text-writer.jar rename to tpc/lib-core/cks-text-writer.jar diff --git a/tpc/lib/cks-tool.jar b/tpc/lib-core/cks-tool.jar similarity index 100% rename from tpc/lib/cks-tool.jar rename to tpc/lib-core/cks-tool.jar diff --git a/tpc/run b/tpc/run index dd5fa4c..03a6e26 100755 --- a/tpc/run +++ b/tpc/run @@ -6,8 +6,9 @@ case "`uname`" in CYGWIN*) path_sep=";" ;; esac -cp=build/bytecode/main$path_sep$(cat build/gen-cp)$path_sep$(cat build/lib-cp) -exec java -Xmx16m -server -cp "$cp" serializers.BenchmarkRunner "$@" +cp=build/bytecode/main$path_sep$(cat build/lib-core-cp) +loaderClasspath=build/bytecode/main/sx$path_sep$(cat build/lib-cp)$path_sep$(cat build/gen-cp) +exec java -Dgemfire.AutoSerializer.SAFE=true -Xmx16m -server -cp "$cp" -Dloader.classpath=${loaderClasspath} core.BenchmarkRunner "$@" # Values used during testing are small. Should probably use fairly # small heap to capture effects of memory allocation diff --git a/tpc/run-stream b/tpc/run-stream index 10fdc72..01b74dc 100755 --- a/tpc/run-stream +++ b/tpc/run-stream @@ -7,4 +7,4 @@ case "`uname`" in esac cp=build/bytecode/main$path_sep$(cat build/gen-cp)$path_sep$(cat build/lib-cp) -exec java -Xmx64m -server -cp "$cp" serializers.MediaStreamBenchmark "$@" +exec java -Xmx64m -server -cp "$cp" core.MediaStreamBenchmark "$@" diff --git a/tpc/src/serializers/BenchmarkBase.java b/tpc/src/core/BenchmarkBase.java similarity index 85% rename from tpc/src/serializers/BenchmarkBase.java rename to tpc/src/core/BenchmarkBase.java index 7238303..a410f84 100644 --- a/tpc/src/serializers/BenchmarkBase.java +++ b/tpc/src/core/BenchmarkBase.java @@ -1,6 +1,12 @@ -package serializers; +package core; + +import core.serializers.Serializer; import java.io.*; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; import java.net.URLEncoder; import java.util.*; import java.util.regex.Pattern; @@ -14,6 +20,8 @@ abstract class BenchmarkBase public final static int DEFAULT_ITERATIONS = 2000; public final static int DEFAULT_TRIALS = 20; + private List classPathUrls = new ArrayList(); + /** * Number of milliseconds to warm up for each operation type for each serializer. Let's * start with 3 seconds. @@ -28,6 +36,90 @@ abstract class BenchmarkBase HIDDEN.add("cks-text"); } + /* + * This map holds the mapping of the name of the test (benchmark) and the + * class which implements it. This is so that the tests can be instantiated + * within their own classloaders in order to provide some separation. + */ + protected static final Map testClassMap = + new HashMap(); + static { + // Binary Formats; language-specific ones + testClassMap.put("java-built-in", "serializers.JavaBuiltIn"); + + testClassMap.put("java-manual", "serializers.JavaManual"); + testClassMap.put("scala", "serializers.Scala"); +// // hessian, kryo and wobly are Java object serializations +// Hessian.register(groups); +// Kryo.register(groups); +// Wobly.register(groups); + +// Binary formats, generic: protobuf, thrift, avro, CKS, msgpack + testClassMap.put("protobuf", "serializers.protobuf.Protobuf"); +// ActiveMQProtobuf.register(groups); + testClassMap.put("protostuff", "serializers.protostuff.Protostuff"); + testClassMap.put("thrift", "serializers.Thrift"); + testClassMap.put("avro", "serializers.AvroSpecific"); + testClassMap.put("avro-generic", "serializers.AvroGeneric"); +// CksBinary.register(groups); +// MsgPack.register(groups); +// +// // JSON + testClassMap.put("json/jackson/manual", "serializers.jackson.JacksonJsonManual"); +// JacksonJsonDatabind.register(groups); +// JacksonJsonDatabindWithStrings.register(groups); +// JacksonJsonAfterburner.register(groups); // databind with bytecode generation (faster) +// JacksonJsonTree.register(groups); +// JacksonJsonTreeWithStrings.register(groups); +// JsonTwoLattes.register(groups); +// ProtostuffJson.register(groups); +//// too slow, why bother: +//// ProtobufJson.register(groups); +// JsonGsonManual.register(groups); +// JsonGsonTree.register(groups); +// JsonGsonDatabind.register(groups); +// JsonSvensonDatabind.register(groups); +// FlexjsonDatabind.register(groups); +// JsonLibJsonDatabind.register(groups); +// FastJSONDatabind.register(groups); +// JsonSimpleWithContentHandler.register(groups); +// JsonSimpleManualTree.register(groups); +// JsonSmartManualTree.register(groups); +// JsonDotOrgManualTree.register(groups); +// JsonijJpath.register(groups); +// JsonijManualTree.register(groups); +// JsonArgoTree.register(groups); +// JsonPathDeserializerOnly.register(groups); +// +// // Then JSON-like +// // CKS text is textual JSON-like format + testClassMap.put("cks-text", "serializers.cks.CksText"); + +// // then binary variants +// // Smile is 1-to-1 binary JSON serialization + testClassMap.put("smile/jackson/manual", "serializers.jackson.JacksonSmileManual"); +// JacksonSmileManual.register(groups); +// JacksonSmileDatabind.register(groups); +// JacksonSmileAfterburner.register(groups); // databind with bytecode generation (faster) +// ProtostuffSmile.register(groups); +// // BSON is JSON-like format with extended datatypes +// JacksonBsonManual.register(groups); +// JacksonBsonDatabind.register(groups); +// MongoDB.register(groups); + testClassMap.put("bson/mongodb", "serializers.MongoDB"); +// +// // XML-based formats. +// XmlStax.register(groups, true, true, true); // woodstox/aalto/fast-infoset +// XmlXStream.register(groups); +// JacksonXmlDatabind.register(groups); +// XmlJavolution.register(groups); + + // Gemfire +// testClassMap.put("gemfire/pdx-auto", "serializers.GemFirePdxAuto"); +// testClassMap.put("gemfire/pdx-serializer", "serializers.GemfirePdxSerializer"); +// testClassMap.put("gemfire/pdx-serializable", "serializers.GemfirePdxSerializable"); +// testClassMap.put("gemfire/data-serializable", "serializers.GemfireDataSerializable"); + } protected static final String ERROR_DIVIDER = "-------------------------------------------------------------------"; // ------------------------------------------------------------------------------------ @@ -67,7 +159,21 @@ protected final static class Params public String dataExtra; // from second part public String dataExtension; // from last part of file name } - + + protected BenchmarkBase() throws IOException { + String classPath = System.getProperty("loader.classpath"); + String pwd = new File(".").getCanonicalPath(); + for (String s : classPath.split(":")) { + if (! (s.endsWith(".jar") || s.endsWith(".war") || s.endsWith(".ear"))) { + s += "/"; + } + if (s.startsWith("/")) { + classPathUrls.add(new URL("file://" + s)); + } else { + classPathUrls.add(new URL("file://" + pwd + "/" + s)); + } + } + } // ------------------------------------------------------------------------------------ // Actual benchmark flow @@ -76,12 +182,14 @@ protected final static class Params protected void runBenchmark(String[] args, TestCase testCreate, TestCase testSerialize, TestCase testSerializeSameObject, - TestCase testDeserialize, TestCase testDeserializeAndCheck, TestCase testDeserializeAndCheckShallow) - { + TestCase testDeserialize, TestCase testDeserializeAndCheck, TestCase testDeserializeAndCheckShallow) throws Exception { Params params = new Params(); findParameters(args, params); TestGroups groups = new TestGroups(); - addTests(groups); + + // We always need cks + params.filterStrings.add("cks-text"); + addTests(groups, params.filterStrings); runTests(groups, params, testCreate, testSerialize, testSerializeSameObject, @@ -91,7 +199,7 @@ protected void runBenchmark(String[] args, /** * Method called to find add actual test codecs */ - protected abstract void addTests(TestGroups groups); + protected abstract void addTests(TestGroups groups, Set tests) throws Exception; protected void findParameters(String[] args, Params params) { @@ -574,12 +682,14 @@ protected static void addValue( protected void warmTest(TestCaseRunner runner, long warmupTime, TestCase test) throws Exception { - // Instead of fixed counts, let's try to prime by running for N seconds - long endTime = System.currentTimeMillis() + warmupTime; - do { - runner.run(test, 10); + if (warmupTime > 0) { + // Instead of fixed counts, let's try to prime by running for N seconds + long endTime = System.currentTimeMillis() + warmupTime; + do { + runner.run(test, 10); + } + while (System.currentTimeMillis() < endTime); } - while (System.currentTimeMillis() < endTime); } // ------------------------------------------------------------------------------------ @@ -741,7 +851,21 @@ protected static void printImage(Map map, measurements m) System.err.println("WARNING: Not enough room to fit all bars in chart."); } } - + + @SuppressWarnings("unchecked") + protected void register(String className, TestGroups groups) + throws Exception { + + ClassLoader loader = newLoader(); + Class c = loader.loadClass(className); + Method m = c.getDeclaredMethod("register", TestGroups.class); + m.invoke(null, groups); + } + + private ClassLoader newLoader() { + return new URLClassLoader(classPathUrls.toArray(new URL[]{}), + BenchmarkRunner.class.getClassLoader()); + } // ------------------------------------------------------------------------------------ // Static helper methods // ------------------------------------------------------------------------------------ @@ -767,13 +891,13 @@ protected static void doGc() try { Thread.sleep(50L); } catch (InterruptedException ie) { - System.err.println("Interrupted while sleeping in serializers.BenchmarkBase.doGc()"); + System.err.println("Interrupted while sleeping in core.BenchmarkBase.doGc()"); } System.gc(); try { // longer sleep afterwards (not needed by GC, but may help with scheduling) Thread.sleep(200L); } catch (InterruptedException ie) { - System.err.println("Interrupted while sleeping in serializers.BenchmarkBase.doGc()"); + System.err.println("Interrupted while sleeping in core.BenchmarkBase.doGc()"); } } diff --git a/tpc/src/core/BenchmarkRunner.java b/tpc/src/core/BenchmarkRunner.java new file mode 100644 index 0000000..566158e --- /dev/null +++ b/tpc/src/core/BenchmarkRunner.java @@ -0,0 +1,37 @@ +package core; + +import java.io.*; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.*; + +/** + * Full test of various codecs, using a single MediaItem + * as test data. + */ +public class BenchmarkRunner extends MediaItemBenchmark +{ + public BenchmarkRunner() throws IOException { + super(); + } + + public static void main(String[] args) throws Exception { + new BenchmarkRunner().runBenchmark(args); + } + + @Override + protected void addTests(TestGroups groups, Set tests) throws Exception { + + for (String t : tests) { + String clazz = testClassMap.get(t); + if (clazz != null) { + register(clazz, groups); + } else { + throw new IllegalArgumentException("Unknown test: " + t + + ". No corresponding class."); + } + } + } +} diff --git a/tpc/src/serializers/MediaItemBenchmark.java b/tpc/src/core/MediaItemBenchmark.java similarity index 95% rename from tpc/src/serializers/MediaItemBenchmark.java rename to tpc/src/core/MediaItemBenchmark.java index 303b014..122d980 100644 --- a/tpc/src/serializers/MediaItemBenchmark.java +++ b/tpc/src/core/MediaItemBenchmark.java @@ -1,5 +1,8 @@ -package serializers; +package core; +import core.serializers.Serializer; + +import java.io.IOException; import java.io.PrintWriter; /** @@ -9,9 +12,12 @@ */ public abstract class MediaItemBenchmark extends BenchmarkBase { - public MediaItemBenchmark() { } - - protected void runBenchmark(String[] args) { + + protected MediaItemBenchmark() throws IOException { + super(); + } + + protected void runBenchmark(String[] args) throws Exception { runBenchmark(args, Create, Serialize, SerializeSameObject, diff --git a/tpc/src/serializers/MediaStreamBenchmark.java b/tpc/src/core/MediaStreamBenchmark.java similarity index 93% rename from tpc/src/serializers/MediaStreamBenchmark.java rename to tpc/src/core/MediaStreamBenchmark.java index 64cef9c..436d269 100644 --- a/tpc/src/serializers/MediaStreamBenchmark.java +++ b/tpc/src/core/MediaStreamBenchmark.java @@ -1,9 +1,16 @@ -package serializers; +package core; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.PrintWriter; +import java.util.Set; +import serializers.AvroSpecific; +import serializers.Hessian; +import serializers.JavaManual; +import core.serializers.Serializer; +import serializers.Thrift; import serializers.cks.CksText; import serializers.jackson.*; import serializers.protobuf.Protobuf; @@ -15,11 +22,15 @@ */ public class MediaStreamBenchmark extends BenchmarkBase { - public static void main(String[] args) { + protected MediaStreamBenchmark() throws IOException { + super(); + } + + public static void main(String[] args) throws Exception { new MediaStreamBenchmark().runBenchmark(args); } - private void runBenchmark(String[] args) { + private void runBenchmark(String[] args) throws Exception { runBenchmark(args, Create, Serialize, SerializeSameObject, @@ -27,7 +38,7 @@ private void runBenchmark(String[] args) { } @Override - protected void addTests(TestGroups groups) + protected void addTests(TestGroups groups, Set tests) { // Binary Formats; language-specific ones JavaManual.register(groups); diff --git a/tpc/src/serializers/SimpleClassLoader.java b/tpc/src/core/SimpleClassLoader.java similarity index 99% rename from tpc/src/serializers/SimpleClassLoader.java rename to tpc/src/core/SimpleClassLoader.java index 31a03a8..9ae1443 100644 --- a/tpc/src/serializers/SimpleClassLoader.java +++ b/tpc/src/core/SimpleClassLoader.java @@ -1,4 +1,4 @@ -package serializers; +package core; import java.io.*; import java.util.*; diff --git a/tpc/src/serializers/TestCase.java b/tpc/src/core/TestCase.java similarity index 77% rename from tpc/src/serializers/TestCase.java rename to tpc/src/core/TestCase.java index a8f40bc..9cc2d70 100644 --- a/tpc/src/serializers/TestCase.java +++ b/tpc/src/core/TestCase.java @@ -1,4 +1,6 @@ -package serializers; +package core; + +import core.serializers.Serializer; public abstract class TestCase { diff --git a/tpc/src/serializers/TestCaseRunner.java b/tpc/src/core/TestCaseRunner.java similarity index 94% rename from tpc/src/serializers/TestCaseRunner.java rename to tpc/src/core/TestCaseRunner.java index bda0337..94d3ff4 100644 --- a/tpc/src/serializers/TestCaseRunner.java +++ b/tpc/src/core/TestCaseRunner.java @@ -1,4 +1,6 @@ -package serializers; +package core; + +import core.serializers.Serializer; public final class TestCaseRunner { diff --git a/tpc/src/serializers/TestGroup.java b/tpc/src/core/TestGroup.java similarity index 97% rename from tpc/src/serializers/TestGroup.java rename to tpc/src/core/TestGroup.java index 31c1792..1f34a1b 100644 --- a/tpc/src/serializers/TestGroup.java +++ b/tpc/src/core/TestGroup.java @@ -1,4 +1,6 @@ -package serializers; +package core; + +import core.serializers.Serializer; import java.util.ArrayList; import java.util.HashMap; diff --git a/tpc/src/serializers/TestGroups.java b/tpc/src/core/TestGroups.java similarity index 93% rename from tpc/src/serializers/TestGroups.java rename to tpc/src/core/TestGroups.java index 1bca4bc..a58954f 100644 --- a/tpc/src/serializers/TestGroups.java +++ b/tpc/src/core/TestGroups.java @@ -1,4 +1,4 @@ -package serializers; +package core; import java.util.HashMap; import java.util.Map; diff --git a/tpc/src/serializers/Transformer.java b/tpc/src/core/Transformer.java similarity index 97% rename from tpc/src/serializers/Transformer.java rename to tpc/src/core/Transformer.java index 7d3a239..0baf872 100644 --- a/tpc/src/serializers/Transformer.java +++ b/tpc/src/core/Transformer.java @@ -1,4 +1,4 @@ -package serializers; +package core; public abstract class Transformer { diff --git a/tpc/src/serializers/Serializer.java b/tpc/src/core/serializers/Serializer.java similarity index 98% rename from tpc/src/serializers/Serializer.java rename to tpc/src/core/serializers/Serializer.java index 1092a25..e10b5d0 100644 --- a/tpc/src/serializers/Serializer.java +++ b/tpc/src/core/serializers/Serializer.java @@ -1,4 +1,4 @@ -package serializers; +package core.serializers; import java.io.*; diff --git a/tpc/src/data/media/Image.java b/tpc/src/data/media/Image.java index 22a7323..ae9668d 100644 --- a/tpc/src/data/media/Image.java +++ b/tpc/src/data/media/Image.java @@ -1,5 +1,9 @@ package data.media; +import com.gemstone.gemfire.pdx.PdxReader; +import com.gemstone.gemfire.pdx.PdxSerializable; +import com.gemstone.gemfire.pdx.PdxWriter; + import static data.ReprUtil.repr; public class Image implements java.io.Serializable @@ -18,6 +22,10 @@ public enum Size { public Size size; public Image() {} + + public Image(Image i) { + this(i.uri, i.title, i.width, i.height, i.size); + } public Image (String uri, String title, int width, int height, Size size) { this.height = height; @@ -31,7 +39,7 @@ public Image (String uri, String title, int width, int height, Size size) { public boolean equals(Object o) { if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (o == null || ! getClass().isAssignableFrom(o.getClass())) return false; Image image = (Image) o; @@ -57,7 +65,7 @@ public int hashCode() public String toString () { StringBuilder sb = new StringBuilder(); - sb.append("[Image "); + sb.append("[" + this.getClass().getSimpleName() + ": "); sb.append("uri=").append(repr(uri)); sb.append(", title=").append(repr(title)); sb.append(", width=").append(width); diff --git a/tpc/src/data/media/Media.java b/tpc/src/data/media/Media.java index d3a59a3..142cad5 100644 --- a/tpc/src/data/media/Media.java +++ b/tpc/src/data/media/Media.java @@ -2,13 +2,17 @@ import java.util.List; +import com.gemstone.gemfire.pdx.PdxReader; +import com.gemstone.gemfire.pdx.PdxSerializable; +import com.gemstone.gemfire.pdx.PdxWriter; import org.codehaus.jackson.annotate.JsonIgnore; import jsonij.json.annotation.JSONIgnore; import static data.ReprUtil.repr; @SuppressWarnings("serial") -public class Media implements java.io.Serializable { +public class Media implements java.io.Serializable +{ public enum Player { JAVA, FLASH; @@ -41,18 +45,24 @@ public static Player find(String str) { public String copyright; // Can be unset. public Media() {} + + public Media(Media m) { + this(m.uri, m.title, m.width, m.height, m.format, m.duration, + m.size, m.bitrate, m.hasBitrate, m.persons, + m.player, m.copyright); + } public Media(String uri, String title, int width, int height, String format, long duration, long size, int bitrate, boolean hasBitrate, List persons, Player player, String copyright) { + this.width = width; + this.height = height; + this.duration = duration; + this.size = size; + this.bitrate = bitrate; + this.hasBitrate = hasBitrate; this.uri = uri; this.title = title; - this.width = width; - this.height = height; this.format = format; - this.duration = duration; - this.size = size; - this.bitrate = bitrate; - this.hasBitrate = hasBitrate; this.persons = persons; this.player = player; this.copyright = copyright; @@ -62,7 +72,7 @@ public Media(String uri, String title, int width, int height, String format, lon public boolean equals(Object o) { if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (o == null || ! getClass().isAssignableFrom(o.getClass())) return false; Media media = (Media) o; @@ -102,7 +112,7 @@ public int hashCode() public String toString () { StringBuilder sb = new StringBuilder(); - sb.append("[Media "); + sb.append("[" + this.getClass().getSimpleName() + ": "); sb.append("uri=").append(repr(uri)); sb.append(", title=").append(repr(title)); sb.append(", width=").append(width); diff --git a/tpc/src/data/media/MediaContent.java b/tpc/src/data/media/MediaContent.java index 93c1b62..147d95f 100644 --- a/tpc/src/data/media/MediaContent.java +++ b/tpc/src/data/media/MediaContent.java @@ -19,7 +19,7 @@ public MediaContent (Media media, List images) { public boolean equals(Object o) { if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (o == null || ! getClass().isAssignableFrom(o.getClass())) return false; MediaContent that = (MediaContent) o; @@ -39,7 +39,7 @@ public int hashCode() public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("[MediaContent: "); + sb.append("[" + this.getClass().getSimpleName() + ": "); sb.append("media=").append(media); sb.append(", images=").append(images); sb.append("]"); diff --git a/tpc/src/data/media/MediaTransformer.java b/tpc/src/data/media/MediaTransformer.java index b53e567..90fdb23 100644 --- a/tpc/src/data/media/MediaTransformer.java +++ b/tpc/src/data/media/MediaTransformer.java @@ -1,6 +1,6 @@ package data.media; -import serializers.Transformer; +import core.Transformer; public abstract class MediaTransformer extends Transformer { diff --git a/tpc/src/serializers/AvroGeneric.java b/tpc/src/serializers/AvroGeneric.java index 192393e..ee962a6 100644 --- a/tpc/src/serializers/AvroGeneric.java +++ b/tpc/src/serializers/AvroGeneric.java @@ -1,5 +1,8 @@ package serializers; +import core.TestGroups; +import core.Transformer; +import core.serializers.Serializer; import data.media.*; import org.apache.avro.Schema; diff --git a/tpc/src/serializers/AvroSpecific.java b/tpc/src/serializers/AvroSpecific.java index 9951504..ba5249d 100644 --- a/tpc/src/serializers/AvroSpecific.java +++ b/tpc/src/serializers/AvroSpecific.java @@ -1,5 +1,7 @@ package serializers; +import core.TestGroups; +import core.serializers.Serializer; import org.apache.avro.generic.GenericArray; import org.apache.avro.generic.GenericData; diff --git a/tpc/src/serializers/BenchmarkRunner.java b/tpc/src/serializers/BenchmarkRunner.java deleted file mode 100644 index 9552455..0000000 --- a/tpc/src/serializers/BenchmarkRunner.java +++ /dev/null @@ -1,117 +0,0 @@ -package serializers; - -import java.io.*; -import java.net.URLEncoder; -import java.util.*; -import java.util.regex.Pattern; -import java.util.zip.DeflaterOutputStream; - -import serializers.BenchmarkBase.Params; -import serializers.cks.CksBinary; -import serializers.cks.CksText; -import serializers.jackson.*; -import serializers.json.JsonGsonDatabind; -import serializers.json.JsonArgoTree; -import serializers.json.FastJSONDatabind; -import serializers.json.FlexjsonDatabind; -import serializers.json.JsonGsonManual; -import serializers.json.JsonGsonTree; -import serializers.json.JsonDotOrgManualTree; -import serializers.json.JsonLibJsonDatabind; -import serializers.json.JsonPathDeserializerOnly; -import serializers.json.JsonSimpleManualTree; -import serializers.json.JsonSimpleWithContentHandler; -import serializers.json.JsonSmartManualTree; -import serializers.json.JsonTwoLattes; -import serializers.json.JsonijJpath; -import serializers.json.JsonijManualTree; -import serializers.json.JsonSvensonDatabind; -import serializers.protobuf.ActiveMQProtobuf; -import serializers.protobuf.Protobuf; -import serializers.protostuff.Protostuff; -import serializers.protostuff.ProtostuffJson; -import serializers.protostuff.ProtostuffSmile; -import serializers.xml.XmlJavolution; -import serializers.xml.XmlStax; -import serializers.xml.XmlXStream; - -/** - * Full test of various codecs, using a single MediaItem - * as test data. - */ -public class BenchmarkRunner extends MediaItemBenchmark -{ - public static void main(String[] args) { - new BenchmarkRunner().runBenchmark(args); - } - - @Override - protected void addTests(TestGroups groups) - { - // Binary Formats; language-specific ones - JavaBuiltIn.register(groups); - JavaManual.register(groups); - Scala.register(groups); - // hessian, kryo and wobly are Java object serializations - Hessian.register(groups); - Kryo.register(groups); - Wobly.register(groups); - - // Binary formats, generic: protobuf, thrift, avro, CKS, msgpack - Protobuf.register(groups); - ActiveMQProtobuf.register(groups); - Protostuff.register(groups); - Thrift.register(groups); - AvroSpecific.register(groups); - AvroGeneric.register(groups); - CksBinary.register(groups); - MsgPack.register(groups); - - // JSON - JacksonJsonManual.register(groups); - JacksonJsonDatabind.register(groups); - JacksonJsonDatabindWithStrings.register(groups); - JacksonJsonAfterburner.register(groups); // databind with bytecode generation (faster) - JacksonJsonTree.register(groups); - JacksonJsonTreeWithStrings.register(groups); - JsonTwoLattes.register(groups); - ProtostuffJson.register(groups); -// too slow, why bother: -// ProtobufJson.register(groups); - JsonGsonManual.register(groups); - JsonGsonTree.register(groups); - JsonGsonDatabind.register(groups); - JsonSvensonDatabind.register(groups); - FlexjsonDatabind.register(groups); - JsonLibJsonDatabind.register(groups); - FastJSONDatabind.register(groups); - JsonSimpleWithContentHandler.register(groups); - JsonSimpleManualTree.register(groups); - JsonSmartManualTree.register(groups); - JsonDotOrgManualTree.register(groups); - JsonijJpath.register(groups); - JsonijManualTree.register(groups); - JsonArgoTree.register(groups); - JsonPathDeserializerOnly.register(groups); - - // Then JSON-like - // CKS text is textual JSON-like format - CksText.register(groups); - // then binary variants - // Smile is 1-to-1 binary JSON serialization - JacksonSmileManual.register(groups); - JacksonSmileDatabind.register(groups); - JacksonSmileAfterburner.register(groups); // databind with bytecode generation (faster) - ProtostuffSmile.register(groups); - // BSON is JSON-like format with extended datatypes - JacksonBsonManual.register(groups); - JacksonBsonDatabind.register(groups); - MongoDB.register(groups); - - // XML-based formats. - XmlStax.register(groups, true, true, true); // woodstox/aalto/fast-infoset - XmlXStream.register(groups); - JacksonXmlDatabind.register(groups); - XmlJavolution.register(groups); - } -} diff --git a/tpc/src/serializers/Hessian.java b/tpc/src/serializers/Hessian.java index b1455d3..cc95142 100644 --- a/tpc/src/serializers/Hessian.java +++ b/tpc/src/serializers/Hessian.java @@ -3,6 +3,7 @@ import java.io.*; import java.lang.reflect.Array; +import core.TestGroups; import data.media.MediaContent; import com.caucho.hessian.io.*; @@ -17,7 +18,7 @@ public static void register(TestGroups groups) // ------------------------------------------------------------ // Serializer (just one) - public final static class HessianSerializer extends Serializer + public final static class HessianSerializer extends core.serializers.Serializer { private final Class clz; diff --git a/tpc/src/serializers/JavaBuiltIn.java b/tpc/src/serializers/JavaBuiltIn.java index 851abbb..6613afe 100644 --- a/tpc/src/serializers/JavaBuiltIn.java +++ b/tpc/src/serializers/JavaBuiltIn.java @@ -8,6 +8,8 @@ import java.util.ArrayList; import java.util.Collections; +import core.TestGroups; +import core.serializers.Serializer; import data.media.Image; import data.media.Media; import data.media.MediaContent; diff --git a/tpc/src/serializers/JavaManual.java b/tpc/src/serializers/JavaManual.java index 5fde8b4..489eeac 100644 --- a/tpc/src/serializers/JavaManual.java +++ b/tpc/src/serializers/JavaManual.java @@ -9,6 +9,8 @@ import java.io.OutputStream; import java.util.ArrayList; +import core.TestGroups; +import core.serializers.Serializer; import data.media.*; public final class JavaManual diff --git a/tpc/src/serializers/Kryo.java b/tpc/src/serializers/Kryo.java index 35603cf..392fb66 100644 --- a/tpc/src/serializers/Kryo.java +++ b/tpc/src/serializers/Kryo.java @@ -13,6 +13,10 @@ import com.esotericsoftware.kryo.serialize.SimpleSerializer; import com.esotericsoftware.kryo.serialize.StringSerializer; +import core.TestGroup; +import core.TestGroups; +import core.Transformer; +import core.serializers.Serializer; import data.media.Image; import data.media.Image.Size; import data.media.Media; diff --git a/tpc/src/serializers/MongoDB.java b/tpc/src/serializers/MongoDB.java index 770f5cf..55be278 100644 --- a/tpc/src/serializers/MongoDB.java +++ b/tpc/src/serializers/MongoDB.java @@ -5,6 +5,8 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; +import core.serializers.Serializer; import org.bson.BSONDecoder; import org.bson.BSONEncoder; import org.bson.BSONObject; diff --git a/tpc/src/serializers/MsgPack.java b/tpc/src/serializers/MsgPack.java index f8feb55..4d9c3fe 100644 --- a/tpc/src/serializers/MsgPack.java +++ b/tpc/src/serializers/MsgPack.java @@ -3,6 +3,10 @@ import java.io.IOException; import java.util.List; +import core.TestGroup; +import core.TestGroups; +import core.Transformer; +import core.serializers.Serializer; import org.msgpack.MessagePack; import org.msgpack.packer.BufferPacker; import org.msgpack.packer.Packer; diff --git a/tpc/src/serializers/Scala.scala b/tpc/src/serializers/Scala.scala index b5da36a..64095be 100644 --- a/tpc/src/serializers/Scala.scala +++ b/tpc/src/serializers/Scala.scala @@ -8,6 +8,9 @@ import _root_.sbinary.{Format, Input, Output, DefaultProtocol} import _root_.serializers.{scala => sdata} +import _root_.core.TestGroups +import _root_.core.serializers.Serializer + object Scala { def register(groups: TestGroups) diff --git a/tpc/src/serializers/Thrift.java b/tpc/src/serializers/Thrift.java index 380e449..3eaaead 100644 --- a/tpc/src/serializers/Thrift.java +++ b/tpc/src/serializers/Thrift.java @@ -5,6 +5,8 @@ import java.util.Collections; import java.util.List; +import core.TestGroups; +import core.serializers.Serializer; import org.apache.thrift.TDeserializer; import org.apache.thrift.TSerializer; import org.apache.thrift.protocol.TBinaryProtocol; diff --git a/tpc/src/serializers/Wobly.java b/tpc/src/serializers/Wobly.java index 15b1e15..e254bb0 100644 --- a/tpc/src/serializers/Wobly.java +++ b/tpc/src/serializers/Wobly.java @@ -1,5 +1,6 @@ package serializers; +import core.TestGroups; import serializers.wobly.compact.WoblyCompactUtils; import serializers.wobly.simple.WoblySimpleUtils; diff --git a/tpc/src/serializers/cks/CksBinary.java b/tpc/src/serializers/cks/CksBinary.java index d58f688..5e0edfd 100644 --- a/tpc/src/serializers/cks/CksBinary.java +++ b/tpc/src/serializers/cks/CksBinary.java @@ -3,8 +3,8 @@ import java.io.InputStream; import java.io.OutputStream; -import serializers.Serializer; -import serializers.TestGroups; +import core.TestGroups; +import core.serializers.Serializer; import serializers.cks.media.MediaContent; public class CksBinary diff --git a/tpc/src/serializers/cks/CksText.java b/tpc/src/serializers/cks/CksText.java index 787046d..bfbf181 100644 --- a/tpc/src/serializers/cks/CksText.java +++ b/tpc/src/serializers/cks/CksText.java @@ -2,8 +2,8 @@ import java.io.*; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import serializers.cks.media.MediaContent; public class CksText diff --git a/tpc/src/serializers/jackson/BaseJacksonDriver.java b/tpc/src/serializers/jackson/BaseJacksonDriver.java index 8aab1eb..eb90271 100644 --- a/tpc/src/serializers/jackson/BaseJacksonDriver.java +++ b/tpc/src/serializers/jackson/BaseJacksonDriver.java @@ -4,7 +4,7 @@ import java.io.InputStream; import java.io.OutputStream; -import serializers.Serializer; +import core.serializers.Serializer; abstract class BaseJacksonDriver extends Serializer { diff --git a/tpc/src/serializers/jackson/JacksonBsonDatabind.java b/tpc/src/serializers/jackson/JacksonBsonDatabind.java index 0ccaed0..512280b 100644 --- a/tpc/src/serializers/jackson/JacksonBsonDatabind.java +++ b/tpc/src/serializers/jackson/JacksonBsonDatabind.java @@ -1,11 +1,12 @@ package serializers.jackson; +import core.TestGroups; import data.media.MediaContent; import org.codehaus.jackson.map.ObjectMapper; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import de.undercouch.bson4jackson.BsonFactory; /** diff --git a/tpc/src/serializers/jackson/JacksonBsonManual.java b/tpc/src/serializers/jackson/JacksonBsonManual.java index 75b8acd..26bfc14 100644 --- a/tpc/src/serializers/jackson/JacksonBsonManual.java +++ b/tpc/src/serializers/jackson/JacksonBsonManual.java @@ -1,7 +1,7 @@ package serializers.jackson; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import de.undercouch.bson4jackson.BsonFactory; public class JacksonBsonManual diff --git a/tpc/src/serializers/jackson/JacksonJsonAfterburner.java b/tpc/src/serializers/jackson/JacksonJsonAfterburner.java index d9a83fd..e650759 100644 --- a/tpc/src/serializers/jackson/JacksonJsonAfterburner.java +++ b/tpc/src/serializers/jackson/JacksonJsonAfterburner.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.module.afterburner.AfterburnerModule; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import data.media.MediaContent; public class JacksonJsonAfterburner diff --git a/tpc/src/serializers/jackson/JacksonJsonDatabind.java b/tpc/src/serializers/jackson/JacksonJsonDatabind.java index 836fc3d..6e7e01c 100644 --- a/tpc/src/serializers/jackson/JacksonJsonDatabind.java +++ b/tpc/src/serializers/jackson/JacksonJsonDatabind.java @@ -1,8 +1,9 @@ package serializers.jackson; +import core.TestGroups; import data.media.MediaContent; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import org.codehaus.jackson.map.*; diff --git a/tpc/src/serializers/jackson/JacksonJsonDatabindWithStrings.java b/tpc/src/serializers/jackson/JacksonJsonDatabindWithStrings.java index 9380529..144eac3 100644 --- a/tpc/src/serializers/jackson/JacksonJsonDatabindWithStrings.java +++ b/tpc/src/serializers/jackson/JacksonJsonDatabindWithStrings.java @@ -9,7 +9,7 @@ import org.codehaus.jackson.map.*; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; /** * This serializer uses Jackson in full automated data binding mode, which diff --git a/tpc/src/serializers/jackson/JacksonJsonManual.java b/tpc/src/serializers/jackson/JacksonJsonManual.java index 6bfcded..7b40166 100644 --- a/tpc/src/serializers/jackson/JacksonJsonManual.java +++ b/tpc/src/serializers/jackson/JacksonJsonManual.java @@ -1,5 +1,6 @@ package serializers.jackson; +import core.TestGroups; import data.media.*; import static data.media.FieldMapping.*; @@ -11,7 +12,7 @@ import org.codehaus.jackson.io.SerializedString; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; /** * "Hand-written" version of Jackson-based codec. Not optimized for compactness, diff --git a/tpc/src/serializers/jackson/JacksonJsonTree.java b/tpc/src/serializers/jackson/JacksonJsonTree.java index 7b8c2fe..dd65cef 100644 --- a/tpc/src/serializers/jackson/JacksonJsonTree.java +++ b/tpc/src/serializers/jackson/JacksonJsonTree.java @@ -4,13 +4,14 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; import org.codehaus.jackson.*; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.node.ArrayNode; import org.codehaus.jackson.node.ObjectNode; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import data.media.Image; import data.media.Media; diff --git a/tpc/src/serializers/jackson/JacksonJsonTreeWithStrings.java b/tpc/src/serializers/jackson/JacksonJsonTreeWithStrings.java index dbe7af8..27f6cd3 100644 --- a/tpc/src/serializers/jackson/JacksonJsonTreeWithStrings.java +++ b/tpc/src/serializers/jackson/JacksonJsonTreeWithStrings.java @@ -6,7 +6,7 @@ import org.codehaus.jackson.map.ObjectMapper; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import data.media.MediaContent; diff --git a/tpc/src/serializers/jackson/JacksonSmileAfterburner.java b/tpc/src/serializers/jackson/JacksonSmileAfterburner.java index 8ddc4af..73a3651 100644 --- a/tpc/src/serializers/jackson/JacksonSmileAfterburner.java +++ b/tpc/src/serializers/jackson/JacksonSmileAfterburner.java @@ -1,11 +1,12 @@ package serializers.jackson; +import core.TestGroups; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.smile.SmileFactory; import org.codehaus.jackson.smile.SmileGenerator; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import com.fasterxml.jackson.module.afterburner.AfterburnerModule; diff --git a/tpc/src/serializers/jackson/JacksonSmileDatabind.java b/tpc/src/serializers/jackson/JacksonSmileDatabind.java index f91cb2f..ef75192 100644 --- a/tpc/src/serializers/jackson/JacksonSmileDatabind.java +++ b/tpc/src/serializers/jackson/JacksonSmileDatabind.java @@ -1,12 +1,13 @@ package serializers.jackson; +import core.TestGroups; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig; import org.codehaus.jackson.smile.SmileFactory; import org.codehaus.jackson.smile.SmileGenerator; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import data.media.MediaContent; diff --git a/tpc/src/serializers/jackson/JacksonSmileManual.java b/tpc/src/serializers/jackson/JacksonSmileManual.java index c5ba6c5..61c8f82 100644 --- a/tpc/src/serializers/jackson/JacksonSmileManual.java +++ b/tpc/src/serializers/jackson/JacksonSmileManual.java @@ -4,7 +4,7 @@ import org.codehaus.jackson.smile.SmileGenerator; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; public class JacksonSmileManual { diff --git a/tpc/src/serializers/jackson/JacksonXmlDatabind.java b/tpc/src/serializers/jackson/JacksonXmlDatabind.java index 11b263f..9e0d503 100644 --- a/tpc/src/serializers/jackson/JacksonXmlDatabind.java +++ b/tpc/src/serializers/jackson/JacksonXmlDatabind.java @@ -1,7 +1,7 @@ package serializers.jackson; import serializers.JavaBuiltIn; -import serializers.TestGroups; +import core.TestGroups; import com.fasterxml.aalto.stax.InputFactoryImpl; import com.fasterxml.aalto.stax.OutputFactoryImpl; diff --git a/tpc/src/serializers/json/FastJSONDatabind.java b/tpc/src/serializers/json/FastJSONDatabind.java index e60ed2d..0a4c7b1 100644 --- a/tpc/src/serializers/json/FastJSONDatabind.java +++ b/tpc/src/serializers/json/FastJSONDatabind.java @@ -2,9 +2,9 @@ import java.io.*; +import core.TestGroups; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import data.media.MediaContent; diff --git a/tpc/src/serializers/json/FlexjsonDatabind.java b/tpc/src/serializers/json/FlexjsonDatabind.java index bf5c884..edd800f 100644 --- a/tpc/src/serializers/json/FlexjsonDatabind.java +++ b/tpc/src/serializers/json/FlexjsonDatabind.java @@ -3,8 +3,8 @@ import java.io.*; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import data.media.MediaContent; import flexjson.JSONDeserializer; diff --git a/tpc/src/serializers/json/JsonArgoTree.java b/tpc/src/serializers/json/JsonArgoTree.java index 07901b1..fefbb76 100644 --- a/tpc/src/serializers/json/JsonArgoTree.java +++ b/tpc/src/serializers/json/JsonArgoTree.java @@ -16,8 +16,8 @@ import java.util.Map; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import argo.format.CompactJsonFormatter; import argo.format.JsonFormatter; diff --git a/tpc/src/serializers/json/JsonDotOrgManualTree.java b/tpc/src/serializers/json/JsonDotOrgManualTree.java index 4221efa..aa5f103 100644 --- a/tpc/src/serializers/json/JsonDotOrgManualTree.java +++ b/tpc/src/serializers/json/JsonDotOrgManualTree.java @@ -4,13 +4,13 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; +import core.serializers.Serializer; import org.json.JSONArray; import org.json.JSONObject; import org.json.JSONWriter; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; import data.media.Image; import data.media.Media; diff --git a/tpc/src/serializers/json/JsonGsonDatabind.java b/tpc/src/serializers/json/JsonGsonDatabind.java index 3591d90..f57b663 100644 --- a/tpc/src/serializers/json/JsonGsonDatabind.java +++ b/tpc/src/serializers/json/JsonGsonDatabind.java @@ -2,9 +2,9 @@ import java.io.*; +import core.TestGroups; +import core.serializers.Serializer; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; import data.media.MediaContent; diff --git a/tpc/src/serializers/json/JsonGsonManual.java b/tpc/src/serializers/json/JsonGsonManual.java index bd2d27d..255dfb4 100644 --- a/tpc/src/serializers/json/JsonGsonManual.java +++ b/tpc/src/serializers/json/JsonGsonManual.java @@ -6,9 +6,9 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; +import core.serializers.Serializer; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; import com.google.gson.stream.*; diff --git a/tpc/src/serializers/json/JsonGsonTree.java b/tpc/src/serializers/json/JsonGsonTree.java index 21d3e42..99a1d64 100644 --- a/tpc/src/serializers/json/JsonGsonTree.java +++ b/tpc/src/serializers/json/JsonGsonTree.java @@ -6,8 +6,8 @@ import java.util.List; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/tpc/src/serializers/json/JsonLibJsonDatabind.java b/tpc/src/serializers/json/JsonLibJsonDatabind.java index cd71099..25ccf71 100644 --- a/tpc/src/serializers/json/JsonLibJsonDatabind.java +++ b/tpc/src/serializers/json/JsonLibJsonDatabind.java @@ -5,8 +5,8 @@ import java.util.List; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import data.media.Image; import data.media.Media; diff --git a/tpc/src/serializers/json/JsonPathDeserializerOnly.java b/tpc/src/serializers/json/JsonPathDeserializerOnly.java index 5e7c897..442cbb5 100644 --- a/tpc/src/serializers/json/JsonPathDeserializerOnly.java +++ b/tpc/src/serializers/json/JsonPathDeserializerOnly.java @@ -5,12 +5,12 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; +import core.serializers.Serializer; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; import com.jayway.jsonpath.JsonPath; diff --git a/tpc/src/serializers/json/JsonSimpleManualTree.java b/tpc/src/serializers/json/JsonSimpleManualTree.java index 52824cf..59ff586 100644 --- a/tpc/src/serializers/json/JsonSimpleManualTree.java +++ b/tpc/src/serializers/json/JsonSimpleManualTree.java @@ -11,8 +11,8 @@ import org.json.simple.parser.JSONParser; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import data.media.Image; import data.media.Media; diff --git a/tpc/src/serializers/json/JsonSimpleWithContentHandler.java b/tpc/src/serializers/json/JsonSimpleWithContentHandler.java index ac798c7..e098f5a 100644 --- a/tpc/src/serializers/json/JsonSimpleWithContentHandler.java +++ b/tpc/src/serializers/json/JsonSimpleWithContentHandler.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; +import core.serializers.Serializer; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.ContentHandler; @@ -13,8 +14,7 @@ import org.json.simple.parser.ParseException; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.TestGroups; import data.media.Image; import data.media.Media; diff --git a/tpc/src/serializers/json/JsonSmartManualTree.java b/tpc/src/serializers/json/JsonSmartManualTree.java index 46a3e31..898bf5b 100644 --- a/tpc/src/serializers/json/JsonSmartManualTree.java +++ b/tpc/src/serializers/json/JsonSmartManualTree.java @@ -6,9 +6,9 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; +import core.serializers.Serializer; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; import net.minidev.json.JSONArray; import net.minidev.json.JSONObject; diff --git a/tpc/src/serializers/json/JsonSvensonDatabind.java b/tpc/src/serializers/json/JsonSvensonDatabind.java index d3f850f..6e626e7 100644 --- a/tpc/src/serializers/json/JsonSvensonDatabind.java +++ b/tpc/src/serializers/json/JsonSvensonDatabind.java @@ -3,8 +3,8 @@ import java.io.*; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import data.media.Image; import data.media.MediaContent; diff --git a/tpc/src/serializers/json/JsonTwoLattes.java b/tpc/src/serializers/json/JsonTwoLattes.java index 1e4bb22..11652c8 100644 --- a/tpc/src/serializers/json/JsonTwoLattes.java +++ b/tpc/src/serializers/json/JsonTwoLattes.java @@ -3,8 +3,8 @@ import java.io.*; import java.nio.charset.Charset; -import serializers.Serializer; -import serializers.TestGroups; +import core.TestGroups; +import core.serializers.Serializer; import com.twolattes.json.Json; import com.twolattes.json.Marshaller; diff --git a/tpc/src/serializers/json/JsonijJpath.java b/tpc/src/serializers/json/JsonijJpath.java index 1564014..f141d90 100644 --- a/tpc/src/serializers/json/JsonijJpath.java +++ b/tpc/src/serializers/json/JsonijJpath.java @@ -5,9 +5,9 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import jsonij.json.JPath; import jsonij.json.JSON; diff --git a/tpc/src/serializers/json/JsonijManualTree.java b/tpc/src/serializers/json/JsonijManualTree.java index 9fafe7e..122af24 100644 --- a/tpc/src/serializers/json/JsonijManualTree.java +++ b/tpc/src/serializers/json/JsonijManualTree.java @@ -6,8 +6,8 @@ import java.util.List; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import jsonij.json.JSON; import jsonij.json.JSONMarshaler; diff --git a/tpc/src/serializers/protobuf/ActiveMQProtobuf.java b/tpc/src/serializers/protobuf/ActiveMQProtobuf.java index 6e84262..fe5f04e 100644 --- a/tpc/src/serializers/protobuf/ActiveMQProtobuf.java +++ b/tpc/src/serializers/protobuf/ActiveMQProtobuf.java @@ -4,10 +4,10 @@ import java.util.Collections; import java.util.List; +import core.serializers.Serializer; import data.media.MediaTransformer; -import serializers.Serializer; -import serializers.TestGroups; +import core.TestGroups; import serializers.activemq.media.MediaContentHolder.Image; import serializers.activemq.media.MediaContentHolder.Media; import serializers.activemq.media.MediaContentHolder.MediaContent; diff --git a/tpc/src/serializers/protobuf/Protobuf.java b/tpc/src/serializers/protobuf/Protobuf.java index 7418544..53bc2db 100644 --- a/tpc/src/serializers/protobuf/Protobuf.java +++ b/tpc/src/serializers/protobuf/Protobuf.java @@ -9,8 +9,8 @@ import data.media.MediaTransformer; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; /** *

diff --git a/tpc/src/serializers/protobuf/ProtobufJson.java b/tpc/src/serializers/protobuf/ProtobufJson.java index 91514b8..aa48970 100644 --- a/tpc/src/serializers/protobuf/ProtobufJson.java +++ b/tpc/src/serializers/protobuf/ProtobufJson.java @@ -1,7 +1,7 @@ package serializers.protobuf; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; +import core.TestGroups; import serializers.protobuf.media.MediaContentHolder.MediaContent; import java.io.IOException; diff --git a/tpc/src/serializers/protostuff/Protostuff.java b/tpc/src/serializers/protostuff/Protostuff.java index dc6555d..110d748 100644 --- a/tpc/src/serializers/protostuff/Protostuff.java +++ b/tpc/src/serializers/protostuff/Protostuff.java @@ -15,11 +15,11 @@ import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.runtime.RuntimeSchema; +import core.TestGroups; import data.media.MediaTransformer; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import serializers.protostuff.media.MediaContent; import serializers.protostuff.media.Media; import serializers.protostuff.media.Image; diff --git a/tpc/src/serializers/protostuff/ProtostuffJson.java b/tpc/src/serializers/protostuff/ProtostuffJson.java index 4eb77ee..a02b307 100644 --- a/tpc/src/serializers/protostuff/ProtostuffJson.java +++ b/tpc/src/serializers/protostuff/ProtostuffJson.java @@ -8,9 +8,9 @@ import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.runtime.RuntimeSchema; +import core.TestGroups; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import serializers.protostuff.media.MediaContent; /** diff --git a/tpc/src/serializers/protostuff/ProtostuffSmile.java b/tpc/src/serializers/protostuff/ProtostuffSmile.java index ae68f63..d268689 100644 --- a/tpc/src/serializers/protostuff/ProtostuffSmile.java +++ b/tpc/src/serializers/protostuff/ProtostuffSmile.java @@ -2,14 +2,13 @@ import static serializers.protostuff.Protostuff.MEDIA_CONTENT_SCHEMA; -import com.dyuproject.protostuff.LinkedBuffer; import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.SmileIOUtil; import com.dyuproject.protostuff.runtime.RuntimeSchema; +import core.TestGroups; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import serializers.protostuff.media.MediaContent; /** diff --git a/tpc/src/serializers/protostuff/ProtostuffXml.java b/tpc/src/serializers/protostuff/ProtostuffXml.java index 5fa0526..c17d766 100644 --- a/tpc/src/serializers/protostuff/ProtostuffXml.java +++ b/tpc/src/serializers/protostuff/ProtostuffXml.java @@ -6,9 +6,9 @@ import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.runtime.RuntimeSchema; +import core.TestGroups; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import serializers.protostuff.media.MediaContent; import serializers.protostuff.media.Media; import serializers.protostuff.media.Image; diff --git a/tpc/src/serializers/wobly/compact/WoblyCompactUtils.java b/tpc/src/serializers/wobly/compact/WoblyCompactUtils.java index d5f7146..1ddcae2 100644 --- a/tpc/src/serializers/wobly/compact/WoblyCompactUtils.java +++ b/tpc/src/serializers/wobly/compact/WoblyCompactUtils.java @@ -4,13 +4,12 @@ import java.util.Collections; import java.util.List; +import core.serializers.Serializer; import data.media.Image; import data.media.Media; import data.media.MediaContent; import data.media.MediaTransformer; -import serializers.Serializer; - public class WoblyCompactUtils { public static WMedia forwardMedia(Media a) { return new WMedia(a.uri, a.title, a.width, a.height, a.format, a.duration, a.size, a.bitrate, a.persons, a.player, a.copyright); diff --git a/tpc/src/serializers/wobly/simple/WoblySimpleUtils.java b/tpc/src/serializers/wobly/simple/WoblySimpleUtils.java index 36c8385..c1f8478 100644 --- a/tpc/src/serializers/wobly/simple/WoblySimpleUtils.java +++ b/tpc/src/serializers/wobly/simple/WoblySimpleUtils.java @@ -4,7 +4,7 @@ import java.util.Collections; import java.util.List; -import serializers.Serializer; +import core.serializers.Serializer; import data.media.Image; import data.media.Media; import data.media.MediaContent; diff --git a/tpc/src/serializers/xml/Jaxb.java b/tpc/src/serializers/xml/Jaxb.java index e92ea2d..52e89a8 100644 --- a/tpc/src/serializers/xml/Jaxb.java +++ b/tpc/src/serializers/xml/Jaxb.java @@ -5,9 +5,9 @@ import javax.xml.bind.*; import javax.xml.stream.*; +import core.TestGroups; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import data.media.MediaContent; diff --git a/tpc/src/serializers/xml/XmlJavolution.java b/tpc/src/serializers/xml/XmlJavolution.java index 11f4450..640d3ea 100644 --- a/tpc/src/serializers/xml/XmlJavolution.java +++ b/tpc/src/serializers/xml/XmlJavolution.java @@ -5,9 +5,9 @@ import java.util.ArrayList; import java.util.List; +import core.TestGroups; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.serializers.Serializer; import javolution.text.CharArray; import javolution.xml.XMLBinding; diff --git a/tpc/src/serializers/xml/XmlStax.java b/tpc/src/serializers/xml/XmlStax.java index 395c620..31b5fce 100644 --- a/tpc/src/serializers/xml/XmlStax.java +++ b/tpc/src/serializers/xml/XmlStax.java @@ -6,9 +6,9 @@ import javax.xml.stream.*; +import core.serializers.Serializer; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.TestGroups; import data.media.*; import static data.media.FieldMapping.*; diff --git a/tpc/src/serializers/xml/XmlXStream.java b/tpc/src/serializers/xml/XmlXStream.java index 8106701..79e4062 100644 --- a/tpc/src/serializers/xml/XmlXStream.java +++ b/tpc/src/serializers/xml/XmlXStream.java @@ -12,6 +12,7 @@ import com.thoughtworks.xstream.io.xml.StaxDriver; import com.thoughtworks.xstream.io.xml.XppDriver; +import core.serializers.Serializer; import data.media.Image; import data.media.Media; import data.media.MediaContent; @@ -22,8 +23,7 @@ import javax.xml.stream.XMLOutputFactory; import serializers.JavaBuiltIn; -import serializers.Serializer; -import serializers.TestGroups; +import core.TestGroups; import java.io.Writer; import java.util.ArrayList; From 6975beed8914551f8f58605bf82db45ba4eaef65 Mon Sep 17 00:00:00 2001 From: Jens Deppe Date: Wed, 21 Mar 2012 07:20:08 -0700 Subject: [PATCH 2/2] Fixed Scala. Silly me. --- tpc/src/core/BenchmarkBase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tpc/src/core/BenchmarkBase.java b/tpc/src/core/BenchmarkBase.java index a410f84..93bced8 100644 --- a/tpc/src/core/BenchmarkBase.java +++ b/tpc/src/core/BenchmarkBase.java @@ -48,7 +48,7 @@ abstract class BenchmarkBase testClassMap.put("java-built-in", "serializers.JavaBuiltIn"); testClassMap.put("java-manual", "serializers.JavaManual"); - testClassMap.put("scala", "serializers.Scala"); + testClassMap.put("scala/sbinary", "serializers.Scala"); // // hessian, kryo and wobly are Java object serializations // Hessian.register(groups); // Kryo.register(groups);