cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Firebird support
Date Sat, 08 Jun 2013 08:47:54 GMT

On Jun 8, 2013, at 10:04 AM, Miłosz Pigłas <milosz@archeocs.com> wrote:

> Hi,
> 
> I'm interested in using Firebird database with cayenne. I read on http://cayenne.apache.org/docs/3.0/database-support.html
that you need testers for this db. I want to help, but as I see there Firebird is not supported
in 3.x.
> 
> So my question is where I should to start? Should I try to "port" classes from 2.x branch,
which seems, according to javadoc, the last one, where support for Fb is avilable?
> 
> Regards
> Milosz

Hi Milosz, 

Yeah, would be great if you could champion a modern FireBird adapter. Quick check of the SVN
shows that the last time when Cayenne had a FireBird adapter was in 1.2:

http://svn.apache.org/repos/asf/cayenne/main/branches/STABLE-1.2/cayenne/cayenne-java/src/cayenne/java/org/objectstyle/cayenne/dba/firebird/

The best approach to resurrect it is to create a placeholder for the adapter, and integrate
it with Cayenne unit tests engine in the "cayenne-jdk1.5-unpublished" module. Then you'll
be able to run the test suite that will give you an idea of what "non-standard" things Firebird
expects from a Java app. Then you can port the old adapter code piece-by-piece or write any
new adapter code as appropriate, with test results giving you a picture of what is still missing.


In practical terms this means the following:

1. Create an empty firebird adapter under org.apache.cayenne.dba.firebird package, inheriting
from JdbcAdapter (also create FirebirdSniffer)
2. Integrate FirebirdAdapter in runtime DI container via ServerModule (done via a DB-specific
"sniffer" that detects the DB type dynamically)
3. Create a "firebird" profile in the topmost pom.xml, similar to other DB adapter profiles
4. Implement UnitDbAdapter for the Firebird unit test (check ServerCaseModule for details).
 

After that you should be able to run unit tests e.g. as "mvn clean install -DcayenneTestConnection=firebird"

Feel free to ask more questions.

Andrus
Mime
View raw message