Hi Florent, Thanks for the answers.
I get the repository registration idea but I don't see it that prominent in the API. There are too many frameworks out there that a one-fits-all approach works everywhere. Additionally, the fact that the RepositoryManager is a singleton might become a problem in some environments. I think the native service provisioning mechanisms of the frameworks are a better choice. Defining new property types is problematic. If you do that and serialize them similar to the standard CMIS properties, most CMIS clients won't recognize them. Either you create a none schema complaint XML or you generate a tag that is ignored by most clients. Additionally, you cannot express that in the object type definition. The property type is an enum there. A solution for a non-standard property type could look like this: A property of this new type is exposed as a String property. The value is a string representation of the property value. All CMIS clients should be able to, at least, read and display it. The real value of the property is wrapped into a extension of that property (a tag within the property tag). A client that can handle the non-standard property type would ignore the string value and use the value in the extension tag instead. Cheers, Florian -----Original Message----- From: Florent Guillaume [mailto:[email protected]] Sent: Mittwoch, 31. März 2010 15:40 To: chemistry-dev Subject: Re: Chemistry and OpenCMIS Technical Comparison Hi Florian, On Tue, Mar 30, 2010 at 8:03 PM, Florian Müller <[email protected]> wrote: > That's pretty accurate. I made a few changes and will add more details later. > I've a few questions: > - What's the repository registration for? What's the use case? Registration in one part of the code and use in another. For instance, registration of available repositories in some servlet configuration code, or Nuxeo extension points, or any framework configuration mechanism. Then user code just calls RepositoryManager.getInstance().getRepository("default") to get the default repo, however it's been configured. The idea is also to later register automatically RepositoryService instances based on Java 6's ServiceLoader. > - Chemistry allows the definition of new property types. How is this mapped > to AtomPub/Web Service? It's not mapped for now. That's more for future extensibility than current need, but changing from an enum to class-based constants is always painful for user code if it's done late in the game. This can be discussed of course. I'll have a few questions of my own later in the afternoon :) Florent -- Florent Guillaume, Director of R&D, Nuxeo Open Source, Java EE based, Enterprise Content Management (ECM) http://www.nuxeo.com http://www.nuxeo.org +33 1 40 33 79 87
