This article shows how to develop a plug-in that embeds the HSQLDB pure-Java relational database server into the Eclipse Workbench. Although not as powerful as DB2 and not as popular as MySQL, HSQLDB can satisfy the needs of a wide range of Java applications, because of its extensibility and low memory/processor requirements. NewsForge also has an article about Eclipse.
Now, I can do my CS project…no sweat!
Seriously, can anyone give a personal experience account of using eclipse. I use NetBeans 3.5 . I hear so much about it, but I really am satisfied with what I currently use. If it’s drastically better, I could see myself making the switch over.
Drew
Because it doesn’t belong in this post! Geez read it! I am getting sick of PGSQL people just posting because it is a database article that doesn’t mention PGSQL!
I have used Eclipse quite a bit and written a couple of plug-ins for it, though nothing particularly complicated. I like Eclipse a great deal, especially Eclipse 2.x. I have some issues with the direction they are going for 3 though. I use Eclipse 3 M3 most of the time but it is startig to get too many features and it is bogging the app down. You can shut down or remove features but it took me a while to do so.
Overall I prefer Eclipse to NetBeans and I find the Eclipse community much more active. That said if you are content with NetBeans then I would stick with it. What tipped me over the edge was that I found Eclipse handled large projexts (like JXTA) better than NetBeans. There is no “must have” feature in Eclipse that Neteans lacks except maybe CVS integration. The flip side is NetBeans offers a GUI builder tool for free, where as I do not believe there is a free one for Eclipse at the moment. I use swt-designer (recently acquired by Instantiations) for GUI work but it is not free.
This is actually pretty interesting since I was looking for a embeddable Java DB for one of my pet projects. Does anyone have experience with hsqldb? Particularly I am looking for performance on queries from a mid sized table (20-30K records) by primary key. Also how stable is it?
Take your astro-turfing elsewhere.
IBM is kind of interesting. They’re neatly sidesteping all of the issues…and raking in the $$$$$. They’ve become focused again on selling boxes and solutions to run on the…and doing well at it. For their business model, it really doesn’t matter OSS, MS, others. IBM’s to big to shut out of any new tech, but they are quietly adding compatibility for EVERYTHING under the sun. I run an iSeries, and you can get and run RPG, Cobol, Java, C++, PHP, perl & others [25+ years of code!] all under the same roof.. and talk back and forth. They even have a x86 “CoServer” that sits inside the machine to run windows [.net]…that directly shares hardware & functions with the rest of the system.
I’ve also noticed they seem to have better Java implementations and tools than even Sun..that irks Sun greatly. It’s true that they are getting developers for free by using OSS, but as long as they give back they’ll be OK. And too, it’s great marketing. After all, It looks good to the PHBs that IBM is so “helpful” but usually they want stuff in a hurry…and don’t mind just paying IBM to implement it for them [that’s where IBM gets the $$$$] Also, Once you deal with IBM Midrange hardware over “PC Clones” there’s no going back. It’s the difference between a Lexus and a GEO, The GEO will get you where you want to go for cheap, but the Lexus is truly a machine worth the money you pay versus “cheaper”.
Of course, IBM is a public company, and the stock market didn’t like that they “ONLY” made slightly OVER projected profits last year…That’s absolutly boneheaded, but a fact of life for CEO’s to choose quick $$$ for stockholders over building a solid, long-lasting business.
Because the Java runtime’s going to suck up everything that’s left. Zing!
A while ago I did some tests when looking for a small java emedded database for my application. I ran some simple tests of inserting/updating/deleteing a few hunderd thousand records on a number of databases including HSQLDB. I have no figues for you but the bottom line was that Mckoi (http://mckoi.com/database/) proved to be the fastest and most scalable. Using this kind of embedded db you can ship your application (using Java WebStart) and have access to pessistent store. No installation necessary.
I actually sent the link to the author. Mckoi would be the one I would use if I were using a pure (free) java db.
I looked at Mckoi before, and even have done some of the prototyping using it. The problem is that it is GPL. While my app (p2p plug-in for Eclipse) is not intended to be commercial and I would give away the source in all likelihood, I don’t want to be forced to. Not sure if I even would need to GPL the core plug-in since I am linking via jdbc and the storage layer is a separate plug-in. OTOH HSQLDB is released under a BSD variant which gives me more choice.
Thanks for the info though.
Man you have no idea how the GPL works. You would not have to give up YOUR source only include Mckoi’s.
Per the GPL FAQ:
“If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs–but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.”
If you are embedding the Mckoi DB you have to use GPL (unless you get another license, see below). If you use Mckoi as a server DB then you have clear separation between your app and it and only need the source for Mckoi.
From the Mckoi FAQ:
“Mckoi SQL Database is released under the GNU General Public License. You may freely use, modify and redistribute the software provided it is under the terms of the GPL license. The license is available at http://www.gnu.org/copyleft/gpl.html. If you wish to use the database under a different license then contact us for further details.”
If you want to change the license for your needs talk to the guy. He is easy to work with.
P.S. and I am not GPL advocate
Well I did say I do not understand SW licenses (not just GPL). I figured about s much. I am embedding the server in the one plug-in, but that I have no problem with releasing. But what about two autonomous components to a third program? I am pretty sure I can do this and release the core under whatever license I want. Core is DB neutral, I could conect it to an exitsting external RDBMS if I wanted to. I just wanted a portable one to make it easy to deploy and leave eclipse self contained. I’ll just write the developer and ask though.
In the last couple months HSQLDB has been much improved as part of the 1.7.2 alpha cycle, including major speedups on Java 1.4 for cached tables (moved to NIO), and significant speedups in general. New features have been added as well. You might want to take another look.
Bob: Per the GPL FAQ …
The problem here is that the Mckoi JDBC driver is also GPL, and must be included in your app to access the Mckoi server. The only way to connect to the Mckoi server is through that JDBC driver. If you don’t want to GPL your app you must isolate the DB access code in a GPL appserver and then call that appserver from a seperate app through a non-GPL interface (SOAP? RMI?). Including a jar file is sufficient to qualify for the LGPL, but not the GPL.
Of course this only applies to applications that you distribute to others. If you are programming in-house, no restrictions are necessary.
HSQLDB’s licensing is old-style BSD, with the advertising clause. This means that it is not GPL compatible. Just noticed – watch out!
“The problem here is that the Mckoi JDBC driver is also GPL…”
I do not think your scenario is correct. I would make the case that as long as the GPL JDBC driver and DB were separated out and not embedded, the application itself could still go under another license because there is a clear separation between them.
Not saying it isn’t muddy…
The linking of systems by loading of JDBC drivers using DriverManager has been discussed and is considered to not be a violation of the GPL. The original paper argued that it was but this was later refuted. There might be some contention but not enough to concern me there. For McKoi in specific there is this message that supports my statement http://mckoi.com/database/maillist/msg02918.html Hope that helps.
HSQLDB’s licensing is old-style BSD, with the advertising clause. This means that it is not GPL compatible. Just noticed – watch out!
What is the threat there? I have no problem with the advertising clause. If I use the software I have no problem telling people I am doing so.
Thanks for the clarification link related to Mckoi. Looking at those messages, it still seems a little iffy. The argument seems to be that the JDBC driver manager is a plugin architecture that allows the drivers to fall into that loophole in the GPL, as long as the driver isn’t linked statically (through “include”), and the whole database server and driver are optional to the project, replaceable with another server. Awkward but doable, assuming you buy the legal argument.
As for the advertising clause (in this case inherited from the original Hypersonic SQL – the new HSQLDB code is modified BSD, but some of the original code is still there), I personally have no problem with it, but Stallman does. Advertising clauses are a restriction on derived software that the GPL doesn’t allow, at least according to the FSF. See http://www.gnu.org/philosophy/bsd.html