Skip to content

Commit f860943

Browse files
authored
Adds dependency to Derby (without renaming) and also add derbytools dependency (#160)
* Removed maybe a duplication of derby jdbc classes * Use local Derby driver in tests without using the support gem jdbc-derby which bundled old Derby version * Test, shouldn't need to refer the driver class which is already in classpath * Extracted Derby version in a file so that's defined in single point both for Gradle script and Ruby specs * Removed commented code (Dervy driver class reference in Ruby specs)
1 parent 68ec235 commit f860943

File tree

7 files changed

+55
-15
lines changed

7 files changed

+55
-15
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 5.4.9
2+
- Fix Derby missed driver classes when built locally for version 10.15 [#160](https://github.com/logstash-plugins/logstash-integration-jdbc/pull/160)
3+
-
14
## 5.4.8
25
- Update Derby with locally built 10.15.2.1 version [#155](https://github.com/logstash-plugins/logstash-integration-jdbc/pull/155)
36

build.gradle

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ apply plugin: 'java'
1111
apply plugin: 'idea'
1212
apply plugin: 'maven-publish'
1313

14-
def DERBY_VERSION = '10.15.2.1'
15-
def DERBY_MINOR = '10.15'
16-
long DERBY_REVISION = 1905585
17-
1814
buildscript {
1915
ext {
2016
svnkitVersion = '1.10.11'
@@ -28,6 +24,22 @@ buildscript {
2824
}
2925
}
3026

27+
def loadDerbyVersion() {
28+
Map version = [:]
29+
new File("$projectDir/derby_version.txt").eachLine {line ->
30+
def key = line.split('=')[0]
31+
def value = line.split('=')[1]
32+
version[key] = value
33+
}
34+
return version
35+
}
36+
37+
def version = loadDerbyVersion()
38+
39+
def DERBY_VERSION = version['DERBY_VERSION']
40+
def DERBY_MINOR = version['DERBY_MINOR']
41+
long DERBY_REVISION = 1905585
42+
3143
class SvnCheckout extends DefaultTask {
3244

3345
@Input
@@ -68,7 +80,12 @@ repositories {
6880

6981

7082
dependencies {
71-
implementation files("local_repository/derby-${DERBY_VERSION}.jar", "local_repository/derbyclient-${DERBY_VERSION}.jar")
83+
implementation files(
84+
"local_repository/derby-${DERBY_VERSION}.jar",
85+
"local_repository/derbyclient-${DERBY_VERSION}.jar",
86+
"local_repository/derbytools-${DERBY_VERSION}.jar",
87+
"local_repository/derbyshared-${DERBY_VERSION}.jar"
88+
)
7289
}
7390

7491
tasks.register("svnCheckout", SvnCheckout) {
@@ -120,15 +137,25 @@ tasks.register('deployLocallyDerbyArtifacts') {
120137
doLast {
121138
String derbyFullVersion = readFullDerbyVersion(DERBY_MINOR)
122139
copy {
123-
from layout.buildDirectory.dir("${DERBY_MINOR}/jars/sane/derbyshared.jar")
140+
from layout.buildDirectory.dir("${DERBY_MINOR}/jars/sane/derby.jar")
124141
into file('local_repository/')
125-
rename 'derbyshared.jar', "derby-${derbyFullVersion}.jar"
142+
rename 'derby.jar', "derby-${derbyFullVersion}.jar"
126143
}
127144
copy {
128145
from layout.buildDirectory.dir("${DERBY_MINOR}/jars/sane/derbyclient.jar")
129146
into file('local_repository/')
130147
rename 'derbyclient.jar', "derbyclient-${derbyFullVersion}.jar"
131148
}
149+
copy {
150+
from layout.buildDirectory.dir("${DERBY_MINOR}/jars/sane/derbytools.jar")
151+
into file('local_repository/')
152+
rename 'derbytools.jar', "derbytools-${derbyFullVersion}.jar"
153+
}
154+
copy {
155+
from layout.buildDirectory.dir("${DERBY_MINOR}/jars/sane/derbyshared.jar")
156+
into file('local_repository/')
157+
rename 'derbyshared.jar', "derbyshared-${derbyFullVersion}.jar"
158+
}
132159
}
133160
}
134161

derby_version.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
DERBY_VERSION=10.15.2.1
2+
DERBY_MINOR=10.15

lib/logstash-integration-jdbc_jars.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@
33
require 'jar_dependencies'
44
require_jar('org.apache.derby', 'derby', '10.15.2.1')
55
require_jar('org.apache.derby', 'derbyclient', '10.15.2.1')
6+
require_jar('org.apache.derby', 'derbytools', '10.15.2.1')
7+
require_jar('org.apache.derby', 'derbyshared', '10.15.2.1')

logstash-integration-jdbc.gemspec

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Gem::Specification.new do |s|
22
s.name = 'logstash-integration-jdbc'
3-
s.version = '5.4.8'
3+
s.version = '5.4.9'
44
s.licenses = ['Apache License (2.0)']
55
s.summary = "Integration with JDBC - input and filter plugins"
66
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -45,5 +45,4 @@ Gem::Specification.new do |s|
4545
s.add_development_dependency "childprocess"
4646
s.add_development_dependency 'logstash-devutils', '>= 2.3'
4747
s.add_development_dependency 'timecop'
48-
s.add_development_dependency 'jdbc-derby'
4948
end

spec/filters/jdbc_streaming_spec.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
require "logstash/devutils/rspec/spec_helper"
22
require "logstash/devutils/rspec/shared_examples"
33
require "logstash/filters/jdbc_streaming"
4-
require 'jdbc/derby'
54
require "sequel"
65
require "sequel/adapters/jdbc"
76

@@ -13,8 +12,6 @@ class TestJdbcStreaming < JdbcStreaming
1312
describe JdbcStreaming do
1413
let!(:jdbc_connection_string) { "jdbc:derby:memory:jdbc_streaming_testdb;create=true"}
1514
#Use embedded Derby for tests
16-
::Jdbc::Derby.load_driver
17-
1815
ENV["TZ"] = "Etc/UTC"
1916
describe "plugin level execution" do
2017
let(:mixin_settings) do

spec/inputs/jdbc_spec.rb

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
require "logstash/devutils/rspec/spec_helper"
33
require "logstash/devutils/rspec/shared_examples"
44
require "logstash/inputs/jdbc"
5-
require "jdbc/derby"
65
require "sequel"
76
require "sequel/adapters/jdbc"
87
require "timecop"
@@ -33,7 +32,6 @@
3332
before :each do
3433
if !RSpec.current_example.metadata[:no_connection]
3534
# before body
36-
Jdbc::Derby.load_driver
3735
db.create_table :test_table do
3836
DateTime :created_at
3937
BigDecimal :big_num
@@ -1587,9 +1585,21 @@
15871585
end
15881586
end
15891587

1588+
def load_derby_version
1589+
version = {}
1590+
derby_version = File.join(Dir.pwd, 'derby_version.txt')
1591+
File.readlines(derby_version, chomp: true).each do |line|
1592+
key = line.split('=')[0]
1593+
value = line.split('=')[1]
1594+
version[key] = value
1595+
end
1596+
version
1597+
end
1598+
15901599
context "when an unreadable jdbc_driver_path entry is present" do
15911600
let(:driver_jar_path) do
1592-
jar_file = $CLASSPATH.find { |name| name.index(Jdbc::Derby.driver_jar) }
1601+
derby_version = load_derby_version()['DERBY_VERSION']
1602+
jar_file = $CLASSPATH.find { |name| name.index("derby-#{derby_version}.jar") }
15931603
raise "derby jar not found on class-path" unless jar_file
15941604
jar_file.sub('file:', '')
15951605
end

0 commit comments

Comments
 (0)