MDEV-31231: Remove JavaWrappers.jar from mariadb-test-data and create new mariadb-plugin-connect-jdbc package

- Jar file created
```bash
$ find .|grep JdbcInterface
./storage/connect/connect_jars/JdbcInterface.jar
```
- Debian package created
```bash
$ dpkg -c mariadb-plugin-connect-jdbc_11.2.0+maria~ubu2004_amd64.deb
drwxr-xr-x root/root         0 2023-05-16 09:50 ./
drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/
drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/
drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/doc/
drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/doc/mariadb-plugin-connect-jdbc/
-rw-r--r-- root/root       253 2023-05-16 09:50 ./usr/share/doc/mariadb-plugin-connect-jdbc/changelog.gz
-rw-r--r-- root/root      2502 2023-05-09 15:14 ./usr/share/doc/mariadb-plugin-connect-jdbc/copyright
drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/mariadb/
-rw-r--r-- root/root      7538 2023-05-16 09:50 ./usr/share/mariadb/JdbcInterface.jar
```

- Tested on RPM
```
$ ls -la|grep connect
-rw-r--r--  1 root root  2633772 May 23 11:27 MariaDB-connect-engine-11.2.0-1.el7.x86_64.rpm
-rw-r--r--  1 root root  3430040 May 23 11:27 MariaDB-connect-engine-debuginfo-11.2.0-1.el7.x86_64.rpm
-rw-r--r--  1 root root     9872 May 23 11:27 MariaDB-connect-engine-jdbc-11.2.0-1.el7.x86_64.rpm
-rw-r--r--  1 root root       36 May 23 11:21 install_manifest_connect-engine-jdbc.txt
-rw-r--r--  1 root root      123 May 23 11:21 install_manifest_connect-engine.txt
-rw-r--r--  1 root root        0 May 23 11:21 install_manifest_connect-engineSymlinks.txt

$ rpm -qlp MariaDB-connect-engine-jdbc-11.2.0-1.el7.x86_64.rpm
/usr/share/mariadb
/usr/share/mariadb/JdbcInterface.jar

$ for o in --conflicts --enhances --obsoletes --provides --recommends --requires --suggests --supplements ; do echo opt $o; rpm -q $o /home/dan/repos/build-mariadb-server-11.2/MariaDB-connect-engine-jdbc-11.2.0-1.fc38.x86_64.rpm; done
opt --conflicts
opt --enhances
opt --obsoletes
opt --provides
MariaDB-connect-engine-jdbc = 11.2.0-1.fc38
MariaDB-connect-engine-jdbc(x86-64) = 11.2.0-1.fc38
opt --recommends
MariaDB-connect-engine
mariadb-java-client
mysql-connector-java
postgresql-jdbc
opt --requires
java-1.8.0-openjdk-headless
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
opt --suggests
opt --supplements
```

Closes PR #1890  (MDEV-26218)

Reviewer: <daniel@mariadb.org>
This commit is contained in:
Anel Husakovic 2023-05-12 16:30:55 +02:00 committed by Daniel Black
parent 9cb75f333f
commit 7ba9c7fb84
7 changed files with 37 additions and 14 deletions

17
debian/control vendored
View file

@ -7,6 +7,7 @@ Build-Depends: bison,
cracklib-runtime <!nocheck>,
debhelper (>= 10),
dh-exec,
default-jdk,
flex [amd64],
gdb <!nocheck>,
libaio-dev [linux-any],
@ -957,12 +958,28 @@ Replaces: mariadb-connect-engine-10.0,
mariadb-connect-engine-10.4,
mariadb-server-10.0,
mariadb-server-10.1
Suggests: mariadb-plugin-connect-jdbc
Description: Connect storage engine for MariaDB
Connect engine supports a number of file formats (dbf, xml, txt, bin, etc),
connections to ODBC tables and remote MySQL tables, as well as a number of
other interesting features.
This package contains the Connect plugin for MariaDB.
Package: mariadb-plugin-connect-jdbc
Architecture: any
Depends: default-jre-headless
Suggests: libmariadb-java,
libcsvjdbc-java,
libpostgresql-jdbc-java,
libpostgis-java,
libxerial-sqlite-jdbc-java
Enhances: mariadb-plugin-connect
Description: Connect storage engine JDBC interface for MariaDB server.
To connect to remote DBMS using Connect Storage Engine (SE) and JDBC driver,
there is need for JDBC interface byte code.
The JDBC driver for the remote DBMS connection is required.
This package contains the Connect SE plugin JDBC interface file for MariaDB server.
Package: mariadb-plugin-s3
Architecture: any
Depends: libcurl4,

View file

@ -0,0 +1 @@
usr/share/mariadb/JdbcInterface.jar

View file

@ -44,8 +44,6 @@ usr/share/man/man1/mysql_embedded.1 # Symlink to mariadb-embedded.1 which is int
usr/share/man/man1/my_safe_process.1
usr/share/man/man1/mysql-stress-test.pl.1
usr/share/man/man1/mysql.server.1
usr/share/mariadb/JavaWrappers.jar
usr/share/mariadb/JdbcInterface.jar
usr/share/mariadb/Mongo2.jar
usr/share/mariadb/Mongo3.jar
usr/share/mariadb/binary-configure

View file

@ -17,10 +17,10 @@ IF(WITHOUT_DYNAMIC_PLUGINS OR WITH_NONE OR ("${PLUGIN_CONNECT}" STREQUAL "NO"))
RETURN()
ENDIF()
SET(CPACK_RPM_connect-engine_PACKAGE_SUMMARY "Connect storage engine for MariaDB" PARENT_SCOPE)
SET(CPACK_RPM_connect-engine_PACKAGE_SUMMARY "Connect storage engine for MariaDB Server" PARENT_SCOPE)
SET(CPACK_RPM_connect-engine_PACKAGE_DESCRIPTION "Connect engine supports a number of file formats (dbf, xml, txt, bin, etc),
connections to ODBC tables and remote MySQL tables, as well as a number of
other interesting features." PARENT_SCOPE)
connections to ODBC tables and remote MySQL tables, as well as a number of
other interesting features." PARENT_SCOPE)
SET(CONNECT_PLUGIN_STATIC "connect")
SET(CONNECT_PLUGIN_DYNAMIC "connect")
@ -286,8 +286,7 @@ IF(CONNECT_WITH_JDBC)
jmgfam.h jmgoconn.h mongo.h tabjmg.h
JdbcInterface.java ApacheInterface.java MariadbInterface.java
MysqlInterface.java OracleInterface.java PostgresqlInterface.java
Mongo2Interface.java Mongo3Interface.java
mysql-test/connect/std_data/JavaWrappers.jar)
Mongo2Interface.java Mongo3Interface.java)
add_definitions(-DJAVA_SUPPORT)
ADD_FEATURE_INFO(CONNECT_JDBC "ON" "Support for JDBC in the CONNECT storage engine")
IF(CONNECT_WITH_MONGO)
@ -405,7 +404,7 @@ MYSQL_ADD_PLUGIN(connect ${CONNECT_SOURCES}
COMPONENT connect-engine
RECOMPILE_FOR_EMBEDDED
LINK_LIBRARIES ${ZLIB_LIBRARY} ${XML_LIBRARY} ${ICONV_LIBRARY}
${ODBC_LIBRARY} ${JDBC_LIBRARY} ${MONGOC_LIBRARY} ${IPHLPAPI_LIBRARY} ${REST_LIBRARY})
${ODBC_LIBRARY} ${MONGOC_LIBRARY} ${IPHLPAPI_LIBRARY} ${REST_LIBRARY})
IF(NOT TARGET connect)
RETURN()
@ -444,11 +443,20 @@ IF(CONNECT_WITH_JDBC AND JAVA_FOUND AND JNI_FOUND)
# TODO: Find how to compile and install the java wrapper classes
# Find required libraries and include directories
SET (JAVA_SOURCES JdbcInterface.java)
add_jar(JdbcInterface ${JAVA_SOURCES})
add_jar(JdbcInterface ${JAVA_SOURCES} OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/connect_jars)
get_target_property(_jarFile JdbcInterface JAR_FILE)
INSTALL(FILES
${CMAKE_CURRENT_SOURCE_DIR}/mysql-test/connect/std_data/JavaWrappers.jar
${CMAKE_CURRENT_BINARY_DIR}/JdbcInterface.jar
DESTINATION ${INSTALL_MYSQLSHAREDIR} COMPONENT connect-engine)
${_jarFile} DESTINATION ${INSTALL_MYSQLSHAREDIR} COMPONENT connect-engine-jdbc)
SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} connect-engine-jdbc PARENT_SCOPE)
SET(CPACK_RPM_connect-engine-jdbc_PACKAGE_RECOMMENDS "MariaDB-connect-engine, mariadb-java-client, postgresql-jdbc, mysql-connector-java" PARENT_SCOPE)
SET(CPACK_RPM_connect-engine-jdbc_PACKAGE_SUMMARY "Connect storage engine JDBC interface" PARENT_SCOPE)
SET(CPACK_RPM_connect-engine-jdbc_PACKAGE_DESCRIPTION "Connect storage engine JDBC interface
used to interact with external DBMS via Java connector" PARENT_SCOPE)
IF (RPM)
# Add file to populate CPACK_RPM_BUILDREQUIRES
FIND_FILE(Libjni_h jni.h PATHS ${JAVA_INCLUDE_PATH})
SET(CPACK_RPM_connect-engine-jdbc_PACKAGE_REQUIRES "jre-headless >= 1.8" PARENT_SCOPE)
ENDIF()
IF(CONNECT_WITH_MONGO)
INSTALL(FILES
${CMAKE_CURRENT_SOURCE_DIR}/mysql-test/connect/std_data/Mongo2.jar

View file

@ -407,10 +407,9 @@ bool JAVAConn::Open(PGLOBAL g)
jpop->Append(ClassPath);
} // endif ClassPath
// All wrappers are pre-compiled in JavaWrappers.jar in the share dir
jpop->Append(sep);
jpop->Append(GetMessageDir());
jpop->Append("JavaWrappers.jar");
jpop->Append("JdbcInterface.jar");
#if defined(MONGO_SUPPORT)
jpop->Append(sep);