[Monetdb-developers] monetdb-java-config
Dear all, Mtest.oy and several tests (see below) (still) rely on monetdb-java-config to find out where MonetDB/Java (i.e., the *.jar's and the Test_*.class examples/tests) are installed. However, we do not distribute monetdb-java-config in any (binary) package (only with the sources). I see the followin options: 1) Leave everything as it is. 2) Keep monetdb-java-config in the source (for conveniencce with Mtest.py on source-base installations), but extend Mtest.py with command line options as an alternative manner to provide the requires information in case of binary installation (i.e., w/o monetdb-java-config). 3) Abandon monetdb-java-config completely and have Mtest.py rely only in the (to be added) command line options Any preferences and/or other suggestions? Stefan ======== ./MonetDB/src/testing/Mtest.py.in: if CheckExec('monetdb-java-config'): ./MonetDB/src/testing/Mtest.py.in: CONDITIONALS['HAVE_MONETDB_JAVAJDBC'] = GetConfig('monetdb-java-config', '--HAVE_MONETDB_JAVAJDBC') ./MonetDB/src/testing/Mtest.py.in: CONDITIONALS['HAVE_MONETDB_JAVAXRPC'] = GetConfig('monetdb-java-config', '--HAVE_MONETDB_JAVAXRPC') ./pathfinder/tests/BugTracker/Tests/JDBC_0_results.SF-1886326.XQUERY.sh:pdd="`monetdb-java-config --pkgdatadir`" ./pathfinder/tests/BugTracker/Tests/JDBC_250_results.SF-1730556.XQUERY.sh:pdd="`monetdb-java-config --pkgdatadir`" ./pf_rox/tests/BugTracker/Tests/JDBC_0_results.SF-1886326.XQUERY.sh:pdd="`monetdb-java-config --pkgdatadir`" ./pf_rox/tests/BugTracker/Tests/JDBC_250_results.SF-1730556.XQUERY.sh:pdd="`monetdb-java-config --pkgdatadir`" ./sql/src/jdbc/tests/Tests/Test_JdbcClient.SQL.sh:pdd="`monetdb-java-config --pkgdatadir`" ./sql/src/jdbc/tests/Tests/Test.SQL.sh:pdd="`monetdb-java-config --pkgdatadir`" ./sql/src/test/snodgrass/Tests/cast_select.SQL.sh:pdd="`monetdb-java-config --pkgdatadir`" ======== -- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
On 21-06-2008 16:12:59 +0200, Stefan Manegold wrote:
Dear all,
Mtest.oy and several tests (see below) (still) rely on monetdb-java-config to find out where MonetDB/Java (i.e., the *.jar's and the Test_*.class examples/tests) are installed.
However, we do not distribute monetdb-java-config in any (binary) package (only with the sources).
we do, but only in Sun's own packaging format, Jars.
I see the followin options:
1) Leave everything as it is.
2) Keep monetdb-java-config in the source (for conveniencce with Mtest.py on source-base installations), but extend Mtest.py with command line options as an alternative manner to provide the requires information in case of binary installation (i.e., w/o monetdb-java-config).
3) Abandon monetdb-java-config completely and have Mtest.py rely only in the (to be added) command line options
Any preferences and/or other suggestions?
I would say a mix of 2 and 3. For internal testing purposes, it is probably handy/dandy if there is some means of getting where the jars are located. This could then be set in the CLASSPATH, which without the configuration tool would fall-back to some hardwired install-dependant default.
On Sat, Jun 21, 2008 at 06:34:53PM +0200, Fabian Groffen wrote:
On 21-06-2008 16:12:59 +0200, Stefan Manegold wrote:
Dear all,
Mtest.oy and several tests (see below) (still) rely on monetdb-java-config to find out where MonetDB/Java (i.e., the *.jar's and the Test_*.class examples/tests) are installed.
However, we do not distribute monetdb-java-config in any (binary) package (only with the sources).
we do, but only in Sun's own packaging format, Jars.
We distribute the shell / batch script "monetdb-java-config" in Jars? Or do you mean that the Jars provide similar functionality as the shell / batch script, i.e., reveal configuration settings & installation PATHs?
I see the followin options:
1) Leave everything as it is.
2) Keep monetdb-java-config in the source (for conveniencce with Mtest.py on source-base installations), but extend Mtest.py with command line options as an alternative manner to provide the requires information in case of binary installation (i.e., w/o monetdb-java-config).
3) Abandon monetdb-java-config completely and have Mtest.py rely only in the (to be added) command line options
Any preferences and/or other suggestions?
I would say a mix of 2 and 3. For internal testing purposes, it is probably handy/dandy if there is some means of getting where the jars are located. This could then be set in the CLASSPATH, which without the configuration tool would fall-back to some hardwired install-dependant default.
In fact, setting CLASSPATH, (next to setting PATH & PYTHONPATH as we already do/require), might indeed be the cleanest & simplest option to document non-standard installation PATHs. Stefan -- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
On 21-06-2008 19:52:21 +0200, Stefan Manegold wrote:
However, we do not distribute monetdb-java-config in any (binary) package (only with the sources).
we do, but only in Sun's own packaging format, Jars.
We distribute the shell / batch script "monetdb-java-config" in Jars? Or do you mean that the Jars provide similar functionality as the shell / batch script, i.e., reveal configuration settings & installation PATHs?
Ehm, I misread the original point. What I wanted to say is that a "Jar" is a "binary package". Cool thing of Jars is that you essentially do not need any fancy "tell me where it is installed" tools, since you can locate them anywhere you want. Basically, because Sun has its own "binary" format here, we're dealing with a primary/secondary package manager problem. Essentially, Jars are just "installers" that expand to a hierarchical structure (class tree), but the JVM "installs" it on the fly when it needs it (the ClassLoader that is). That means there is no designated place for it in the filesystem (like with any installer you download), and in practice it ends up in someone's project local "lib" or "jar" dir.
Any preferences and/or other suggestions?
I would say a mix of 2 and 3. For internal testing purposes, it is probably handy/dandy if there is some means of getting where the jars are located. This could then be set in the CLASSPATH, which without the configuration tool would fall-back to some hardwired install-dependant default.
In fact, setting CLASSPATH, (next to setting PATH & PYTHONPATH as we already do/require), might indeed be the cleanest & simplest option to document non-standard installation PATHs.
Testing/Testweb has to know where the Jars are. Maybe we can also just turn things around. That is, move all JDBC tests to the Java repository, and let the Mtest there "find" the sql and xquery servers, using the config wrappers there. Rationale behind this is that Java itself is purely optional and not a dependency of sql or xquery (and I guess we would like to keep it that way). Counter argument is possible too, (Java has no dependency on sql and xquery, neither do you want that) but I guess it's easier to skip tests in the Java repository than the other way around. The basic core tests /do/ require sql though... This is because of a mix of testing JDBC itself (could use UnitTests instead there) and testing the output/behaviour of the sql server.
On Sat, Jun 21, 2008 at 04:12:59PM +0200, Stefan Manegold wrote:
Dear all,
Mtest.oy and several tests (see below) (still) rely on monetdb-java-config to find out where MonetDB/Java (i.e., the *.jar's and the Test_*.class examples/tests) are installed.
However, we do not distribute monetdb-java-config in any (binary) package (only with the sources).
I see the followin options:
1) Leave everything as it is.
2) Keep monetdb-java-config in the source (for conveniencce with Mtest.py on source-base installations), but extend Mtest.py with command line options as an alternative manner to provide the requires information in case of binary installation (i.e., w/o monetdb-java-config).
3) Abandon monetdb-java-config completely and have Mtest.py rely only in the (to be added) command line options
Solved by implementing option 4) Abandon monetdb-java-config completely and telling Mtest.py the location of the MonetDB/Java installation via enviroment variable CLASSPATH (with fall-back to `monetdb-config --pkgdatadir`/lib, assuming that MonetDB/Java is installed in the same prefix ad MonetDB/Common (GDK)). Stefan
Any preferences and/or other suggestions?
Stefan
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
participants (2)
-
Fabian Groffen
-
Stefan Manegold