On Jun 8, 2013, at 10:04 AM, Miłosz Pigłas <mil...@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

Reply via email to