Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 1.2 branch
    • Fix Version/s: Undefined future
    • Component/s: Core Library
    • Labels:
      None

      Description

      I've written a FoxPro adapter that is good enough to connect to a FoxPro database to fish out basic fields.

      Currently all committed Cayenne adapters include support for reverse engineering and schema creation. I think that's overkill for MS Access and FoxPro. FoxPro and MS Access would only be used in applications for bug-by-bug compatibility with some existing application and not as a backend for Cayenne if the developer has any say in the matter.

      Couldn't Cayenne support adapters of two types: full and simple? Simple being only basic read/write access?

      1. foxpro.zip
        5 kB
        Øyvind Harboe

        Activity

        Hide
        Øyvind Harboe added a comment -

        FoxPro adapter that is good enough for our use: reading out simple records. Haven't tried wirting yet. No reverse engineering or schema creation capabilities. Not tested extensively against all sorts of fields.

        Reverse engineering was achieved by importing FoxPro into MS SQL server and reverse engineering the MS SQL server database.

        Show
        Øyvind Harboe added a comment - FoxPro adapter that is good enough for our use: reading out simple records. Haven't tried wirting yet. No reverse engineering or schema creation capabilities. Not tested extensively against all sorts of fields. Reverse engineering was achieved by importing FoxPro into MS SQL server and reverse engineering the MS SQL server database.
        Hide
        Mike Kienenberger added a comment -

        I don't see a problem with just throwing "Unsupported" exceptions for cases like this.
        I know that I have occasionally just needed read-access to access databases in order to convert records into a "real" database.

        And if someone wants that functionality down the road, they can always implement it.

        Show
        Mike Kienenberger added a comment - I don't see a problem with just throwing "Unsupported" exceptions for cases like this. I know that I have occasionally just needed read-access to access databases in order to convert records into a "real" database. And if someone wants that functionality down the road, they can always implement it.
        Hide
        Øyvind Harboe added a comment -

        WIll an adapter that has lots of unsupported exceptions be considered for committing to the repository or will it sit in JIRA forever?

        Show
        Øyvind Harboe added a comment - WIll an adapter that has lots of unsupported exceptions be considered for committing to the repository or will it sit in JIRA forever?
        Hide
        Ari Maniatis added a comment -

        I believe the tests for what should go into the Cayenne project are:

        • can it be licensed under the Apache license
        • is it useful to users of Cayenne generally
        • is the code documented and clear enough that others can continue to build upon it and add those missing features if they want to

        I'm not in a position to help test the code since we don't use Access or FoxPro here at all, but I'm sure others will be able to give it a good workout.

        If you'd like to give it more chance of making it into Cayenne, you could repackage it for the Cayenne trunk (with org.apache namespace), add the Apache licensing headers to all files and flesh out the Javadocs to ensure there is complete documentation about what is implemented and what isn't.

        I am sure your contribution will be useful to a great many people.

        Show
        Ari Maniatis added a comment - I believe the tests for what should go into the Cayenne project are: can it be licensed under the Apache license is it useful to users of Cayenne generally is the code documented and clear enough that others can continue to build upon it and add those missing features if they want to I'm not in a position to help test the code since we don't use Access or FoxPro here at all, but I'm sure others will be able to give it a good workout. If you'd like to give it more chance of making it into Cayenne, you could repackage it for the Cayenne trunk (with org.apache namespace), add the Apache licensing headers to all files and flesh out the Javadocs to ensure there is complete documentation about what is implemented and what isn't. I am sure your contribution will be useful to a great many people.
        Hide
        Thomas Bernhard added a comment -

        Please include this FoxPro support - it would allow many applications to use Cayenne.

        At every company I worked there were many old Foxpro applications that nobody was dearing to touch nor to upgrade with newer technologies. Cayenne + Swing(DataViews) could be a nice alternative.

        Show
        Thomas Bernhard added a comment - Please include this FoxPro support - it would allow many applications to use Cayenne. At every company I worked there were many old Foxpro applications that nobody was dearing to touch nor to upgrade with newer technologies. Cayenne + Swing(DataViews) could be a nice alternative.
        Hide
        Joseph Schmidt added a comment -

        Foxpro support would be an incredible help for many developers stuck with ugly legacy applications.

        If such an integration can't be tested because of the Apache license restrictions, maybe it would be a good idea to host those tests somewhere else. Other Apache projects also seem to have components or functionality outside of Apache.org just to avoid these restrictions.

        Show
        Joseph Schmidt added a comment - Foxpro support would be an incredible help for many developers stuck with ugly legacy applications. If such an integration can't be tested because of the Apache license restrictions, maybe it would be a good idea to host those tests somewhere else. Other Apache projects also seem to have components or functionality outside of Apache.org just to avoid these restrictions.
        Hide
        Ari Maniatis added a comment -

        There is no issue around the license of FoxPro, as long the code committed to Cayenne is Apache licensed. If you'd like to see this code incorporated into Cayenne, please have a look at porting it across to the Cayenne 3.0 namespace (that will be trivial), ensuring it is well commented and works for you. Then attach the updated code to this task. At the moment, I don't believe any of the Cayenne developers use or have access to FoxPro so it is very hard to test.

        Show
        Ari Maniatis added a comment - There is no issue around the license of FoxPro, as long the code committed to Cayenne is Apache licensed. If you'd like to see this code incorporated into Cayenne, please have a look at porting it across to the Cayenne 3.0 namespace (that will be trivial), ensuring it is well commented and works for you. Then attach the updated code to this task. At the moment, I don't believe any of the Cayenne developers use or have access to FoxPro so it is very hard to test.
        Hide
        George Stan added a comment -

        Wouldn't be easier just to use some tool to migrate the data from Foxpro to another more "actual" database (one that Cayenne has complete support for)?
        There are quite a few tools that convert or import Foxpro file formats.

        Besides, if I remember, the file format has changed during the versions, so it would be required to support different versions of Foxpro and VisualFoxpro as well - and this would be just too much.

        Show
        George Stan added a comment - Wouldn't be easier just to use some tool to migrate the data from Foxpro to another more "actual" database (one that Cayenne has complete support for)? There are quite a few tools that convert or import Foxpro file formats. Besides, if I remember, the file format has changed during the versions, so it would be required to support different versions of Foxpro and VisualFoxpro as well - and this would be just too much.
        Hide
        Øyvind Harboe added a comment -

        Sometimes it is necessary to interface to live legacy databases where no porting is possible. It's pretty easy to wip up an adapter that is good enough to "use around the house" for this purpose.

        Show
        Øyvind Harboe added a comment - Sometimes it is necessary to interface to live legacy databases where no porting is possible. It's pretty easy to wip up an adapter that is good enough to "use around the house" for this purpose.

          People

          • Assignee:
            Andrus Adamchik
            Reporter:
            Øyvind Harboe
          • Votes:
            5 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:

              Development