As most people here will know Google are running a "Summer of Code"
program - see code.google.com. The idea is that Google pay 410 students
to work on an Open Source project over the summer. The OS project must
provide a mentor to help the student find their feet quickly and to
support the student through the project.
Apache received over 870 projects and were given 38 awards by Google.
These students applications have been reviewed by Apache and the 38
students have been selected.
Apache Lenya accepted 2 proposals, the search proposal by Robert Goene
and the editors proposal by Zhiwu Xie.
So, I would like to welcome Zhiwu Xie to the Apache Lenya community.
Zhiwu is to be treated like any other developer, the only real
difference I have a responsibility to assist in him learning the "Apache
Way". All design discussion will be carried out in the normal way and
Zhiwu (and Robert too) will receive SVN commit rights to a special
branch within Lenya, to be determined.
Zhiwu, please note that there will be a gathering of committers at
Apachecon Europe 7/18-7/22, and we do intend to talk about the editor
api proposal face 2 face at that time. it would be good if you could get
your API definition ready for that date (your week 5), so that we can
review in a high throughput environment.
Again, welcome!
-gregor
Editor Plug-in APIs for Lenya
=============================
by Zhiwu Xie
[EMAIL PROTECTED]
Synopsis
--------
This project will investigate and implement the editor plug-in APIs for
Lenya, an open source Java/XML Content Management System.
Benefits
--------
The proposed Lenya editor plug-in APIs will:
- Enable the ability to readily plug in different editors to Lenya
- Free the Lenya developers from maintaining multiple editors shipped
with Lenya
- Enable the functionality evolving with upgrades of different editors.
- Enhance the Lenya usability by allowing users to use the editors of
their choice.
Deliverables
------------
- Editor plug-in APIs for Lenya
- Implement plug-ins for BXE and/or Kupo to demonstrate the
applicability of the API approach
Project Details
---------------
Although currently shipped with two open source editing packages BXE and
Kupo, Lenya is still in need of an editor that can fully meet the
ever-growing requirements for different content management use cases.
Some of the requirements identified by the Lenya developers are:
- Multiple browsers compatibility including IE and Mozilla
- Can edit XML, XHTML, and HTML
- Blog publication support
This list is expected to grow longer with the time, but none of the
included editors can meet even the basic requirements listed above.
A naive solution to the problem can be extending either BXE or Kupo, or
another editor that shows better prospect to meet our requirements. But
a closer analysis reveals its limitations:
- The current Lenya editor integration method, or the lack of it, is
very time and resource consuming to upgrade and maintain, therefore is
not sustainable for an open source project like this. Concerns have been
raised by Lenya developers that "we are too short on energy and
developers to support this many editors".
- Which editor shall we choose to support? They all have strengths and
shortcomings. Even if we can make the best choice for now, how can we be
so sure about the future? What if the chosen editor is dated in a year
yet no subsequent development will be scheduled?
- After all Lenya is about content management, not content editing. Is
it worthwhile to put so much effort in editor development?
- Large numbers of editors are widely available for various purposes.
Even though none of them can be identified to meet all Lenya's
requirements, put together as a whole they can, and should remain so
with their own evolvements and upgrades. There is no need to re-invent
the wheel.
Apparently, finding a way to mount the wheels is a smarter solution. The
proposed Lenya editor plug-in APIs will take this approach and solve the
problem by providing clearly defined interfaces for an editor software
to be plugged into Lenya. The problem can therefore be well managed by
defining contracts or interfaces between Lenya and the editors Lenya
uses, with Lenya as the client that requests services from the
interfaces, and various editors as the servers that provide the services
required.
We make no assumption on which editors can be used. They can be either
browser based editors or standalone applications, open source or
commercial software. The only requirement is that for an editor to be
plugged in, it must provide implementations to these APIs.
In order for Lenya to smartly choose the editor for a specific purpose,
the proposed APIs should also "provide a way to tell the Lenya core what
documents can be edited and what it takes". By doing so, when an editor
plug-in is available and shows it can edit a certain kind of document,
if invoking the editor the functionalities should be readily working
without further twists.
The proposed API will be implemented with the same tools used for Lenya
development. The applicant will work closely with Lenya developers,
especially the mentors to ensure the project's usefulness to Lenya.
Project Schedule
----------------
Total development period will be 8 weeks from 24 June 2005 to 20 August
2005. A breakdown of the schedule is as following:
- Week 1 and 2: Inception. Review and if required, study programming
skills and tools. Set up the development environment. Lenya editor
requirements gathering and analysis by pooling and requesting comments
from Lenya developers.
- Week 3 and 4: Study Lenya source code. Continue consolidate the API
requirements. API analysis.
- Week 5: API definition
- Week 6 and 7: Plug-in implementation for either BXE and/or Kupo.
- Week 8: Remaining debugging. Testing, documentation, and review.
Biography
---------
I'm currently a 2nd year PhD student of computer engineering in
University of New Mexico. My PhD research is on digital library, a
closely related topic to content management and Lenya, and I plan to
extensively use Apache�s Java/XML packages in my research. My technical
background includes high performance computing, OO software development,
and requirements engineering. I have programmed with C/C++, java, and
Matlab, developed algorithms and simulation packages as well as designed
and implemented University of New Mexico Libraries' eResource Management
System, a LAMP based web application. The Lenya editor plug-in API
project will introduce me to the open source software development, to
which I look forward to contributing more in my future career.
Reference
---------
ProposalEditors. http://wiki.apache.org/lenya/ProposalEditors
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]