jrjackson 0.3.9-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.__jrubyrc +433 -0
- data/.gitignore +10 -0
- data/.mvn/extensions.xml +8 -0
- data/Gemfile +10 -0
- data/Mavenfile +32 -0
- data/README.md +150 -0
- data/Rakefile +10 -0
- data/alt_bench.rb +46 -0
- data/changelog.md +131 -0
- data/jrjackson.gemspec +32 -0
- data/lib/com/fasterxml/jackson/core/jackson-annotations/2.7.1/jackson-annotations-2.7.1.jar +0 -0
- data/lib/com/fasterxml/jackson/core/jackson-core/2.7.1/jackson-core-2.7.1.jar +0 -0
- data/lib/com/fasterxml/jackson/core/jackson-databind/2.7.1/jackson-databind-2.7.1.jar +0 -0
- data/lib/com/fasterxml/jackson/module/jackson-module-afterburner/2.6.3/jackson-module-afterburner-2.6.3.jar +0 -0
- data/lib/com/fasterxml/jackson/module/jackson-module-afterburner/2.7.1/jackson-module-afterburner-2.7.1.jar +0 -0
- data/lib/jrjackson.rb +2 -0
- data/lib/jrjackson/build_info.rb +15 -0
- data/lib/jrjackson/jars/jrjackson-1.2.18.jar +0 -0
- data/lib/jrjackson/jars/jrjackson-1.2.7.jar +0 -0
- data/lib/jrjackson/jrjackson.rb +94 -0
- data/lib/jrjackson_jars.rb +7 -0
- data/lib/require_relative_patch.rb +6 -0
- data/pom.xml +193 -0
- data/profiling/profiled.rb +15 -0
- data/run_all_individual_bench.sh +25 -0
- data/run_jruby_individual_bench.sh +20 -0
- data/run_mri_individual_bench.sh +7 -0
- data/src/main/java/com/jrjackson/IParseHandler.java +53 -0
- data/src/main/java/com/jrjackson/JavaBigDecimalValueConverter.java +17 -0
- data/src/main/java/com/jrjackson/JavaBigIntValueConverter.java +17 -0
- data/src/main/java/com/jrjackson/JavaConverter.java +10 -0
- data/src/main/java/com/jrjackson/JavaFloatValueConverter.java +16 -0
- data/src/main/java/com/jrjackson/JavaHandler.java +118 -0
- data/src/main/java/com/jrjackson/JavaLongValueConverter.java +16 -0
- data/src/main/java/com/jrjackson/JjParse.java +147 -0
- data/src/main/java/com/jrjackson/JrJacksonBase.java +152 -0
- data/src/main/java/com/jrjackson/JrJacksonJava.java +81 -0
- data/src/main/java/com/jrjackson/JrJacksonRaw.java +108 -0
- data/src/main/java/com/jrjackson/JrJacksonRuby.java +89 -0
- data/src/main/java/com/jrjackson/JrJacksonSaj.java +26 -0
- data/src/main/java/com/jrjackson/JrJacksonSch.java +25 -0
- data/src/main/java/com/jrjackson/JrJacksonService.java +38 -0
- data/src/main/java/com/jrjackson/JrParse.java +149 -0
- data/src/main/java/com/jrjackson/ParseError.java +16 -0
- data/src/main/java/com/jrjackson/RubyAnySerializer.java +254 -0
- data/src/main/java/com/jrjackson/RubyBigDecimalValueConverter.java +18 -0
- data/src/main/java/com/jrjackson/RubyBigIntValueConverter.java +21 -0
- data/src/main/java/com/jrjackson/RubyConverter.java +12 -0
- data/src/main/java/com/jrjackson/RubyDateFormat.java +34 -0
- data/src/main/java/com/jrjackson/RubyFloatValueConverter.java +18 -0
- data/src/main/java/com/jrjackson/RubyHandler.java +119 -0
- data/src/main/java/com/jrjackson/RubyIntValueConverter.java +18 -0
- data/src/main/java/com/jrjackson/RubyJacksonModule.java +72 -0
- data/src/main/java/com/jrjackson/RubyKeyConverter.java +12 -0
- data/src/main/java/com/jrjackson/RubyNameConverter.java +9 -0
- data/src/main/java/com/jrjackson/RubyObjectDeserializer.java +182 -0
- data/src/main/java/com/jrjackson/RubyStringConverter.java +18 -0
- data/src/main/java/com/jrjackson/RubyStringKeyConverter.java +15 -0
- data/src/main/java/com/jrjackson/RubyStringNameConverter.java +12 -0
- data/src/main/java/com/jrjackson/RubySymbolKeyConverter.java +15 -0
- data/src/main/java/com/jrjackson/RubySymbolNameConverter.java +12 -0
- data/src/main/java/com/jrjackson/RubyUtils.java +150 -0
- data/src/main/java/com/jrjackson/SajParse.java +169 -0
- data/src/main/java/com/jrjackson/SchParse.java +209 -0
- data/src/main/java/com/jrjackson/StreamParse.java +66 -0
- data/test/jrjackson_test.rb +533 -0
- metadata +162 -0
Binary file
|
Binary file
|
@@ -0,0 +1,94 @@
|
|
1
|
+
unless RUBY_PLATFORM =~ /java/
|
2
|
+
puts "This library is only compatible with a java-based ruby environment like JRuby."
|
3
|
+
exit 255
|
4
|
+
end
|
5
|
+
|
6
|
+
require "jrjackson_jars"
|
7
|
+
|
8
|
+
require_relative "jars/jrjackson-1.2.18.jar"
|
9
|
+
|
10
|
+
require 'com/jrjackson/jr_jackson'
|
11
|
+
require 'bigdecimal'
|
12
|
+
|
13
|
+
module JrJackson
|
14
|
+
module Json
|
15
|
+
class << self
|
16
|
+
TIME_REGEX = %r(\A(\d{4}-\d\d-\d\d|(\w{3}\s){2}\d\d)\s\d\d:\d\d:\d\d)
|
17
|
+
|
18
|
+
def sj_load(handler, json_source, options = nil)
|
19
|
+
JrJackson::Saj.parse(handler, json_source, options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def sc_load(handler, json_source, options = nil)
|
23
|
+
JrJackson::Sch.parse(handler, json_source, options)
|
24
|
+
end
|
25
|
+
|
26
|
+
def load_ruby(json_source, options = nil)
|
27
|
+
JrJackson::Ruby.parse(json_source, options)
|
28
|
+
end
|
29
|
+
|
30
|
+
def load_java(json_source, options = nil)
|
31
|
+
JrJackson::Java.parse(json_source, options)
|
32
|
+
end
|
33
|
+
|
34
|
+
def load(json_source, options = nil)
|
35
|
+
if json_source.is_a?(String) && is_time_string?(json_source)
|
36
|
+
return JrJackson::Raw.parse_raw("\"#{json_source}\"")
|
37
|
+
end
|
38
|
+
|
39
|
+
if options && !options.empty?
|
40
|
+
if options.size == 1 && !!options[:raw]
|
41
|
+
return JrJackson::Java.parse_raw(json_source, options)
|
42
|
+
end
|
43
|
+
if options.size == 1 && !!options[:symbolize_keys]
|
44
|
+
return JrJackson::Ruby.parse_sym(json_source, options)
|
45
|
+
end
|
46
|
+
if options.size == 2 && !!options[:raw] && !!options[:use_bigdecimal]
|
47
|
+
return JrJackson::Java.parse(json_source, options)
|
48
|
+
end
|
49
|
+
# JrJackson::Raw.parse(json_source, options)
|
50
|
+
JrJackson::Ruby.parse(json_source, options)
|
51
|
+
else
|
52
|
+
# JrJackson::Raw.parse_str(json_source)
|
53
|
+
JrJackson::Ruby.parse(json_source, nil)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def dump(object, options = {})
|
58
|
+
case object
|
59
|
+
when Hash, Array, String, ::Java::JavaUtil::Map, ::Java::JavaUtil::List
|
60
|
+
JrJackson::Base.generate(object, options)
|
61
|
+
when true, false
|
62
|
+
object.to_s
|
63
|
+
when nil
|
64
|
+
'null'
|
65
|
+
else
|
66
|
+
if object.respond_to?(:to_json_data)
|
67
|
+
JrJackson::Base.generate(object, options)
|
68
|
+
elsif object.respond_to?(:to_json)
|
69
|
+
object.to_json
|
70
|
+
elsif object.respond_to?(:to_s)
|
71
|
+
object.to_s
|
72
|
+
else
|
73
|
+
object
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
alias :sc_parse :sc_load
|
79
|
+
alias :sj_parse :sj_load
|
80
|
+
alias :parse :load
|
81
|
+
alias :parse_ruby :load_ruby
|
82
|
+
alias :parse_java :load_java
|
83
|
+
alias :generate :dump
|
84
|
+
|
85
|
+
private
|
86
|
+
|
87
|
+
def is_time_string?(json_source)
|
88
|
+
json_source =~ TIME_REGEX
|
89
|
+
rescue => e
|
90
|
+
raise JrJackson::ParseError, e.message
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# this is a generated file, to avoid over-writing it just delete this comment
|
2
|
+
require 'jar_dependencies'
|
3
|
+
|
4
|
+
require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.1' )
|
5
|
+
require_jar( 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.7.1' )
|
6
|
+
require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.1' )
|
7
|
+
require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.1' )
|
data/pom.xml
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!--
|
3
|
+
|
4
|
+
|
5
|
+
DO NOT MODIFIY - GENERATED CODE
|
6
|
+
|
7
|
+
|
8
|
+
-->
|
9
|
+
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
10
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
11
|
+
<modelVersion>4.0.0</modelVersion>
|
12
|
+
<groupId>com.jrjackson.jruby</groupId>
|
13
|
+
<artifactId>jrjackson</artifactId>
|
14
|
+
<version>1.2.18</version>
|
15
|
+
<name>A JRuby wrapper for the java jackson json processor jar</name>
|
16
|
+
<description>A mostly native JRuby wrapper for the java jackson json processor jar</description>
|
17
|
+
<url>http://github.com/guyboertje/jrjackson</url>
|
18
|
+
<licenses>
|
19
|
+
<license>
|
20
|
+
<name>Apache License 2.0</name>
|
21
|
+
</license>
|
22
|
+
</licenses>
|
23
|
+
<developers>
|
24
|
+
<developer>
|
25
|
+
<name>Guy Boertje</name>
|
26
|
+
<email>guyboertje@gmail.com</email>
|
27
|
+
</developer>
|
28
|
+
</developers>
|
29
|
+
<scm>
|
30
|
+
<connection>https://github.com/guyboertje/jrjackson.git</connection>
|
31
|
+
<url>http://github.com/guyboertje/jrjackson</url>
|
32
|
+
</scm>
|
33
|
+
<properties>
|
34
|
+
<netbeans.hint.jdkPlatform>JDK_1.8</netbeans.hint.jdkPlatform>
|
35
|
+
<polyglot.dump.pom>pom.xml</polyglot.dump.pom>
|
36
|
+
<mavengem.wagon.version>0.2.0</mavengem.wagon.version>
|
37
|
+
<jruby.plugins.version>1.1.4</jruby.plugins.version>
|
38
|
+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
39
|
+
</properties>
|
40
|
+
<dependencies>
|
41
|
+
<dependency>
|
42
|
+
<groupId>rubygems</groupId>
|
43
|
+
<artifactId>bundler</artifactId>
|
44
|
+
<version>[1.10,1.99999]</version>
|
45
|
+
<type>gem</type>
|
46
|
+
<scope>test</scope>
|
47
|
+
</dependency>
|
48
|
+
<dependency>
|
49
|
+
<groupId>rubygems</groupId>
|
50
|
+
<artifactId>jar-dependencies</artifactId>
|
51
|
+
<version>[0.3.2,2.0)</version>
|
52
|
+
<type>gem</type>
|
53
|
+
<scope>test</scope>
|
54
|
+
</dependency>
|
55
|
+
<dependency>
|
56
|
+
<groupId>rubygems</groupId>
|
57
|
+
<artifactId>ruby-maven</artifactId>
|
58
|
+
<version>[3.3.10,3.3.99999]</version>
|
59
|
+
<type>gem</type>
|
60
|
+
<scope>test</scope>
|
61
|
+
</dependency>
|
62
|
+
<dependency>
|
63
|
+
<groupId>com.fasterxml.jackson.core</groupId>
|
64
|
+
<artifactId>jackson-core</artifactId>
|
65
|
+
<version>2.7.1</version>
|
66
|
+
</dependency>
|
67
|
+
<dependency>
|
68
|
+
<groupId>com.fasterxml.jackson.core</groupId>
|
69
|
+
<artifactId>jackson-annotations</artifactId>
|
70
|
+
<version>2.7.1</version>
|
71
|
+
</dependency>
|
72
|
+
<dependency>
|
73
|
+
<groupId>com.fasterxml.jackson.core</groupId>
|
74
|
+
<artifactId>jackson-databind</artifactId>
|
75
|
+
<version>2.7.1</version>
|
76
|
+
</dependency>
|
77
|
+
<dependency>
|
78
|
+
<groupId>com.fasterxml.jackson.module</groupId>
|
79
|
+
<artifactId>jackson-module-afterburner</artifactId>
|
80
|
+
<version>2.7.1</version>
|
81
|
+
</dependency>
|
82
|
+
<dependency>
|
83
|
+
<groupId>junit</groupId>
|
84
|
+
<artifactId>junit</artifactId>
|
85
|
+
<version>4.11</version>
|
86
|
+
<scope>test</scope>
|
87
|
+
</dependency>
|
88
|
+
<dependency>
|
89
|
+
<groupId>org.jruby</groupId>
|
90
|
+
<artifactId>jruby</artifactId>
|
91
|
+
<version>9.0.5.0</version>
|
92
|
+
<scope>provided</scope>
|
93
|
+
</dependency>
|
94
|
+
</dependencies>
|
95
|
+
<repositories>
|
96
|
+
<repository>
|
97
|
+
<id>mavengems</id>
|
98
|
+
<url>mavengem:https://rubygems.org</url>
|
99
|
+
</repository>
|
100
|
+
</repositories>
|
101
|
+
<build>
|
102
|
+
<extensions>
|
103
|
+
<extension>
|
104
|
+
<groupId>org.torquebox.mojo</groupId>
|
105
|
+
<artifactId>mavengem-wagon</artifactId>
|
106
|
+
<version>${mavengem.wagon.version}</version>
|
107
|
+
</extension>
|
108
|
+
<extension>
|
109
|
+
<groupId>de.saumya.mojo</groupId>
|
110
|
+
<artifactId>gem-with-jar-extension</artifactId>
|
111
|
+
<version>${jruby.plugins.version}</version>
|
112
|
+
</extension>
|
113
|
+
</extensions>
|
114
|
+
<directory>${basedir}/pkg</directory>
|
115
|
+
<plugins>
|
116
|
+
<plugin>
|
117
|
+
<artifactId>maven-jar-plugin</artifactId>
|
118
|
+
<version>2.4</version>
|
119
|
+
<executions>
|
120
|
+
<execution>
|
121
|
+
<phase>prepare-package</phase>
|
122
|
+
<goals>
|
123
|
+
<goal>jar</goal>
|
124
|
+
</goals>
|
125
|
+
</execution>
|
126
|
+
</executions>
|
127
|
+
<configuration>
|
128
|
+
<outputDirectory>lib/jrjackson/jars</outputDirectory>
|
129
|
+
<finalName>jrjackson-1.2.18</finalName>
|
130
|
+
</configuration>
|
131
|
+
</plugin>
|
132
|
+
<plugin>
|
133
|
+
<artifactId>maven-clean-plugin</artifactId>
|
134
|
+
<version>2.4</version>
|
135
|
+
<configuration>
|
136
|
+
<filesets>
|
137
|
+
<fileset>
|
138
|
+
<directory>lib/jrjackson/jars</directory>
|
139
|
+
<includes>
|
140
|
+
<include>jrjackson-1.2.18.jar</include>
|
141
|
+
<include>*/**/*.jar</include>
|
142
|
+
</includes>
|
143
|
+
</fileset>
|
144
|
+
</filesets>
|
145
|
+
</configuration>
|
146
|
+
</plugin>
|
147
|
+
<plugin>
|
148
|
+
<groupId>de.saumya.mojo</groupId>
|
149
|
+
<artifactId>gem-maven-plugin</artifactId>
|
150
|
+
<version>${jruby.plugins.version}</version>
|
151
|
+
<configuration>
|
152
|
+
<gemspec>jrjackson.gemspec</gemspec>
|
153
|
+
</configuration>
|
154
|
+
</plugin>
|
155
|
+
<plugin>
|
156
|
+
<artifactId>maven-compiler-plugin</artifactId>
|
157
|
+
<version>3.1</version>
|
158
|
+
<configuration>
|
159
|
+
<source>1.7</source>
|
160
|
+
<target>1.7</target>
|
161
|
+
<showDeprecateion>false</showDeprecateion>
|
162
|
+
<showWarnings>false</showWarnings>
|
163
|
+
<executable>${JAVA_HOME}/bin/javac</executable>
|
164
|
+
<fork>true</fork>
|
165
|
+
</configuration>
|
166
|
+
</plugin>
|
167
|
+
<plugin>
|
168
|
+
<artifactId>maven-surefire-plugin</artifactId>
|
169
|
+
<version>2.17</version>
|
170
|
+
<configuration>
|
171
|
+
<skipTests>true</skipTests>
|
172
|
+
</configuration>
|
173
|
+
</plugin>
|
174
|
+
<plugin>
|
175
|
+
<groupId>org.torquebox.mojo</groupId>
|
176
|
+
<artifactId>jruby9-exec-maven-plugin</artifactId>
|
177
|
+
<version>0.3.1</version>
|
178
|
+
<executions>
|
179
|
+
<execution>
|
180
|
+
<id>vendor-jars</id>
|
181
|
+
<phase>prepare-package</phase>
|
182
|
+
<goals>
|
183
|
+
<goal>exec</goal>
|
184
|
+
</goals>
|
185
|
+
<configuration>
|
186
|
+
<script>require 'jars/installer';Jars::Installer.vendor_jars!</script>
|
187
|
+
</configuration>
|
188
|
+
</execution>
|
189
|
+
</executions>
|
190
|
+
</plugin>
|
191
|
+
</plugins>
|
192
|
+
</build>
|
193
|
+
</project>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'jruby-prof'
|
3
|
+
require 'jrjackson_r'
|
4
|
+
|
5
|
+
js = %({"one":1,"two":"deux","three":[333.333,66.666]})
|
6
|
+
|
7
|
+
result = JRubyProf.profile do
|
8
|
+
JrJackson::Json.parse js
|
9
|
+
end
|
10
|
+
|
11
|
+
JRubyProf.print_flat_text result, "flat.txt"
|
12
|
+
JRubyProf.print_graph_text result, "graph.txt"
|
13
|
+
JRubyProf.print_graph_html result, "graph.html"
|
14
|
+
JRubyProf.print_call_tree result, "call_tree.txt"
|
15
|
+
JRubyProf.print_tree_html result, "call_tree.html"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
chruby-exec ruby-2.2.2 -- ruby benchmarking/individual/json-mri-sourced.rb
|
4
|
+
chruby-exec ruby-2.2.2 -- ruby benchmarking/individual/oj-mri-sourced.rb
|
5
|
+
|
6
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/gson-jr-sourced.rb
|
7
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/json-jr-sourced.rb
|
8
|
+
|
9
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/string-jr-sourced.rb
|
10
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/str-bd-jr-sourced.rb
|
11
|
+
|
12
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/symbol-jr-sourced.rb
|
13
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/sym-bd-jr-sourced.rb
|
14
|
+
|
15
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/raw-jr-sourced.rb
|
16
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/raw-bd-jr-sourced.rb
|
17
|
+
|
18
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/sj-jr-sourced.rb
|
19
|
+
|
20
|
+
chruby-exec ruby-2.2.2 -- ruby benchmarking/individual/json-gen-mri-sourced.rb
|
21
|
+
chruby-exec ruby-2.2.2 -- ruby benchmarking/individual/oj-gen-mri-sourced.rb
|
22
|
+
|
23
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/json-gen-jr-sourced.rb
|
24
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/gson-gen-jr-sourced.rb
|
25
|
+
chruby-exec jruby-9.0.0.0.rc1 -- ruby -J-Xmn512m -J-Xms2048m -J-Xmx2048m benchmarking/individual/raw-gen-jr-sourced.rb
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/json-gen-jr-sourced.rb
|
4
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/gson-gen-jr-sourced.rb
|
5
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/raw-gen-jr-sourced.rb
|
6
|
+
|
7
|
+
# jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/gson-jr-sourced.rb
|
8
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/json-jr-sourced.rb
|
9
|
+
|
10
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/string-jr-sourced.rb
|
11
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/str-bd-jr-sourced.rb
|
12
|
+
|
13
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/symbol-jr-sourced.rb
|
14
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/sym-bd-jr-sourced.rb
|
15
|
+
|
16
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/raw-jr-sourced.rb
|
17
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/raw-bd-jr-sourced.rb
|
18
|
+
|
19
|
+
jruby -J-Xmn1024m -J-Xms4096m -J-Xmx4096m -S ./benchmarking/individual/sj-jr-sourced.rb
|
20
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
/*
|
2
|
+
* To change this license header, choose License Headers in Project Properties.
|
3
|
+
* To change this template file, choose Tools | Templates
|
4
|
+
* and open the template in the editor.
|
5
|
+
*/
|
6
|
+
package com.jrjackson;
|
7
|
+
|
8
|
+
import com.fasterxml.jackson.core.JsonParser;
|
9
|
+
import java.io.IOException;
|
10
|
+
|
11
|
+
/**
|
12
|
+
*
|
13
|
+
* @author guy
|
14
|
+
* @param <T>
|
15
|
+
* @param <U>
|
16
|
+
* @param <V>
|
17
|
+
*/
|
18
|
+
public interface IParseHandler<T, U, V> {
|
19
|
+
|
20
|
+
void addValue(T value);
|
21
|
+
|
22
|
+
void arrayAppend(U array, T value);
|
23
|
+
|
24
|
+
void arrayEnd();
|
25
|
+
|
26
|
+
T arrayStart();
|
27
|
+
|
28
|
+
T falseValue();
|
29
|
+
|
30
|
+
T getResult();
|
31
|
+
|
32
|
+
void hashEnd();
|
33
|
+
|
34
|
+
T hashKey(String key);
|
35
|
+
|
36
|
+
void hashSet(V hash, T key, T value);
|
37
|
+
|
38
|
+
T hashStart();
|
39
|
+
|
40
|
+
void raiseError(String e);
|
41
|
+
|
42
|
+
T treatFloat(JsonParser jp) throws IOException;
|
43
|
+
|
44
|
+
T treatInt(JsonParser jp) throws IOException;
|
45
|
+
|
46
|
+
T treatNull();
|
47
|
+
|
48
|
+
T treatString(JsonParser jp) throws IOException;
|
49
|
+
|
50
|
+
T trueValue();
|
51
|
+
|
52
|
+
|
53
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
package com.jrjackson;
|
2
|
+
|
3
|
+
import com.fasterxml.jackson.core.JsonParser;
|
4
|
+
import java.io.IOException;
|
5
|
+
import java.math.BigDecimal;
|
6
|
+
|
7
|
+
/**
|
8
|
+
*
|
9
|
+
* @author Guy Boertje
|
10
|
+
*/
|
11
|
+
public class JavaBigDecimalValueConverter implements JavaConverter {
|
12
|
+
|
13
|
+
@Override
|
14
|
+
public BigDecimal convert(JsonParser jp) throws IOException {
|
15
|
+
return jp.getDecimalValue();
|
16
|
+
}
|
17
|
+
}
|