From: Jason D. <ja...@pl...> - 2006-07-22 09:39:16
|
Anyone know if there is a virtual file system somewhere that is implemented on top of JDBM (say using the Commons VFS API or something)? Or, if not, any general advise on how best to build one? I'm investigating creating a Maven2-like repository file-system based on JDBM to alleviate issues that we are running into with long file names on Windows (as well as tools to maintain, copy to/from a normal file system). Basically, the files are split up into directories like: <groupId> / <artifactId> / <type> / <version> (content/bytes are here) Forgive my ignorance, but I'm kind of lost of how I could implement this using JDBM. Any advice would be very welcome. Thanks, --jason |
From: <try...@st...> - 2006-07-22 10:07:13
|
Jason Dillon wrote: > Anyone know if there is a virtual file system somewhere that is > implemented on top of JDBM (say using the Commons VFS API or something)? > > Or, if not, any general advise on how best to build one? > > I'm investigating creating a Maven2-like repository file-system based > on JDBM to alleviate issues that we are running into with long file > names on Windows (as well as tools to maintain, copy to/from a normal > file system). > > Basically, the files are split up into directories like: > > <groupId> / > <artifactId> / > <type> / > <version> (content/bytes are here) > > Forgive my ignorance, but I'm kind of lost of how I could implement > this using JDBM. Any advice would be very welcome. IIRC JDBM can store any Serializable object as key so you should be able to create a DefaultArtifact and use that as a key directly. Alternatively just create your own object representing a file system entry. If you do not want to create a file system structure you should be able to use any homemade object as key. With my Maven dev hat on this is something that the Maven project itself would be interested in helping out with developing. -- Trygve |
From: Jason D. <ja...@pl...> - 2006-07-22 10:27:35
|
How would using DefaultArtifact (or other wrapper) work as the key if =20= I want to list files in the repo (efficiently)? So, say I want to see all groupId =3D foo and type =3D jar? Do I need to setup a table to index every groupId, artifactId, =20 version and type... I guess using the record number in the main table =20= as the value? --jason On Jul 22, 2006, at 3:06 AM, Trygve Laugst=F8l wrote: > Jason Dillon wrote: >> Anyone know if there is a virtual file system somewhere that is >> implemented on top of JDBM (say using the Commons VFS API or =20 >> something)? >> >> Or, if not, any general advise on how best to build one? >> >> I'm investigating creating a Maven2-like repository file-system based >> on JDBM to alleviate issues that we are running into with long file >> names on Windows (as well as tools to maintain, copy to/from a normal >> file system). >> >> Basically, the files are split up into directories like: >> >> <groupId> / >> <artifactId> / >> <type> / >> <version> (content/bytes are here) >> >> Forgive my ignorance, but I'm kind of lost of how I could implement >> this using JDBM. Any advice would be very welcome. > > IIRC JDBM can store any Serializable object as key so you should be =20= > able > to create a DefaultArtifact and use that as a key directly. > Alternatively just create your own object representing a file =20 > system entry. > > If you do not want to create a file system structure you should be =20 > able > to use any homemade object as key. > > With my Maven dev hat on this is something that the Maven project =20 > itself > would be interested in helping out with developing. > > -- > Trygve > > ----------------------------------------------------------------------=20= > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to =20 > share your > opinions on IT & business topics through brief surveys -- and earn =20 > cash > http://www.techsay.com/default.php?=20 > page=3Djoin.php&p=3Dsourceforge&CID=3DDEVDEV > _______________________________________________ > Jdbm-general mailing list > Jdb...@li... > https://lists.sourceforge.net/lists/listinfo/jdbm-general |
From: <tr...@in...> - 2006-07-22 11:03:49
|
Jason Dillon wrote: > How would using DefaultArtifact (or other wrapper) work as the key if I > want to list files in the repo (efficiently)? > > So, say I want to see all groupId = foo and type = jar? > > Do I need to setup a table to index every groupId, artifactId, version > and type... I guess using the record number in the main table as the value? I would guess so yes. I've always though of JDBM as persistent, transactional Maps. -- Trygve |
From: Jason D. <ja...@pl...> - 2006-07-22 11:56:57
|
Do I need to do that... create a new recman for each of the tables? // DefaultArtifact - > File (artifact content) RecordManager artifactsDb =3D RecordManagerFactory.createRecordManager=20= ("artifacts"); // String (artifactId) -> recid (in artifacts) RecordManager artifactidIdx =3D RecordManagerFactory.createRecordManager=20= ("artifactid"); // String (groupId) -> recid (in artifacts) RecordManager groupidIdx =3D RecordManagerFactory.createRecordManager=20 ("groupid"); // String (type) -> recid (in artifacts) RecordManager typeIdx =3D RecordManagerFactory.createRecordManager=20 ("type"); // String (version) -> recid (in artifacts) RecordManager versionIdx =3D RecordManagerFactory.createRecordManager=20 ("version"); And then for the Idx types, use BTree.createInstance() to insert/=20 search from? Or can one RecordManager (and one db) handle many different BTree =20 instances? * * * Again... sorry if this is obvious to you guys; i'm still trying to =20 fully grasp how to use JDBM. I wrote some stuff years ago using =20 gdbm, so I kinda get it... but I'm not sure I was using it correctly =20 before... and I eventually tossed gdbm in favor of an RDBMS. --jason On Jul 22, 2006, at 4:03 AM, Trygve Laugst=F8l wrote: > Jason Dillon wrote: >> How would using DefaultArtifact (or other wrapper) work as the key =20= >> if I want to list files in the repo (efficiently)? >> So, say I want to see all groupId =3D foo and type =3D jar? >> Do I need to setup a table to index every groupId, artifactId, =20 >> version and type... I guess using the record number in the main =20 >> table as the value? > > I would guess so yes. I've always though of JDBM as persistent, =20 > transactional Maps. > > -- > Trygve |