Summer Coding 2010 proposal - JBoss ESB integration with CDI

About your project
1. What is the name of your project? JBoss ESB integration with CDI

2. Does your project come from an idea on the Summer Coding 2010 ideas page? If so, provide a link for reference, as well as a link to any discussions with mentors about your proposal.

Yes, this idea came under Summer Coding 2010 ideas page and i have discussed this idea with the mentor Pete (pmuir@redhat.com) and one of the community members Kev(kconner@redhat.com). The references are listed here.

[1]: http://seamframework.org/Community/StudentProjects

[2]: http://www.infoq.com/articles/jboss-esb-jbpm

[3]: http://www.germanescobar.net/2010/01/from-seam-to-cdi.html

[4]: www.tibco.com/.../journal-jboss-esb-journal-notes_tcm8-9736.pdf

3. '''Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using'''?

The intension of this project is to make an enterprise level solution that will yield Seam Framework-CDI work with JBoss ESB. The actual effort is to make a working prototype that will integrate CDI with JBoss ESB 4.Today The Jboss ESB is being most popular in SOA world with its highly valued features.JBoss ESB is an open source implementation of the Enterprise Service bus, based on the RosettaNet ESB and supports creation, deployment and integration of services.

Architecturally, everything in the JBoss ESB is a service. These services are ESB services, which can be exposed over variety of transports. ESB services are single method (doWork) services.

Hence through this project i expect to implement followings areas with respective samples to make sure the root functionalities are working as expected.


 * Using CDI in ESB listeners, routers, actions etc.
 * Ability to inject ESB service invokes, message factory etc in respective client applications.

Thus integrating such a popular open source application framework that has led to the creation of CDI (Contexts and Dependency Injection) with JBoss ESB and expose it's functionalities will be highly useful for SOA users.


 * Technolgies to be used        : EJB3, JPA, JMS, Spring, Java 6 etc


 * Software components to be used : JBoss AS 6-M3, Seam 3, Eclipse 3.5 etc

4. '''What is the timeline for development of your project? The Fedora Summer Coding work period is 11 weeks long, May 24 - August 9'''.

Please Note: This is a rough estimate and will probably be changed with the effect of various issues that may come across while implementing the project.But i myself would be dedicated to solve the issues as early as possible with the help of the community and the mentor.

1) Consider use cases for CDI/ESB and review with both ESB and Seam team. (1-2 weeks)

2) Choose two of use cases to develop a solution for. Establish what features will be needed. Plan an example to show off the features. (1 week)

3) Implement needed features (3-4 weeks)

4) In parallel develop examples (1-2 weeks)

5) Write documentation (1 week)

6) Finalize everything to submit to Fedora (1 week)

5. Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described.

I am really confident and interested doing this project as most of the methodologies required are in the path of my interest and exposure.I have been using these technologies for more than one year and engaged in various open source projects.Please have a look at my resume[0] for more information about my past experiences.

One of the related project i have involved is SCI­Flex[1][2]: (Flexible integration of SOA and CEP). The main idea was to build an enterprise level solution that yield SOA infrastructure around the CEP (Complex Event Processing) system


 * Technologies Used –J2SE 5.0, Web Services, JMS, Axiom, JS, Derby, Esper and Synapse ESB

and OLR (Online rating) module of the Citi Bank where I have experienced


 * EJB 3, Spring, JPA, JMS, MDB, GWT, EXT-GWT, Oracle 10g, Java 1.6 and Web Logic 11g

Not only that I involved in Google Summer of code in 2008 with Sahana Community [3] where I created a social networking module for Sahana while helping my university be top in Gsoc 2008 [4].Further i have been contributing OpenMRS[5] and LimeSurvey[6] occasionally as time permits me. Hence with the experiences i have obtained i believe that i can complete this project with the specified time line.

[0]: https://docs.google.com/fileview?id=0BymtuNMNqfTdZTMxYjYxZDktNGM2Yy00ZGExLTkzNGMtZmY1YTliN2VlMDVh&hl=en&pli=1

[1]: http://code.google.com/p/sci-flex/

[2]: https://www.ohloh.net/accounts/harsha_halgaswatta

[3]: http://code.google.com/p/google-summer-of-code-2008-sahana/

[4]: http://google-opensource.blogspot.com/2008/05/this-weeks-top-10s-universities-for.html

[5]: http://openmrs.org/wiki/OpenMRS

[6]: http://limesurvey.org/

You and the community
1. If your project is successfully completed, what will its impact be on the Fedora community?

Letting SOA infrastructure around Seam Framework- CDI integrating with JBOSS ESB will be an added advantage for the users.The intention of this project is to develop a prototype with JBoss ESB 4, that will be important to know how well CDI can operate with an ESB.Eventually it will open up a new door for the Seam Framework and in turn improve the middleware development on Fedora around the SOA world. - Harsha(Student)

The JBoss open source projects are incorporated into Fedora as an option for middleware development. This project will improve integration for two of these projects, and therefore improve the out-of-the-box experience for middleware development on Fedora. - Pete(Mentor)

2. What will you do if you get stuck on your project and your mentor isn't around?

I believe and experienced engaging in various Open Source projects the community is standing to help under different aspects. Even though the mentor may have some specialization on the particular area where i am working many technological solutions can be achieved through collaborating with the community.

3. In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?

Blogging twice per week would be really better in case informing the community where i am, other than that i can think of mailing to the dev lists at the end of each week letting the community know what sort of work i have completed so far.

Miscellaneous
1. We want to make sure that you are prepared before the project starts.
 * Can you set up an appropriate development environment?
 * Have you met your proposed mentor and members of the associated community?

I have already finished setting up the environment and running some samples, Yet i am grabbing through the code and now feel really confident to start working on the project. Yes ,i have met the community and the mentor through mails and IRC meetings.

2. What is your t-shirt size? Large

3. Describe a great learning experience you had as a child.

While engaging in various Open Source Projects i used to learn lot of different disciplines while getting my Software Engineering skills exposed in various aspects.

4. Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?

I can assure and confident to make this project success with the past experience i obtained through different projects which wrapped through many technologies which are in the path of required key technologies of this project.