From a99aa00c636e5ad01ab76f336c4916e5852b1b9e Mon Sep 17 00:00:00 2001 From: alecc Date: Fri, 18 Nov 2022 12:51:15 -0800 Subject: [PATCH 1/2] added necessary dependencies and defined bundle activator class --- settings.gradle.kts | 1 + wrapper/build.gradle.kts | 20 +++++++++++++++++++ .../jdbc/osgi/WrapperBundleActivator.java | 19 ++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java diff --git a/settings.gradle.kts b/settings.gradle.kts index dd89e0c2b..8387791f9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,6 +34,7 @@ pluginManagement { fun String.v() = extra["$this.version"].toString() fun PluginDependenciesSpec.idv(id: String, key: String = id) = id(id) version key.v() + id("biz.aQute.bnd.builder") version "6.3.1" id("com.github.spotbugs") version "5.0.+" id("com.diffplug.spotless") version "6.11.+" id("com.github.vlsi.gradle-extensions") version "1.+" diff --git a/wrapper/build.gradle.kts b/wrapper/build.gradle.kts index 8a38117c5..d2a7623ac 100644 --- a/wrapper/build.gradle.kts +++ b/wrapper/build.gradle.kts @@ -18,6 +18,7 @@ plugins { checkstyle java jacoco + id("biz.aQute.bnd.builder") id("com.diffplug.spotless") id("com.github.spotbugs") id("com.github.vlsi.gradle-extensions") @@ -30,6 +31,7 @@ dependencies { compileOnly("com.zaxxer:HikariCP:4.0.3") // Version 4.+ is compatible with Java 8 compileOnly("software.amazon.awssdk:secretsmanager:2.17.285") compileOnly("com.fasterxml.jackson.core:jackson-databind:2.13.4") + compileOnly("org.osgi:org.osgi.core:4.3.0") testImplementation("org.junit.platform:junit-platform-commons:1.9.0") testImplementation("org.junit.platform:junit-platform-engine:1.9.0") @@ -174,6 +176,24 @@ tasks.jar { into("META-INF/services/") } + bundle { + bnd( + """ + -exportcontents: software.* + -removeheaders: Created-By + Bundle-Description: Amazon Web Services (AWS) Advanced JDBC Wrapper Driver + Bundle-DocURL: https://github.com/awslabs/aws-advanced-jdbc-wrapper + Bundle-Vendor: Amazon Web Services (AWS) + Import-Package: javax.sql, javax.transaction.xa, javax.naming, javax.security.sasl;resolution:=optional, *;resolution:=optional + Bundle-Activator: software.amazon.jdbc.osgi.WrapperBundleActivator + Bundle-SymbolicName: software.aws.rds + Bundle-Name: Amazon Web Services (AWS) Advanced JDBC Wrapper Driver + Bundle-Copyright: Copyright Amazon.com Inc. or affiliates. + Require-Capability: osgi.ee;filter:="(&(|(osgi.ee=J2SE)(osgi.ee=JavaSE))(version>=1.8))" + """ + ) + } + doFirst { mkdir("${buildDir}/META-INF/services/") val driverFile = File("${buildDir}/META-INF/services/java.sql.Driver") diff --git a/wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java b/wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java new file mode 100644 index 000000000..b957d9bb6 --- /dev/null +++ b/wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java @@ -0,0 +1,19 @@ +package software.amazon.jdbc.osgi; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class WrapperBundleActivator implements BundleActivator { + + public void start(BundleContext context) throws Exception { + if(!software.amazon.jdbc.Driver.isRegistered()) { + software.amazon.jdbc.Driver.register(); + } + } + + public void stop(BundleContext context) throws Exception { + if (software.amazon.jdbc.Driver.isRegistered()) { + software.amazon.jdbc.Driver.deregister(); + } + } +} From 08e00810c1c7ee154003b6229f100031df97c7e3 Mon Sep 17 00:00:00 2001 From: alecc Date: Fri, 18 Nov 2022 15:04:49 -0800 Subject: [PATCH 2/2] fixed checkstyle errors --- .../jdbc/osgi/WrapperBundleActivator.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java b/wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java index b957d9bb6..cbfacf644 100644 --- a/wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java +++ b/wrapper/src/main/java/software/amazon/jdbc/osgi/WrapperBundleActivator.java @@ -1,3 +1,19 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package software.amazon.jdbc.osgi; import org.osgi.framework.BundleActivator; @@ -6,7 +22,7 @@ public class WrapperBundleActivator implements BundleActivator { public void start(BundleContext context) throws Exception { - if(!software.amazon.jdbc.Driver.isRegistered()) { + if (!software.amazon.jdbc.Driver.isRegistered()) { software.amazon.jdbc.Driver.register(); } }