Hi Alex, Thanks for the detailed explanation on atomojo and for suggesting a merging on the Atom client side. Your contribution in this area would be very welcomed for Restlet 1.1.
Best regards, Jerome > -----Message d'origine----- > De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la > part de Alex Milowski > Envoyé : dimanche 1 juillet 2007 16:33 > À : [email protected] > Objet : Re: Atom Suppport > > On 6/26/07, Jerome Louvel <[EMAIL PROTECTED]> wrote: > > > > Hi Alex, > > > > The extension is part of the latest 1.1 current.zip. I > encourage you to have > > a look at its API and give us feed-back. > > > > There is also an Atom server implementation available via > the Atomojo > > project. > > In theory, you can use my atomojo classes to embed the Atom Publishing > Protocol (APP) into any restlet instance. It does require an embedded > database but the configuration is rather simple as it is an > Application-based > class: > > Application app = new AtomApplication(getContext(),atomDB,storage); > > The 'atomDB' instance is a functional class that encapsulates > the information > stored in the Derby database. It can be created by a few > simple calls: > > Map<String,DB> dbList = DB.getDatabases(new > File("whatever-you-want")); > > which gets the database set from an existing or new database > directory. Then > you get a specific database: > > DB atomDB = dbList.get("mydata"); > > or create a new database: > > DB atomDB = DB.createDB(new File("whatever-you-want"),"mydata"); > > Either way, this sets up the derby and eXist databases. > > You then need an Storage instance to handle policies for > storing information > into the XML DB. There is currently only implementation but > there will be > more in the future that will handle storing certain resources > external to the > XML DB (e.g. video files). > > So, you create one with: > > Storage storage = new XMLDBStorage(Logger.getLogger("exist"),new > Reference("exist://mydata"/feeds")); > > While it could be encapsulated a bit more, the whole thing looks like: > > File dbdir = new File("whatever-you-want"); > String dbname = "mydata"; > Map<String,DB> dbList = DB.getDatabases(dbdir); > DB atomDB = dbList.get(dbname); > if (atomDB==null) { > atomDB = DB.createDB(dbdir,dbname); > } > Storage storage = new XMLDBStorage(Logger.getLogger("exist"),new > Reference("exist://"+dbname+"/feeds")); > > Application app = new AtomApplication(getContext(),atomDB,storage); > > The project is at: > > http://code.google.com/p/atomojo > > Keep in mind that some of the above code relies on the SVN > trunk and not > the released 0.3.1 version. > > I have planned to look at the client code in restlet and help out > there... but I > haven't quite found the time. I do use my own client code > inside atomojo for > restore and pull synchronization. There is an opportunity to > merge the two when > I get a chance. > > > --Alex Milowski

