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

Reply via email to