Creating your own Connector/MXJ Package


To create a custom Connector/MXJ package that includes a specific mysqld version or platform, extract and rebuild the mysql-connector-mxj.jar (Connector/MXJ v5.0.3 or earlier) or mysql-connector-mxj-gpl-[ver]-db-files.jar (Connector/MXJ v5.0.4 or later) file.

First, create a new directory into which you can extract the current connector-mxj.jar:

shell> mkdir custom-mxj shell> cd custom-mxj shell> jar -xf connector-mxj.jar shell> ls
5-0-22/
ConnectorMXJObjectTestExample.class ConnectorMXJUrlTestExample.class META-INF/
TestDb.class com/
kill.exe

If you are using Connector/MXJ v5.0.4 or later, unpack the connector-mxj-db-files.jar:

shell> mkdir custom-mxj shell> cd custom-mxj shell> jar -xf connector-mxj-db-files.jar shell> ls
5-0-51a/
META-INF/
connector-mxj.properties

The MariaDB version directory, 5-0-22 or 5-0-51a in the preceding examples, contains all of the files used to create an instance of MariaDB when Connector/MXJ is executed. All of the files in this directory are required for each version of MariaDB to embed. Note as well the format of the version number, which uses hyphens instead of periods to separate the version number components.

Within the version specific directory are the platform specific directories, and archives of the data and share directory required by MariaDB for the various platforms. For example, here is the listing for the default Connector/MXJ package:

shell>> ls Linux-i386/
META-INF/
Mac_OS_X-ppc/
SunOS-sparc/
Win-x86/
com/
data_dir.jar share_dir.jar win_share_dir.jar

Platform specific directories are listed by their OS and platform - for example the mysqld for Mac OS X PowerPC is located within the Mac_OS_X-ppc directory. You can delete directories from this location that you do not require, and add new directories for additional platforms that you intend to support.

To add a platform specific mysqld, create a new directory with the corresponding name for your operating system/platform. For example, you could add a directory for Mac OS X/Intel using the directory Mac_OS_X-i386.

On Unix systems, you can determine the platform using uname:

shell> uname -p i386

In Connector/MXJ v5.0.9 and later, an additional platform-map.properties file is used to associate a specific platform and operating system combination with the directory in which the mysqld for that combination is located. The determined operating system and platform are on the left, and the directory name where the appropriate mysqld is located is on the right. You can see a sample of the file below:

Linux-i386=Linux-i386
Linux-x86=Linux-i386
Linux-i686=Linux-i386
Linux-x86_64=Linux-i386
Linux-ia64=Linux-i386
#Linux-ppc=Linux-ppc
#Linux-ppc64=Linux-ppc Mac_OS_X-i386=Mac_OS_X-i386
Mac_OS_X-ppc=Mac_OS_X-ppc Rhapsody-PowerPC=Mac_OS_X-ppc
#Mac_OS-PowerPC=
#macos-PowerPC=
#MacOS-PowerPC=
SunOS-sparc=SunOS-sparc Solaris-sparc=SunOS-sparc SunOS-x86=SunOS-x86
Solaris-x86=SunOS-x86
FreeBSD-x86=FreeBSD-x86
Windows_Vista-x86=Win-x86
Windows_2003-x86=Win-x86
Windows_XP-x86=Win-x86
Windows_2000-x86=Win-x86
Windows_NT-x86=Win-x86
Windows_NT_(unknown)-x86=Win-x86

Now download or compile mysqld for the MariaDB version and platform you want to include in your custom connector-mxj.jar package into the new directory.

Create a file called version.txt in the OS/platform directory you have just created that contains the version string/path of the mysqld binary. For example:

mysql-5.0.22-osx10.3-i386/bin/mysqld

You can now recreate the connector-mxj.jar file with the added mysqld:

shell> cd custom-mxj shell> jar -cf ../connector-mxj.jar *

For Connector/MXJ v5.0.4 and later, repackage to the connector-mxj-db-files.jar:

shell> cd custom-mxj shell> jar -cf ../mysql-connector-mxj-gpl-[ver]-db-files.jar *

Test this package using the steps outlined in , "Connector/MXJ Quick Start Guide".Note

Because the mysql-connector-mxj-gpl-[ver]-db-files.jar file is separate from the main Connector/MXJ classes you can distribute different mysql-connector-mxj-gpl-[ver]-db-files.jar files to different hosts or for different projects without having to create a completely new main mysql-connector-mxj-gpl-[ver].jar file for each one.

Retornar