Google Summer of Code 2008
CORBA support for Apache Tuscany - Wojtek (Wojciech) Janiszewski
Project details
Organization/Project |
|
GSoC Project Title |
|
Mentor |
Raymond Feng |
Project Proposal |
|
Contanct |
wojtek.janiszewski AT gmail DOT com |
Child pages
CORBA reference bindings features, bugs, issues: http://cwiki.apache.org/confluence/display/TUSCANYWIKI/CORBA+reference+binding+features%2C+bugs%2C+issues
host-corba, host-corba-jdk modules: http://cwiki.apache.org/confluence/display/TUSCANYWIKI/host-corba%2C+host-corba-jdk+features%2C+bugs%2C+issues
JIRA issues:
CORBA service/reference binding: https://issues.apache.org/jira/browse/TUSCANY-2357
Binding corba should use a host-corba module: https://issues.apache.org/jira/browse/TUSCANY-2397
Timeline
Time period |
Task |
---|---|
Community bonding period |
Learning Apache Tuscany and SCA standard (reading code and documentation, reviewing samples, 'playing with' Apache Tuscany). |
First development phase |
Implementation of tuscany-binding-corba part I: binding.corba for SCA references. |
Mid-term evaluation |
Submitting mid-term evaluation. |
Second development phase |
Implementation of interface-corba-idl module. |
Review |
Code/documentation review. |
Final evaluation |
Submitting final evaluation. |
Project Log
21st April 2008
Accepted to GSoC.
22nd April 2008
Made presentation for university seminar:
1. presented SCA and Tuscany in theory
2. built simple application live using Apache Tuscany.
30th April 2008
Received corba-binding module, which is a skeleton for further work. First Tuscany build attempts with no success.
1st May 2008
I've encountered some problems with missing (wrong named?) message bundles during builds. Finally built Tuscany via 'mvn clean install -fn', which is sufficient for CORBA binding development for now. I'll get back to building in the future.
3rd May 2008
1. I've Submitted Apache CLA. I'm waiting for listing my name on http://people.apache.org/~jim/committers.html page.
2. I've started to learn about extending Tuscany from http://incubator.apache.org/tuscany/sca-java-extension-development-guide.data/ExtendingTuscany-V01.pdf and from CORBA base code. I've created CorbaModuleActivator class, which plugs binding module into Tuscany. I've added following line to META-INF/services/org.apache.tuscany.sca.core.ModuleActivator (which points to previously added activator):
org.apache.tuscany.sca.binding.corba.CorbaModuleActivator
I've also updated org.apache.tuscany.sca.binding.corba.impl.CorbaBindingProviderFactory.createReferenceBindingProvider(...) method to return CorbaReferenceBindingProvider object.
I've tested CORBA base code using my sample prepared for university seminar. I've configured CORBA reference in composite file, I've "mocked" some of CORBA base code (made CorbaInvoker to return fixed response) , and successfully executed method for CORBA reference. Now it's time to know better Tuscany SPI and Tuscany/SCA specification.
6th May 2008
My full name (Wojciech Janiszewski) appeared on "Unlisted CLAs" section on the committers page.
7th May 2008
I've successfully created sample service binding provider, which was able to pass method invocation request to binded component and pass returned value as a response.
26th May 2008
First development phase officially started! Here's a little summary:
1. I've familiarized with Tuscany and binding extensions.
2. I've made several prototypes, mainly to verify CORBA API.
3. I've also fulfilled all (I hope;]) needed papers (both Apache Software Foundation and Google).
News related to project:
1. Task Implementation of interface-corba-idl module was postponed to Second development phase (see project timeline).
2. Currently I'm working on Implementation of tuscany-binding-corba part I: binding.corba for SCA references task. I'd like to have some working and tested code submitted by the end of the week.
30th May 2008
I've submitted first portion of code. Patch is available and ready to review as jira issue: https://issues.apache.org/jira/browse/TUSCANY-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
6th June 2008
Patch accepted, I've also sent patch with Apache license headers. Now working on exception handling. I've encountered some doubts, which may block my progress: http://marc.info/?l=tuscany-dev&m=121267184106875&w=2
9th June 2008
Next patch is ready to be accepted:
1. Translating remote exceptions into user declared exceptions
2. Some exception handling
3. Obtaining and using CORBA references
4. Tests for 1 and 3 - idl files and generated classes added
5. tester.idl was moved to general_tests.idl
I've also created child page, which should help to gather all current/previous topics related to CORBA reference binding: http://cwiki.apache.org/confluence/display/TUSCANYWIKI/CORBA+reference+binding+features%2C+bugs%2C+issues
18th June 2008
Next patch was submitted and applied:
1. Module corba-binding splitted into two modules:
a. model module: binding-corba
b. runtime module: binding-corba-runtime
2. Multiple declared exceptions handling
Jean-Sebastien Delfino requested to create some host modules for ORB: https://issues.apache.org/jira/browse/TUSCANY-2397
19th June 2008
I've submitted patch which adds:
1. enum types
2. validation of user provided java interface (structs, enums, exceptions)
3. some tests to 1 and 2
23rd June 2008
I've submitted patch which includes:
1. General servant class for serving Tuscany components via CORBA (class DynaCorbaServant) - it still requires some work. It uses TypeHelpers created earlier - they are common for marshalling/unmarshalling CORBA objects in reference and service cases
2. Minimal mock implementation of RuntimeComponentService (needed for tests)
3. Tests
4. Update of some previously generated stubs/skeletons (IDs weren't previously changed due to package change)
24th June 2008
I've submitted patch which includes:
1. Service side: validation of component interface (if it's matchable to CORBA), caching operations arguments types
2. BAD_PARAM exception handling (both service and reference side)
3. JUnit Tests
25th June 2008
I've submitted patch for host-corba module request.
26th June 2008
Todays patch contains:
1. Bugfix for host-corba module.
2. CorbaBindingProviderFactory, CorbaReferenceBindingProvider, CorbaServiceBindingProvider, CorbaInvoker classes now uses DynaCorbaRequest, DynaCorbaServant and host-corba API - so service/reference bindings are enabled, and can be tested - I've successfully made simple scenario.