Google Summer of Code 2011: Project

"Seam-Forge plugin for MyFaces CODI"

Student: Cosmin MARTINCONI < martinconicsm AT gmail DOT com>

Organization : Apache Software Foundation

Mentor : Gerhard Petracek < gerhard.petracek AT gmail DOT com >

Abstract:

Seam-Forge is a framework that provides a fully-integrated development platform for building rich, standards-based Internet applications. The main interest of the majority of users that use Forge is the web-application support that it provides.

The Apache MyFaces Extensions CDI project (aka CODI) hosts portable extensions for Contexts and Dependency Injection (CDI - JSR 299) for the Java-Platform (SE and EE). An important and representative module of the project is the „JSF module” which provides additional features like new scopes and it improves existing JSF mechanisms.

As a reliable and powerful CDI tool, CODI is getting great feedback from its users and it has an increasing popularity. Even if its current version is „0.9”, CODI is very stable and knows a fast prosperitive development. In this context an important step consists in integrating CODI with existing frameworks and development environments.

Vision:

The goal of this project is to implement Seam-Forge plugins for generating CODI artifacts as well as simple application-templates which are using features provided by CODI. Seam-Forge is a collection of modules developed for Java EE 6 applications, with „Context and Dependency Injection” as the central concept. In the given situation a plugin for MyFaces CODI into Forge should be an important alternative.

Some of the main features that this plugin will bring consist in creating new xhtml files, including corresponding type-safe page configurations and page beans, easily move and rename existing files and other CODI specific features.

Although the project will provide plugins which are specific to Seam-Forge, the core implementation will be independent and reusable in order to easily integrate the plugin with other frameworks and development environments(i.e. Eclipse) .

Implementation:

In order to do this, Seam-Forge supplies a well defined plugin infrastructure offering a reliable and easy to use environment for developing and integrating new plugins. The project architecture will follow MyFaces CODI and will consist of two modules (api and impl) that will provide the required functionality. In the same time the projects main focus will be to remain decoupled enough from the Seam implementation in order to deliver a reusable plugin core.

Deliverables:

Criteria:

This project will follow the guidelines of the Apache Foundation.

Timeline:

Google:

Project:

April 26 – May 9

Detail study of the CODI project functionality and implementation.

May 10 – May 22

Study Seam-Forge framework and the Plugin infrastructure provided. Discussing the best approach and establish the concrete set of functionality needed for the plugin.

May 23 – June 6

Discussing and creating a final architecture structure for the application. Create the project structure and doing initial work.

June 7 – July 8

Clarifying specific aspects and programming details. Concrete implementation of the plugin application.

July 9 – July 14

Preparing for mid-term evaluation: establish a intermediary version of the plugin; prepare and organize the milestone release.

July 15 – August 14

Discuss intermediary version of the CODI plugin, add extra features and functionality if required, continue with the implementation. Preparing a documentation document with rules and how-tos for the plugin.

August 22 – August 26

Preparing for final evaluation and getting the final release ready.

Additional Information:

Links:

https://issues.apache.org/jira/browse/EXTCDI-159

http://markmail.org/message/m37ekl2e5p3hx2u5

Background:

I graduated the “Politehnica” University of Timisoara, Romania, Department of Computer Science. I am in my 2st year of study in the master program: “Master of Information Technology”.

Since August 2009, I have been working for Codebeat, the subsidiary of IRIAN, which is the main contributor in the Apache MyFaces project. Regarding my activity in Apache MyFaces, I can mention working on Trinidad, for which I worked on creating a new show-case, that illustrates the new skin introduced, Casablanca, as well as bug reports and patch provided for some issues. The main project I was working on is a new testing api for myfaces within my last GSoC project "Automated webapp tests for MyFaces core and extensions".

I am a big open source fan and supporter.

Commitment:

Currently, I am working full time, but the company I am working for supports me with this project and is directly involved with MyFaces.

I guarantee that I can work 30 hours/week on my project.