You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Florent Guillaume <fg...@nuxeo.com> on 2010/04/13 17:48:25 UTC

F2F progress

Here's the notes from our discussions this afternoon. This is a bit
cryptic but the essentials are there. Please ask if clarification is
needed, we'll put up a synthesized version before the end of the week
anyway.


* DTOs
  - repo info & capabilities as unified DTOs
  - types as DTOs but client-side can be extended with getChildrenTypes & co
  - value types? BigInteger vs long, BigDecimal vs double, etc.
    - we have to keep them (used as is by JAXB anyway)
    - add some convenience methods to get to long/double
    - ContentStream: getLength returns long or -1 if not provided,
getBigLength returns BigInteger and may be null if not provided
  - naming? SomethingData -> Something? Use nice names for the
high-level client API. This is the case currently. And keep
SomethingData for the low-level interface.
  - Boolean vs boolean
    - types, capabilities, etc: TBD
    - properties: have to be kept Boolean (same as other non-primitive types)
  - Extensions
    - how to access them client-side? allow vendor-specific object
factories to create other implementations of the client interfaces
    - granularity of the factory registration? TBD
    - SPI: allowed everywhere in the schemas -> keep them everywhere
    - adapter or cast system to get to extension data

* PagingList
  - try a new interface without nested pages, but a skipTo() added
  - close() method
    - but how to plug that into the client-side level?
    -> prototype this

* 9 vs 1 interface on the client side
  - 9 provide clarity to the user as it reflects the spec

* "Inclusion" parameter
  - in client API there's an OperationContext (optional)
  - in server SPI there's no need for it

* Exceptions
  - make them all unchecked
  - document them in signatures and javadoc
  - not reuse standard java ones
  - flat hierarchy

* Types
  - TypeManager interface
  - client-side, the Session gives access to the Repository and the TypeManager

* fallback to SPI on the client-side?
  - not needed as one goal of the client API is to provide access to
all of the protocol
  - provider is nevertheless available if someone wants "optimized" calls

* CMISQL Query parser
  - put in server support
  - must implement the fulltext language parsing as well


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