Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-31231

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

Details

    Description

      • JavaWrappers.jar is huge file consisting of precompiled binaries with external modules. We should build only library needed for interfacing the external modules and store in new package mariadb-plugin-connect-jdbc.
      • This MDEV should implement:
        • Remove JavaWrappers.jar from source .
        • From all files only JdbcInterface should be compiled and part of new package mariadb-plugin-connect-jdbc. For now leave other *Interface.java files (later I think may be removed).
        • Remove JDBCMariaDB.jar from source.
        • It will decrease source code by ~6[MB] .
      • Connect SE has JavaWrappers.jar file that consists of compiled byte code with interfaces that is compiled in the source code as well as shipped with mariadb-test-data package.

        $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar|grep class
        wrappers/PostgresqlInterface.class
        wrappers/OracleInterface.class
        wrappers/ApacheInterface.class
        wrappers/Client.class
        wrappers/JdbcInterface.class
        wrappers/MysqlInterface.class
        wrappers/MariadbInterface.class
        

        Only JdbcInterface is used (I think, more tests are needed for this claim?) to have proper JDBC interface.

      • Besides that there is pre-compiled JdbcMariaDB.jar that has internally pre-compiled MariaDB Connector J, Oracle connector, etc.

        $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
        META-INF/
        META-INF/MANIFEST.MF
        META-INF/FILETEST.DSA
        META-INF/INDEX.LIST
        META-INF/LICENSE.txt
        META-INF/NOTICE.txt
        META-INF/maven/
        META-INF/maven/commons-logging/
        META-INF/maven/commons-logging/commons-logging/
        META-INF/maven/commons-logging/commons-logging/pom.properties
        META-INF/maven/commons-logging/commons-logging/pom.xml
        META-INF/maven/org.apache.commons/
        META-INF/maven/org.apache.commons/commons-dbcp2/
        META-INF/maven/org.apache.commons/commons-dbcp2/pom.properties
        META-INF/maven/org.apache.commons/commons-dbcp2/pom.xml
        META-INF/maven/org.apache.commons/commons-pool2/
        META-INF/maven/org.apache.commons/commons-pool2/pom.properties
        META-INF/maven/org.apache.commons/commons-pool2/pom.xml
        META-INF/maven/org.mariadb.jdbc/
        META-INF/maven/org.mariadb.jdbc/mariadb-java-client/
        META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.properties
        META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml
        META-INF/maven/org.postgresql/
        META-INF/maven/org.postgresql/postgresql/
        META-INF/maven/org.postgresql/postgresql/pom.properties
        META-INF/maven/org.postgresql/postgresql/pom.xml
        com/
        com/mysql/
        com/mysql/cj/
        …
        oracle/
        oracle/core/
        oracle/core/lmx/
        oracle/core/lmx/CoreException.class
        oracle/core/lmx/LmxRepConversion.class
        oracle/core/lvf/
        oracle/core/lvf/VersionMgr.class
        oracle/jdbc/
        oracle/jpub
        oracle/net
        oracle/security
        oracle/sql
        …
        org/apache/
        …
        org/mariadb/jdbc
        …
        org/postgresql
        ```
        org/slf4j
        …
        wrappers/ApacheInterface.class
        wrappers/Client.class
        wrappers/HikariCPInterface.Copie
        wrappers/JdbcInterface.class
        wrappers/MariadbInterface.class
        wrappers/MysqlInterface.class
        wrappers/OracleInterface.class
        wrappers/PostgresqlInterface.class
        
        

        This file should also be removed and external packages should be installed when needed, like (libmariadb-java.

      • The similar logic applies to Mongo2.jar and Mongo3.jar that should be part of future re-design and appropriate testing.
      • As future work code re-design of JDBC may be desirable.

      Attachments

        Issue Links

          Activity

            anel Anel Husakovic created issue -
            danblack Daniel Black made changes -
            Field Original Value New Value
            Summary Create mariadb-plugin-connect-jdbc-interface package Create mariadb-plugin-connect-jdbc package
            danblack Daniel Black made changes -
            Fix Version/s 11.2 [ 28603 ]
            Fix Version/s 10.4 [ 22408 ]
            anel Anel Husakovic made changes -
            Description * Connect SE has {{JavaWrappers.jar}} file that consists of compiled byte code with interfaces that is compiled in the source code as well as shipped with {{mariadb-test-data }} package.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar|grep class
            wrappers/PostgresqlInterface.class
            wrappers/OracleInterface.class
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/JdbcInterface.class
            wrappers/MysqlInterface.class
            wrappers/MariadbInterface.class
            {code}
            Only {{JdbcInterface}} is used (I think, more tests are needed for this claim?) to have proper JDBC interface.

            * Besides that there is pre-compiled {{JdbcMariaDB.jar}} that has internally pre-compiled {{MariaDB Connector J}}, {{Oracle}} connector, etc.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
            META-INF/
            META-INF/MANIFEST.MF
            META-INF/FILETEST.DSA
            META-INF/INDEX.LIST
            META-INF/LICENSE.txt
            META-INF/NOTICE.txt
            META-INF/maven/
            META-INF/maven/commons-logging/
            META-INF/maven/commons-logging/commons-logging/
            META-INF/maven/commons-logging/commons-logging/pom.properties
            META-INF/maven/commons-logging/commons-logging/pom.xml
            META-INF/maven/org.apache.commons/
            META-INF/maven/org.apache.commons/commons-dbcp2/
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.properties
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.xml
            META-INF/maven/org.apache.commons/commons-pool2/
            META-INF/maven/org.apache.commons/commons-pool2/pom.properties
            META-INF/maven/org.apache.commons/commons-pool2/pom.xml
            META-INF/maven/org.mariadb.jdbc/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.properties
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml
            META-INF/maven/org.postgresql/
            META-INF/maven/org.postgresql/postgresql/
            META-INF/maven/org.postgresql/postgresql/pom.properties
            META-INF/maven/org.postgresql/postgresql/pom.xml
            com/
            com/mysql/
            com/mysql/cj/
            …
            oracle/
            oracle/core/
            oracle/core/lmx/
            oracle/core/lmx/CoreException.class
            oracle/core/lmx/LmxRepConversion.class
            oracle/core/lvf/
            oracle/core/lvf/VersionMgr.class
            oracle/jdbc/
            oracle/jpub
            oracle/net
            oracle/security
            oracle/sql
            …
            org/apache/
            …
            org/mariadb/jdbc
            …
            org/postgresql
            ```
            org/slf4j
            …
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/HikariCPInterface.Copie
            wrappers/JdbcInterface.class
            wrappers/MariadbInterface.class
            wrappers/MysqlInterface.class
            wrappers/OracleInterface.class
            wrappers/PostgresqlInterface.class

            {code}
            This file should also be removed and external packages should be installed when needed, like ({{libmariadb-java}}.
            * The similar logic applies to {{Mongo2.jar}} and {{Mongo3.jar}} that should be part of future re-design and appropriate testing.
            * As future work code re-design of JDBC may be desirable.

            * Tasks for this MDEV:
            ** Remove {{JavaWrappers.jar}} from source .
            ** From all files only {{JdbcInterface}} should be compiled and part of new package {{mariadb-plugin-connect-jdbc-interface}}, for now leave other *Interface.java files (later I think may be removed).
            ** Remove {{JDBCMariaDB.jar}} from source.

            * Connect SE has {{JavaWrappers.jar}} file that consists of compiled byte code with interfaces that is compiled in the source code as well as shipped with {{mariadb-test-data}} package.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar|grep class
            wrappers/PostgresqlInterface.class
            wrappers/OracleInterface.class
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/JdbcInterface.class
            wrappers/MysqlInterface.class
            wrappers/MariadbInterface.class
            {code}
            Only {{JdbcInterface}} is used (I think, more tests are needed for this claim?) to have proper JDBC interface.

            * Besides that there is pre-compiled {{JdbcMariaDB.jar}} that has internally pre-compiled {{MariaDB Connector J}}, {{Oracle}} connector, etc.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
            META-INF/
            META-INF/MANIFEST.MF
            META-INF/FILETEST.DSA
            META-INF/INDEX.LIST
            META-INF/LICENSE.txt
            META-INF/NOTICE.txt
            META-INF/maven/
            META-INF/maven/commons-logging/
            META-INF/maven/commons-logging/commons-logging/
            META-INF/maven/commons-logging/commons-logging/pom.properties
            META-INF/maven/commons-logging/commons-logging/pom.xml
            META-INF/maven/org.apache.commons/
            META-INF/maven/org.apache.commons/commons-dbcp2/
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.properties
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.xml
            META-INF/maven/org.apache.commons/commons-pool2/
            META-INF/maven/org.apache.commons/commons-pool2/pom.properties
            META-INF/maven/org.apache.commons/commons-pool2/pom.xml
            META-INF/maven/org.mariadb.jdbc/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.properties
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml
            META-INF/maven/org.postgresql/
            META-INF/maven/org.postgresql/postgresql/
            META-INF/maven/org.postgresql/postgresql/pom.properties
            META-INF/maven/org.postgresql/postgresql/pom.xml
            com/
            com/mysql/
            com/mysql/cj/
            …
            oracle/
            oracle/core/
            oracle/core/lmx/
            oracle/core/lmx/CoreException.class
            oracle/core/lmx/LmxRepConversion.class
            oracle/core/lvf/
            oracle/core/lvf/VersionMgr.class
            oracle/jdbc/
            oracle/jpub
            oracle/net
            oracle/security
            oracle/sql
            …
            org/apache/
            …
            org/mariadb/jdbc
            …
            org/postgresql
            ```
            org/slf4j
            …
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/HikariCPInterface.Copie
            wrappers/JdbcInterface.class
            wrappers/MariadbInterface.class
            wrappers/MysqlInterface.class
            wrappers/OracleInterface.class
            wrappers/PostgresqlInterface.class

            {code}
            This file should also be removed and external packages should be installed when needed, like ({{libmariadb-java}}.
            * The similar logic applies to {{Mongo2.jar}} and {{Mongo3.jar}} that should be part of future re-design and appropriate testing.
            * As future work code re-design of JDBC may be desirable.

            * Tasks for this MDEV:
            ** Remove {{JavaWrappers.jar}} from source .
            ** From all files only {{JdbcInterface}} should be compiled and part of new package {{mariadb-plugin-connect-jdbc-interface}}, for now leave other *Interface.java files (later I think may be removed).
            ** Remove {{JDBCMariaDB.jar}} from source.

            anel Anel Husakovic made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            anel Anel Husakovic added a comment - Development branch for review https://github.com/an3l/server/commit/063d1916ee0aa457587c7e4a003ffc48654c383d
            anel Anel Husakovic made changes -
            Assignee Anel Husakovic [ anel ] Daniel Black [ danblack ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            anel Anel Husakovic made changes -
            Assignee Daniel Black [ danblack ] Anel Husakovic [ anel ]
            anel Anel Husakovic made changes -
            Status In Review [ 10002 ] Stalled [ 10000 ]
            anel Anel Husakovic made changes -
            Status Stalled [ 10000 ] In Progress [ 3 ]
            anel Anel Husakovic made changes -
            Summary Create mariadb-plugin-connect-jdbc package Remove JavaWrappers.jar from mariadb-test-data and create new mariadb-plugin-connect-jdbc package
            anel Anel Husakovic made changes -
            Description * Connect SE has {{JavaWrappers.jar}} file that consists of compiled byte code with interfaces that is compiled in the source code as well as shipped with {{mariadb-test-data}} package.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar|grep class
            wrappers/PostgresqlInterface.class
            wrappers/OracleInterface.class
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/JdbcInterface.class
            wrappers/MysqlInterface.class
            wrappers/MariadbInterface.class
            {code}
            Only {{JdbcInterface}} is used (I think, more tests are needed for this claim?) to have proper JDBC interface.

            * Besides that there is pre-compiled {{JdbcMariaDB.jar}} that has internally pre-compiled {{MariaDB Connector J}}, {{Oracle}} connector, etc.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
            META-INF/
            META-INF/MANIFEST.MF
            META-INF/FILETEST.DSA
            META-INF/INDEX.LIST
            META-INF/LICENSE.txt
            META-INF/NOTICE.txt
            META-INF/maven/
            META-INF/maven/commons-logging/
            META-INF/maven/commons-logging/commons-logging/
            META-INF/maven/commons-logging/commons-logging/pom.properties
            META-INF/maven/commons-logging/commons-logging/pom.xml
            META-INF/maven/org.apache.commons/
            META-INF/maven/org.apache.commons/commons-dbcp2/
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.properties
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.xml
            META-INF/maven/org.apache.commons/commons-pool2/
            META-INF/maven/org.apache.commons/commons-pool2/pom.properties
            META-INF/maven/org.apache.commons/commons-pool2/pom.xml
            META-INF/maven/org.mariadb.jdbc/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.properties
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml
            META-INF/maven/org.postgresql/
            META-INF/maven/org.postgresql/postgresql/
            META-INF/maven/org.postgresql/postgresql/pom.properties
            META-INF/maven/org.postgresql/postgresql/pom.xml
            com/
            com/mysql/
            com/mysql/cj/
            …
            oracle/
            oracle/core/
            oracle/core/lmx/
            oracle/core/lmx/CoreException.class
            oracle/core/lmx/LmxRepConversion.class
            oracle/core/lvf/
            oracle/core/lvf/VersionMgr.class
            oracle/jdbc/
            oracle/jpub
            oracle/net
            oracle/security
            oracle/sql
            …
            org/apache/
            …
            org/mariadb/jdbc
            …
            org/postgresql
            ```
            org/slf4j
            …
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/HikariCPInterface.Copie
            wrappers/JdbcInterface.class
            wrappers/MariadbInterface.class
            wrappers/MysqlInterface.class
            wrappers/OracleInterface.class
            wrappers/PostgresqlInterface.class

            {code}
            This file should also be removed and external packages should be installed when needed, like ({{libmariadb-java}}.
            * The similar logic applies to {{Mongo2.jar}} and {{Mongo3.jar}} that should be part of future re-design and appropriate testing.
            * As future work code re-design of JDBC may be desirable.

            * Tasks for this MDEV:
            ** Remove {{JavaWrappers.jar}} from source .
            ** From all files only {{JdbcInterface}} should be compiled and part of new package {{mariadb-plugin-connect-jdbc-interface}}, for now leave other *Interface.java files (later I think may be removed).
            ** Remove {{JDBCMariaDB.jar}} from source.

            * {{JavaWrappers.jar}} is huge file consisting of precompiled binaries with external modules. We should build only library needed for interfacing the external modules and store in new package {{mariadb-plugin-connect-jdbc}}.

            * This MDEV should implement:
            ** Remove {{JavaWrappers.jar}} from source .
            ** From all files only {{JdbcInterface}} should be compiled and part of new package {{mariadb-plugin-connect-jdbc}}. For now leave other *Interface.java files (later I think may be removed).
            ** Remove {{JDBCMariaDB.jar}} from source.

            * Connect SE has {{JavaWrappers.jar}} file that consists of compiled byte code with interfaces that is compiled in the source code as well as shipped with {{mariadb-test-data}} package.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar|grep class
            wrappers/PostgresqlInterface.class
            wrappers/OracleInterface.class
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/JdbcInterface.class
            wrappers/MysqlInterface.class
            wrappers/MariadbInterface.class
            {code}
            Only {{JdbcInterface}} is used (I think, more tests are needed for this claim?) to have proper JDBC interface.

            * Besides that there is pre-compiled {{JdbcMariaDB.jar}} that has internally pre-compiled {{MariaDB Connector J}}, {{Oracle}} connector, etc.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
            META-INF/
            META-INF/MANIFEST.MF
            META-INF/FILETEST.DSA
            META-INF/INDEX.LIST
            META-INF/LICENSE.txt
            META-INF/NOTICE.txt
            META-INF/maven/
            META-INF/maven/commons-logging/
            META-INF/maven/commons-logging/commons-logging/
            META-INF/maven/commons-logging/commons-logging/pom.properties
            META-INF/maven/commons-logging/commons-logging/pom.xml
            META-INF/maven/org.apache.commons/
            META-INF/maven/org.apache.commons/commons-dbcp2/
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.properties
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.xml
            META-INF/maven/org.apache.commons/commons-pool2/
            META-INF/maven/org.apache.commons/commons-pool2/pom.properties
            META-INF/maven/org.apache.commons/commons-pool2/pom.xml
            META-INF/maven/org.mariadb.jdbc/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.properties
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml
            META-INF/maven/org.postgresql/
            META-INF/maven/org.postgresql/postgresql/
            META-INF/maven/org.postgresql/postgresql/pom.properties
            META-INF/maven/org.postgresql/postgresql/pom.xml
            com/
            com/mysql/
            com/mysql/cj/
            …
            oracle/
            oracle/core/
            oracle/core/lmx/
            oracle/core/lmx/CoreException.class
            oracle/core/lmx/LmxRepConversion.class
            oracle/core/lvf/
            oracle/core/lvf/VersionMgr.class
            oracle/jdbc/
            oracle/jpub
            oracle/net
            oracle/security
            oracle/sql
            …
            org/apache/
            …
            org/mariadb/jdbc
            …
            org/postgresql
            ```
            org/slf4j
            …
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/HikariCPInterface.Copie
            wrappers/JdbcInterface.class
            wrappers/MariadbInterface.class
            wrappers/MysqlInterface.class
            wrappers/OracleInterface.class
            wrappers/PostgresqlInterface.class

            {code}
            This file should also be removed and external packages should be installed when needed, like ({{libmariadb-java}}.
            * The similar logic applies to {{Mongo2.jar}} and {{Mongo3.jar}} that should be part of future re-design and appropriate testing.
            * As future work code re-design of JDBC may be desirable.



            anel Anel Husakovic made changes -
            Assignee Anel Husakovic [ anel ] Daniel Black [ danblack ]
            Status In Progress [ 3 ] In Review [ 10002 ]

            Note this comment saying about usage INSTALL over INSTALL_JAR that doesn't work on RPM.
            Note this comment from 2017 where JdbcInterface.jar was the only file and was replaced by Olivier with JavaWrappers.jar.

            anel Anel Husakovic added a comment - Note this comment saying about usage INSTALL over INSTALL_JAR that doesn't work on RPM. Note this comment from 2017 where JdbcInterface.jar was the only file and was replaced by Olivier with JavaWrappers.jar .
            anel Anel Husakovic made changes -
            danblack Daniel Black added a comment -

            Was missing:

            SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} connect-engine-jdbc PARENT_SCOPE)
            

            danblack Daniel Black added a comment - Was missing: SET(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} connect-engine-jdbc PARENT_SCOPE)
            danblack Daniel Black made changes -
            Assignee Daniel Black [ danblack ] Anel Husakovic [ anel ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            anel Anel Husakovic made changes -
            Status Stalled [ 10000 ] In Testing [ 10301 ]
            anel Anel Husakovic made changes -
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            anel Anel Husakovic made changes -
            Assignee Anel Husakovic [ anel ] Daniel Black [ danblack ]
            Status Stalled [ 10000 ] In Review [ 10002 ]
            anel Anel Husakovic made changes -
            Description * {{JavaWrappers.jar}} is huge file consisting of precompiled binaries with external modules. We should build only library needed for interfacing the external modules and store in new package {{mariadb-plugin-connect-jdbc}}.

            * This MDEV should implement:
            ** Remove {{JavaWrappers.jar}} from source .
            ** From all files only {{JdbcInterface}} should be compiled and part of new package {{mariadb-plugin-connect-jdbc}}. For now leave other *Interface.java files (later I think may be removed).
            ** Remove {{JDBCMariaDB.jar}} from source.

            * Connect SE has {{JavaWrappers.jar}} file that consists of compiled byte code with interfaces that is compiled in the source code as well as shipped with {{mariadb-test-data}} package.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar|grep class
            wrappers/PostgresqlInterface.class
            wrappers/OracleInterface.class
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/JdbcInterface.class
            wrappers/MysqlInterface.class
            wrappers/MariadbInterface.class
            {code}
            Only {{JdbcInterface}} is used (I think, more tests are needed for this claim?) to have proper JDBC interface.

            * Besides that there is pre-compiled {{JdbcMariaDB.jar}} that has internally pre-compiled {{MariaDB Connector J}}, {{Oracle}} connector, etc.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
            META-INF/
            META-INF/MANIFEST.MF
            META-INF/FILETEST.DSA
            META-INF/INDEX.LIST
            META-INF/LICENSE.txt
            META-INF/NOTICE.txt
            META-INF/maven/
            META-INF/maven/commons-logging/
            META-INF/maven/commons-logging/commons-logging/
            META-INF/maven/commons-logging/commons-logging/pom.properties
            META-INF/maven/commons-logging/commons-logging/pom.xml
            META-INF/maven/org.apache.commons/
            META-INF/maven/org.apache.commons/commons-dbcp2/
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.properties
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.xml
            META-INF/maven/org.apache.commons/commons-pool2/
            META-INF/maven/org.apache.commons/commons-pool2/pom.properties
            META-INF/maven/org.apache.commons/commons-pool2/pom.xml
            META-INF/maven/org.mariadb.jdbc/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.properties
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml
            META-INF/maven/org.postgresql/
            META-INF/maven/org.postgresql/postgresql/
            META-INF/maven/org.postgresql/postgresql/pom.properties
            META-INF/maven/org.postgresql/postgresql/pom.xml
            com/
            com/mysql/
            com/mysql/cj/
            …
            oracle/
            oracle/core/
            oracle/core/lmx/
            oracle/core/lmx/CoreException.class
            oracle/core/lmx/LmxRepConversion.class
            oracle/core/lvf/
            oracle/core/lvf/VersionMgr.class
            oracle/jdbc/
            oracle/jpub
            oracle/net
            oracle/security
            oracle/sql
            …
            org/apache/
            …
            org/mariadb/jdbc
            …
            org/postgresql
            ```
            org/slf4j
            …
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/HikariCPInterface.Copie
            wrappers/JdbcInterface.class
            wrappers/MariadbInterface.class
            wrappers/MysqlInterface.class
            wrappers/OracleInterface.class
            wrappers/PostgresqlInterface.class

            {code}
            This file should also be removed and external packages should be installed when needed, like ({{libmariadb-java}}.
            * The similar logic applies to {{Mongo2.jar}} and {{Mongo3.jar}} that should be part of future re-design and appropriate testing.
            * As future work code re-design of JDBC may be desirable.



            * {{JavaWrappers.jar}} is huge file consisting of precompiled binaries with external modules. We should build only library needed for interfacing the external modules and store in new package {{mariadb-plugin-connect-jdbc}}.

            * This MDEV should implement:
            ** Remove {{JavaWrappers.jar}} from source .
            ** From all files only {{JdbcInterface}} should be compiled and part of new package {{mariadb-plugin-connect-jdbc}}. For now leave other *Interface.java files (later I think may be removed).
            ** Remove {{JDBCMariaDB.jar}} from source.
            ** It will decrease source code by ~6[MB] .

            * Connect SE has {{JavaWrappers.jar}} file that consists of compiled byte code with interfaces that is compiled in the source code as well as shipped with {{mariadb-test-data}} package.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar|grep class
            wrappers/PostgresqlInterface.class
            wrappers/OracleInterface.class
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/JdbcInterface.class
            wrappers/MysqlInterface.class
            wrappers/MariadbInterface.class
            {code}
            Only {{JdbcInterface}} is used (I think, more tests are needed for this claim?) to have proper JDBC interface.

            * Besides that there is pre-compiled {{JdbcMariaDB.jar}} that has internally pre-compiled {{MariaDB Connector J}}, {{Oracle}} connector, etc.
            {code:noformat}
            $ jar tf /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
            META-INF/
            META-INF/MANIFEST.MF
            META-INF/FILETEST.DSA
            META-INF/INDEX.LIST
            META-INF/LICENSE.txt
            META-INF/NOTICE.txt
            META-INF/maven/
            META-INF/maven/commons-logging/
            META-INF/maven/commons-logging/commons-logging/
            META-INF/maven/commons-logging/commons-logging/pom.properties
            META-INF/maven/commons-logging/commons-logging/pom.xml
            META-INF/maven/org.apache.commons/
            META-INF/maven/org.apache.commons/commons-dbcp2/
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.properties
            META-INF/maven/org.apache.commons/commons-dbcp2/pom.xml
            META-INF/maven/org.apache.commons/commons-pool2/
            META-INF/maven/org.apache.commons/commons-pool2/pom.properties
            META-INF/maven/org.apache.commons/commons-pool2/pom.xml
            META-INF/maven/org.mariadb.jdbc/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.properties
            META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml
            META-INF/maven/org.postgresql/
            META-INF/maven/org.postgresql/postgresql/
            META-INF/maven/org.postgresql/postgresql/pom.properties
            META-INF/maven/org.postgresql/postgresql/pom.xml
            com/
            com/mysql/
            com/mysql/cj/
            …
            oracle/
            oracle/core/
            oracle/core/lmx/
            oracle/core/lmx/CoreException.class
            oracle/core/lmx/LmxRepConversion.class
            oracle/core/lvf/
            oracle/core/lvf/VersionMgr.class
            oracle/jdbc/
            oracle/jpub
            oracle/net
            oracle/security
            oracle/sql
            …
            org/apache/
            …
            org/mariadb/jdbc
            …
            org/postgresql
            ```
            org/slf4j
            …
            wrappers/ApacheInterface.class
            wrappers/Client.class
            wrappers/HikariCPInterface.Copie
            wrappers/JdbcInterface.class
            wrappers/MariadbInterface.class
            wrappers/MysqlInterface.class
            wrappers/OracleInterface.class
            wrappers/PostgresqlInterface.class

            {code}
            This file should also be removed and external packages should be installed when needed, like ({{libmariadb-java}}.
            * The similar logic applies to {{Mongo2.jar}} and {{Mongo3.jar}} that should be part of future re-design and appropriate testing.
            * As future work code re-design of JDBC may be desirable.



            danblack Daniel Black made changes -
            Assignee Daniel Black [ danblack ] Anel Husakovic [ anel ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            anel Anel Husakovic made changes -
            anel Anel Husakovic made changes -
            Status Stalled [ 10000 ] In Progress [ 3 ]
            danblack Daniel Black made changes -
            issue.field.resolutiondate 2023-08-30 05:26:11.0 2023-08-30 05:26:11.309
            danblack Daniel Black made changes -
            Fix Version/s 11.3.0 [ 29302 ]
            Fix Version/s 11.2 [ 28603 ]
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 11.3.1 [ 29416 ]
            Fix Version/s 11.3.0 [ 29302 ]

            People

              anel Anel Husakovic
              anel Anel Husakovic
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.