On Oct 14, 2009, at 10:03 PM, Anca Luca wrote:
Hello devs,
The current state of the annotation feature in the sandbox can be
described by
the follwing:
* there is a single type of annotation which can be added, using a
specific
javascript client backed by a rest service. Such an annotation
contains an
annotation text, the annotated content and its position and this
type is highly
coupled in the plugin implementation
* the backing annotation storage is based on components, currently
with an XWiki
objects implementation but a different service can be easily created
(there is
one implemented for Scribo annotations stored in RDF)
* for the moment, only xwiki documents and feed entries fetched by
the
feedreader plugin can be used as targets for annotations (the
annotated
documents), with the restriction that the content of the document is
*not*
generated using scripting. A component can be implemented for a new
type of
document but the current UI (the javascript client) is *specific to
xwiki documents*
* the javascript client (UI) is only in the state of a prototype:
while proving
that it works, it is not robust enough and the user experience is
poor
* annotation creation algorithm seems to perform well in practice,
but we should
put it to more real-world test (by releasing).
Some *requirements* in terms of functionality, in order to make this
an
extensible and flexible feature, would be to:
* be able to have different types of annotations (one to be able to
easily
specify fields for the annotations to add), with storage as xwiki
objects. This
needs to be flexible at all levels: UI and storage backend,
preferably using
xwiki scripting (no jars on the server side, or java coding) so that
it can be
easily customized. Also, the annotation UI should be thought of as
easy to
customize and create whatever forms and actions in a light manner.
* be able to annotate any type of document (object inside such a
document),
namely all or any number of text fields in such an object.
Preferably this
should also be doable only using xwiki scripting or configuration.
I would like to propose the following road to perfect this feature:
*Version 1.0* (somewhere in the timeframe of XE 2.1 RCs)
The aim would be to take feature out of sandbox preserving its
current features:
allowing to add a specific type of annotation saved as XWiki object
on a
regular, non scripted XWiki Document. We should:
- format, improve comments, generally clean up the current code
sandbox to match
XWiki coding styles
- refactor packages and components to remove some dependencies
issues and
increase flexibility
- simplify flow, stripping out all code which is not strictly needed
by the
targeted functionality (such as the Feed entry handling code), and
make it
easily implementable by a component in a distinct jar (so that the
Scribo
requirements currently implemented can be preserved)
- finish the javascript client: robust user interaction, intuitive
interface,
cleaned up integration with XE
- ensure quality assurance process by a well setup battery of tests,
unit and
functional
At this point I propose to have the annotation feature as an
installable plugin
but not included by default in XE, unless after a few bugfixing
cycles.
Sounds good. What do you miss to make it use the "new" architecture
fully?
Hi Vincent,
I don't think I fully understand what you mean. Can you rephrase,
please?