jrjackson 0.3.9-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
}
|