Trejkaz created DERBY-6912:
------------------------------

             Summary: Allow loading a database from a Path instead of a String 
file path
                 Key: DERBY-6912
                 URL: https://issues.apache.org/jira/browse/DERBY-6912
             Project: Derby
          Issue Type: Improvement
            Reporter: Trejkaz


Java 7 added the new filesystem abstraction (Path) API.

Our data is made up of a collection of multiple other databases. Other 
components of our data, such as Lucene, already use the new Path API in the 
current released versions, so it's now only Derby holding us up.

I can make an alternative DirStorageFactory7, DirFile7, DirRandomAccessFile7 
which all use Path to do their work, instead of File. This turns out to be 
fairly easy, in fact.

The blocker is currently that Derby currently forces us to provide the path to 
the database as a string. This comes down to EmbeddedDataSourceInterface 
forcing me to pass a string for pretty much everything. For instance, the 
database "name" usually becomes the file path, but that's a string.

{code}
    void setDatabaseName(String name);
    String getDatabaseName();
{code}

Even if I wanted to work around it by making a custom protocol, ignoring the 
name and then using the connection attributes, the connection attributes were 
done as a string as well:

{code}
    void setConnectionAttributes(String attributes);
    String getConnectionAttributes();
{code}

It would have been nice if this were a Map so that I could put other objects 
inside it.

As far as other workarounds go, I can't extend EmbedPooledConnection, so I 
can't usefully extend InternalDriver, so I can't usefully extend 
EmbeddedConnectionPoolDataSource myself. If there is any other possibility 
which I have missed, I'd be interested to know.

Really what I would like is a way to pass the Path directly to 
EmbeddedConnectionPoolDataSource.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to