logstash-core-event 2.2.4.snapshot2-java → 2.3.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3922d39638e8b986dc53b640d0251e3d8db4f648
4
- data.tar.gz: c983cd79962457327fae39b5db02910e498fbe17
3
+ metadata.gz: 6bbec684d28183585d9145c139222af96c794d75
4
+ data.tar.gz: 913010a87e3327cf359c7e23f2cd19c9055e6b34
5
5
  SHA512:
6
- metadata.gz: 7679cfbe82ee091f537c1866d44223101589bc99daab58d57d2a42932f513bedb1cb15a861ccef3ccf3e9199765b09a3c1e5360df98222a10483a30b262c60f5
7
- data.tar.gz: 63b12d4ceac484ef1706cd0aaf6c4be5c3f288a4d66b6b8bef838f85bdf1e7afd77de38b12df8d3307024d48923134bc5bc9d88ea9d91bd656180bd11968752d
6
+ metadata.gz: 52bd3dca7ce0b16c85db04bc563ab4cdac1dbb1eb7d65fa4441028275303cf8f3b42ec05ebd91f921d8321ec260093a88f34039386a60637bae50e4ed46cf03c
7
+ data.tar.gz: 9729bca036041a20f7d117cf41d298a6c27643ce6012be56ca2644956a4c31a5404b507dfa0758b6909afc1deb4c08012fd9c2f20b6b9de184f07b1c11f1c30a
@@ -125,7 +125,9 @@ module LogStash
125
125
  when Hash
126
126
  LogStash::Json.dump(value)
127
127
  else
128
- value
128
+ # Make sure we dont work on the refence of the value
129
+ # The Java Event implementation was always returning a string.
130
+ "#{value}"
129
131
  end
130
132
  end
131
133
  end
@@ -24,13 +24,7 @@ module LogStash
24
24
  end
25
25
 
26
26
  def self.at(*args)
27
- epoch = args.first
28
- if epoch.is_a?(BigDecimal)
29
- # bug in JRuby prevents correcly parsing a BigDecimal fractional part, see https://github.com/elastic/logstash/issues/4565
30
- Timestamp.new(::Time.at(epoch.to_i, epoch.frac.to_f * 1000000))
31
- else
32
- Timestamp.new(::Time.at(*args))
33
- end
27
+ Timestamp.new(::Time.at(*args))
34
28
  end
35
29
 
36
30
  def self.parse(*args)
@@ -5,4 +5,4 @@
5
5
  # Note to authors: this should not include dashes because 'gem' barfs if
6
6
  # you include a dash in the version string.
7
7
 
8
- LOGSTASH_CORE_EVENT_VERSION = "2.2.4.snapshot2"
8
+ LOGSTASH_CORE_EVENT_VERSION = "2.3.0"
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
+ require "logstash/util/decorators"
3
4
  require "json"
4
5
 
5
6
  describe LogStash::Event do
@@ -49,9 +50,46 @@ describe LogStash::Event do
49
50
  subject["[baz]"] = nil
50
51
  expect(subject.to_hash).to include("baz" => nil)
51
52
  end
53
+
54
+ it "should set nil element within existing array value" do
55
+ subject["[foo]"] = ["bar", "baz"]
56
+
57
+ expect(subject["[foo][0]"] = nil).to eq(nil)
58
+ expect(subject["[foo]"]).to eq([nil, "baz"])
59
+ end
60
+
61
+ it "should set nil in first element within empty array" do
62
+ subject["[foo]"] = []
63
+
64
+ expect(subject["[foo][0]"] = nil).to eq(nil)
65
+ expect(subject["[foo]"]).to eq([nil])
66
+ end
67
+
68
+ it "should set nil in second element within empty array" do
69
+ subject["[foo]"] = []
70
+
71
+ expect(subject["[foo][1]"] = nil).to eq(nil)
72
+ expect(subject["[foo]"]).to eq([nil, nil])
73
+ end
52
74
  end
53
75
 
54
76
  context "#sprintf" do
77
+ it "should not return a String reference" do
78
+ data = "NOT-A-REFERENCE"
79
+ event = LogStash::Event.new({ "reference" => data })
80
+ LogStash::Util::Decorators.add_fields({"reference_test" => "%{reference}"}, event, "dummy-plugin")
81
+ data.downcase!
82
+ expect(event["reference_test"]).not_to eq(data)
83
+ end
84
+
85
+ it "should not return a Fixnum reference" do
86
+ data = 1
87
+ event = LogStash::Event.new({ "reference" => data })
88
+ LogStash::Util::Decorators.add_fields({"reference_test" => "%{reference}"}, event, "dummy-plugin")
89
+ data += 41
90
+ expect(event["reference_test"]).to eq("1")
91
+ end
92
+
55
93
  it "should report a unix timestamp for %{+%s}" do
56
94
  expect(subject.sprintf("%{+%s}")).to eq("1356998400")
57
95
  end
@@ -114,6 +152,39 @@ describe LogStash::Event do
114
152
  expect(subject.sprintf("%{type}%{message}|")).to eq("sprintfhello world|")
115
153
  end
116
154
 
155
+ it "should render nil array values as leading empty string" do
156
+ expect(subject["foo"] = [nil, "baz"]).to eq([nil, "baz"])
157
+
158
+ expect(subject["[foo][0]"]).to be_nil
159
+ expect(subject["[foo][1]"]).to eq("baz")
160
+
161
+ expect(subject.sprintf("%{[foo]}")).to eq(",baz")
162
+ end
163
+
164
+ it "should render nil array values as middle empty string" do
165
+ expect(subject["foo"] = ["bar", nil, "baz"]).to eq(["bar", nil, "baz"])
166
+
167
+ expect(subject["[foo][0]"]).to eq("bar")
168
+ expect(subject["[foo][1]"]).to be_nil
169
+ expect(subject["[foo][2]"]).to eq("baz")
170
+
171
+ expect(subject.sprintf("%{[foo]}")).to eq("bar,,baz")
172
+ end
173
+
174
+ it "should render nil array values as trailing empty string" do
175
+ expect(subject["foo"] = ["bar", nil]).to eq(["bar", nil])
176
+
177
+ expect(subject["[foo][0]"]).to eq("bar")
178
+ expect(subject["[foo][1]"]).to be_nil
179
+
180
+ expect(subject.sprintf("%{[foo]}")).to eq("bar,")
181
+ end
182
+
183
+ it "should render deep arrays with nil value" do
184
+ subject["[foo]"] = [[12, nil], 56]
185
+ expect(subject.sprintf("%{[foo]}")).to eq("12,,56")
186
+ end
187
+
117
188
  context "#encoding" do
118
189
  it "should return known patterns as UTF-8" do
119
190
  expect(subject.sprintf("%{message}").encoding).to eq(Encoding::UTF_8)
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
3
  require "logstash/timestamp"
4
+ require "bigdecimal"
4
5
 
5
6
  describe LogStash::Timestamp do
6
7
 
@@ -106,4 +107,64 @@ describe LogStash::Timestamp do
106
107
  expect(subject.to_f).to eq(now.to_f)
107
108
  end
108
109
  end
110
+
111
+ context "at" do
112
+ context "with integer epoch" do
113
+ it "should convert to correct date" do
114
+ expect(LogStash::Timestamp.at(946702800).to_iso8601).to eq("2000-01-01T05:00:00.000Z")
115
+ end
116
+
117
+ it "should return zero usec" do
118
+ expect(LogStash::Timestamp.at(946702800).usec).to eq(0)
119
+ end
120
+
121
+ it "should return prior to epoch date on negative input" do
122
+ expect(LogStash::Timestamp.at(-1).to_iso8601).to eq("1969-12-31T23:59:59.000Z")
123
+ end
124
+ end
125
+
126
+ context "with float epoch" do
127
+ it "should convert to correct date" do
128
+ expect(LogStash::Timestamp.at(946702800.123456.to_f).to_iso8601).to eq("2000-01-01T05:00:00.123Z")
129
+ end
130
+
131
+ it "should return usec with a minimum of millisec precision" do
132
+ expect(LogStash::Timestamp.at(946702800.123456.to_f).usec).to be_within(1000).of(123456)
133
+ end
134
+ end
135
+
136
+ context "with BigDecimal epoch" do
137
+ it "should convert to correct date" do
138
+ expect(LogStash::Timestamp.at(BigDecimal.new("946702800.123456")).to_iso8601).to eq("2000-01-01T05:00:00.123Z")
139
+ end
140
+
141
+ it "should return usec with a minimum of millisec precision" do
142
+ # since Java Timestamp relies on JodaTime which supports only milliseconds precision
143
+ # the usec method will only be precise up to milliseconds.
144
+ expect(LogStash::Timestamp.at(BigDecimal.new("946702800.123456")).usec).to be_within(1000).of(123456)
145
+ end
146
+ end
147
+
148
+ context "with illegal parameters" do
149
+ it "should raise exception on nil input" do
150
+ expect{LogStash::Timestamp.at(nil)}.to raise_error
151
+ end
152
+
153
+ it "should raise exception on invalid input type" do
154
+ expect{LogStash::Timestamp.at(:foo)}.to raise_error
155
+ end
156
+ end
157
+ end
158
+
159
+ context "usec" do
160
+ it "should support millisecond precision" do
161
+ expect(LogStash::Timestamp.at(946702800.123).usec).to eq(123000)
162
+ end
163
+
164
+ it "should try to preserve and report microseconds precision if possible" do
165
+ # since Java Timestamp relies on JodaTime which supports only milliseconds precision
166
+ # the usec method will only be precise up to milliseconds.
167
+ expect(LogStash::Timestamp.at(946702800.123456).usec).to be_within(1000).of(123456)
168
+ end
169
+ end
109
170
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-core-event
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4.snapshot2
4
+ version: 2.3.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2016-03-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: The core event component of logstash, the scalable log and event management tool
14
14
  email:
@@ -38,14 +38,14 @@ require_paths:
38
38
  - lib
39
39
  required_ruby_version: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">="
41
+ - - '>='
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
44
  required_rubygems_version: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">"
46
+ - - '>='
47
47
  - !ruby/object:Gem::Version
48
- version: 1.3.1
48
+ version: '0'
49
49
  requirements: []
50
50
  rubyforge_project:
51
51
  rubygems_version: 2.4.8