As most people here will know Google are running a "Summer of Code"
programme - see code.Google.com. The idea is that Google pay a 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 Forrest received 11 proposals. These were of varying standard,
from a simple cut and paste of the project outline that I wrote, through
to three particularly exceptional proposals (two for a project I had
outlined, one for a project created by the student). Unfortunately
Apache Forrest was only able to accept one of the 38 awards made
available to the ASF. I am contacting the other the best of the other
applicants to try and find a way of getting them involved, we need
people like them on our team.
So, I would like to welcome Anil Ramnanan to the Apache Forrest community.
Anil proposed a project to extend the Forrest Eclipse plugin (full
details copied below). Anil created the original code for the plugin and
donated it to Apache in July 2004 whilst he was employed on a short term
contract. However, he has not been active within the Apache Forrest
project directly. It is my hope that his involvement through the Google
Summer of Code program will result in him becoming committed to the
Forrest project on a more permanent basis. He has expressed an interest
in this development as he uses Forrest within his own work.
For the dev community as a whole this has no real impact. Anil is to be
treated like any other developer, the only real difference I have a
responsibillity to assist in him learning the "Apache Way". All design
discussion will be carried out in the normal way and patches will be
submitted via our issue tracker (others are welcome to review/commit
them, however, this is one of my responibilities as the mentor).
So, Apache Forrest, please welcome, Anil Ramnanan whose project proposal
is provided below.
Ross
Project Description
===================
Apache Forrest is a flexible and powerful publishing framework. It has
the ability to transform multiple formats into a unifying framework and
is also able to publish in multiple formats. It has the ability to
generate both static documents as well as dynamic sites. This publishing
framework can be used alone or can be integrated into other products.
The Eclipse Platform is an open extensible IDE which can be used to
develop cross platform software applications as well as software
development tools. At the core of Eclipse is it's powerful Plugin
Development Environment (PDE) which allows developers to add a wide
variety of functionality to the eclipse platform. Eclipse Plugins exist
for a number of Apache projects including ANT, Maven, Tomcat and
Forrest. This allows Eclipse to integrate tightly with these projects.
Problem Definition
==================
The Forrest Plugin is a new and still under development. It allows
limited integration of Apache Forrest into the Eclipse environment.
Currently, its functionality is limited to the viewing of a Forrest
Project as a webapp and the building of a static Forrest site. While
this functionality is useful, it is limited and does not allow the
Eclipse application to take advantage of the full range of Forrest’s
features.
Proposed Solution
==================
The purpose of this proposal is to develop the Apache Forrest plugin for
Eclipse into a more functional plugin allowing more of the features of
Forrest to become available within the Eclipse IDE. This will involve
the development of a number of Wizards, Editors and other enhancements
that would allow for greater integration of Forrest and Eclipse. I have
worked with my mentor for this project to ensure that the work involved
in the creation of these wizards and editors can be done within the time
frame of the project. Eclipse provides a number of code generation tools
such as the Eclipse Modeling Framework to help
with the development of these components. Most of the editors are custom
XML editors which will be generated by the Eclipse Modeling Framework
and customised to this particular task.
The proposed enhancements to the current Forrest Plugin are:
WIZARDS
-------
Wizards are commonly used in Eclipse to automate a variety of tasks. For
example, Forrest requires a number of different files to be created when
a project is created to manage it's skins, project structure and
application configuration. This is usually done by editing template
files which is not always an easy or elegant solution. The proposed
wizards will help with tasks such as these.
The proposed wizards are:
Include from remote repository Wizard
-------------------------------------
This wizard will allow you to include a file from a remote repository.
This functionality will be useful as part of the proposed Apache Wide
documentation system incorporating Apache Cocoon (application
framework), Apache Lenya (CMS) and Apache Forrest (publication).
New Site Wizard
---------------
This wizard will allow a new Forrest site to be seeded from within
Eclipse and the automatic configuration of the configuration files for
that site.
Add new Forrest Plugin Wizard
-----------------------------
Apache Forrest has it's own flexible plugin architecture to extend its
functionality. This wizard will assist the user in managing the
installed Forrest plugins.
Add new Views wizard
-------------------
Apache Forrest plans to replace it's current skinning system with a new
system called 'views' in the Forrest 0.8 release. This wizard will allow
you to import new views into Forrest projects.
EDITORS
-------
Forrest Properties Editor:
This editor will allow you to edit the forrest.properties file. The
forrest.properties files contains configuration options that control how
the Forrest applications runs. This will be a standard Java properties
editor.
Site Editor:
This editor will allow you to easily edit the site.xml file:
The site.xml configuration file is used to define a site's menu. This
will be customised XML editor using the Eclipse EMF framework.
Tabs Editor:
This editor will allow you to edit the Tabs.xml file: This file is used
to define the tabs on a site. This will be customised XML editor using
the Eclipse
EMF framework.
Locationmap editor:
This editor will allow you to edit the locationmap.xml file. This will
be customised XML editor using the Eclipse
Skinconf Editor:
This editor will allow you to edit the Skinconf.xml file. This file is
used to define the layout of the site. This will be customised XML
editor using the Eclipse
Supporting Tools
-----------------
Support for Multiple webapps
---------------------------
This will allow you to run multiple webapps within Eclipse. This lets
you view multiple lives Forrest sites within one environment.
Repository Browser
------------------
This will allow you to browse a remote repository and include the
documents into a Forrest site. This browser will focus only on Apache
Lenya at this point since this is the Content Management System most
likely to become part of a proposed Apache wide documentation system.
However, the framework will be flexible so that it can support other
browsers e.g. for Webdav, svn, Apache Slide etc
Add WAR file builder to Forrest Menu.
-------------------------------------
Currently Forrest can start/stop a test server and build a static site.
Functionality such as generating a WAR file to run a Forrest site
dynamically can be added. Forrest already has the ability to Generate
WAR files but this functionality is not available from within the
Forrest Plugin
Advantage to the Apache Forrest Project and the Wider Community
===============================================================
Many developers use Eclipse as their IDE therefore this plugin will
allow those users to develop documentation sites within their usual
tool. Also, many Apache Projects use Forrest to generate documentation
and use Eclipse as their IDE.
Forrest is a very powerful, but very complex publication framework. This
plugins wizards will considerably lower the barrier to entry for new
users whilst enabling power uses to leverage the advanced features of
Forrest through the extensive range of file editors.
Since this plugin will make Apache Forrest more accessible to new users
it will help strengthen the Apache brand. In particular, the close
integration of Apache Forrest with Eclipse will bring this excellent
publication framework to the attention of a large number of developers.
Developers have already begun integrating Forrest functionality within
the Eclipse IDE of their application using the existing plugin. An
example of a project that would have immediate benefit from these
enhancements is the Burrokeet project (http://www.burrokeet.org) which
uses Forrest as its publication engine. The enhancements to the Eclipse
Plugin will bring immediate benefits to such a project.
Milestones and Deadlines
========================
July 6 - Editors of Site, Tabs, Locationmap and Skinconf
July 20 - Forrest.properties Editor and Add WAR file builder
August 3 - Wizards for New Site, Add Forrest Plugin and Add Views.
August 17 - Support of Multiple Web Apps
August 27 - Repository Browser and Include from Repository Wizard
August - Project Completed