Sunday, October 19, 2008

GSOC wrapped-up and T-Shirt received

Got a GSoC Shirt......And of course, GSoC certificate.

Learned a lot of stuff from this experience.

Detailed summary will follow, stay tuned......

Monday, August 11, 2008

Progress Update on Aug. 12

(1) getFeed (DONE)
(2) getEntry (DONE)
(3) delEntry (DONE)
(4) updateEntry (DONE)
(5) postEntry (DONE)

Wednesday, July 23, 2008

Progress update on July 23

(1) Added a test case consuming Google Contacts Service

(2) Added a test case consuming Google Calendar Service

(3) Fix the "link" bug for localhost GData serviceBinding

Monday, July 21, 2008

Progress report on July 21, 2008

(1) Added two test cases on Google Contacts Service and Google Calendar Service

(2)Gdata operation query

Tuesday, July 15, 2008

Progress update up to July 15, 2008

1. PROGRESS SUMMARY

(1.1) GData ServiceBinding support [Progress: 4/6 = 0.667=66.7%]
doGet, doPost, doDelete, doPut----------------------
processAuthorizationHeader and autheicate----------

(1.2) GData ReferenceBinding support [Progress: 5/8 = 0.65=65.0%]
get/getFeed, getEntry, post, delete, Put-------------
Query-----------------------------------------------
PostMedia and PutMedia----------------------------

(1.3) Tests [Progress:around 30%-40%]
Test case 1 "GdataBinding_LocalhostServlet_Test" is used to test bothServiceBinding and ReferenceBinding on a locally created Gdata service binding.

Test case 2 "GdataBinding_GoogleBlogger_Test" is used to test referenceBinding cosuming Google Gdata services

More test cases will be added to test other Google services


2. LATEST UPDATES IN THE PATHCH
(tuscany-binding-gdata-zhao-July13-02.patch):

2.1 Support 5 GData operations for both servicebidng andreferencebinding (getFeed, getEntry, post, put, delete) ---[tested]

2.2 Add a test case for the testing of these operations inLocalhost (test both serviceBinding and referenceBinding)----[tested]

2.3 Add a test case for the testing of these operations consumingGoogle Blog service (test referenceBinding) ----[tested]

2.4 Update dependencies in pom.xml for a clean mvn build --- [not tested]

2.5 Add "serviceType", "username" and "password" into gdatabinding definition to support GData authorization --- [tested]

Wednesday, July 9, 2008

update To-Do list of this week

GData operation support:

"getFeed" -- Done
"getEntry/get"-- Done
"query" -- Todo
"post" -- Done
"put" -- Done
"delete" -- Done

Sunday, July 6, 2008

To-do List for this week

GData operation support:

"getFeed" -- Done
"getEntry/get"-- Done
"query" -- Todo
"post" -- Done
"put" -- Todo
"delete" -- Todo

Thursday, July 3, 2008

Progress report on July 4, 2008

Things done in the last week
----------------------------------------------------------------------------
(1) Very good progress in this week, made the first two gdata operations work.

(2) Finished two operations of gdata-binding: "getFeed" and "getEntry". Tested both of them, worked great.

(3) Since other operations can be processed in a very similar way, I expect a much faster development speed in the following weeks.



Things to do in the next week
----------------------------------------------------------------------------
(1) Finish all tasks in development phase 1, each GData operation corresponds to a task below

"getFeed" -- Done
"getEntry/get"-- Done
"query" -- Todo
"post" -- Todo
"put" -- Todo
"delete" -- Todo

Tuesday, June 17, 2008

Progress report on Jun 18, 2008

Things done in the last week
----------------------------------------------------------------------------
(1) Try out Gdata API, get familiar with GData model and publishing protocol

(2) Analyze Atom-binding implementation and carefully read the atom-binding code

(3) Analyze the difference between Atom-binding and Gdata-binding

(4) Make notes of required changes in Atom-binding classes

(5) Generate a preliminary patch


Things to do in the next week
----------------------------------------------------------------------------
(1) Based on the notes of required changes, write gdata-binding code

(2) Starting with get operation, then test change and test the modifications of other operations

Wednesday, June 11, 2008

Progress report on Jun 11, 2008

Things done in the last week
----------------------------------------------------------------------------
(1) Check out and build the latest source from the SVN repository

(2) Setup a development and testing environment

(3) Analysis the example binding implementation binding-echo

(4) Design skeleton classes of gdata binding, the picture below shows the structure of the project, more classes might be needed. The current project is a good start in which I can add and test gdata related modifications. Up to now, we have a "hello world" development and testing environment ready.

The following composition file can be processed by Tuscany.





And the below is a screenshot of the environment



Things to do in the next week
----------------------------------------------------------------------------
(1) GData model handling and integrating

Monday, June 2, 2008

Progress report on Jun. 03, 2008

Things done in the last week
----------------------------------------------------------------------------
(1) Reading slides "Tuscany Extension", a really good piece of material to understand the extension mechanism of Tuscany.

(2) Analysis Atom binding implementation and associate classes/methods with the stuff mentioned in the slides of "Tuscany Extension". Feel comfortable with the Atom binding code now.

(3) Reverse Atom binding implementation Java code and generate the UML class diagram:



(4) UML class diagram design of gdata binding has been started


Things to do in the next week
----------------------------------------------------------------------------
(1) Finish the UML class diagram of gdata binding

(2) Discuss the class diagram in the community

(3) Refine the class diagram

Monday, May 26, 2008

Progress update on May 26

Things done in the last week
----------------------------------------------------------------------------
(1) Read Tuscany developers guide and "Extending Tuscany" slides

(2) Study the implementation of Atom binding (read the Atom implementation source, not have a clear idea yet)

(3) Read the implementation code of AXIS 2 binding (/incubator/tuscany/java/sca/modules/binding-ws-axis2) and refer to the "Extending Tuscany" slides. It seems make more sense than the Atom binding implementation, not yet sure why.

(4) Setup a SVN server for the project

(5) Build the Wiki page for the project

http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Integrate+Google+services+in+SCA+compositions%28Apache+Tuscany%29


Things to do in the next week
----------------------------------------------------------------------------
(1) Ask questions in the Dev list about binding extension in Tuscany

(2) Keep reading the documents and code, and have a better understanding how binding extension works

(3) If have a good understanding, start making the UML class diagram of the project

Tuesday, May 20, 2008

Proxy issue while installing tuscany plugin and coding GData clients

If you are connecting Internet via a Proxy server, here is what you need to read; otherwise if you are connecting to Internet directly, just ignore the following.

OK, let's assume you are connecting to Internet via a Proxy server(Damn it! but this is life, live with it.....)

(1) Installation issue while using "Find and Install" in Eclipse to install the Tuscany plugin

Have tried thousands of times to install Tuscany plugin, did not work......want to kill yourself......then you wonder if the tuscany update site is down....well, nope......the update site is up......Now you realize you are using a proxy....yes, damned proxy.


OK, here it goes....Window->Preference->Search for "Proxy", then you got the network connections, configure your Proxy server...then you go.....Life is good, eventually.

(2) Connection issue while coding GData client programs

Ok, you have download all the jar files for GData client APIs, now you are ready to write some sample code using these APIs...Let's start with the "Code search API" sample code...Well, did not work....You got this "Connection refused: connect" exception......Why?......Oh, yeah, I know, the proxy, damned proxy again....Google a second...OK, easy....let's set up the proxy server "System.getProperties" in the proxy, four lines of code.....Yeah, it is working............

All right, the "Code search API" works, let's try the "Blogger API"....it is a little bit more complicated, requires username/pwd authentication......Ok, let's add the code for the proxy settings in "System.getProperties"......Wait a second........No longer working......."AuthenticationException: Error connecting with login URI"........What the heck......My username/pwd is absolutely correct, you know after I check and recheck this for another 200 times.....Why??????......

OK, let me tell you......Only specify the proxy server information in the client seems not good enough.......The client is calling other classes in the GData client API.....And these classes might also need to connect to the server via the internet connection......What can I do.....I do not wanna modify these classes in the API......

Here is what you do........If you are using eclipse.....go to "Run As"->"Open Run Dialog"->"Arguments"->"VM Arguments".... Put these there

-Dhttp.proxyHost=yourProxyServerAddress -Dhttp.proxyPort=youProxyPortNumber -Dhttps.proxyHost=yourProxyServerAddress -Dhttps.proxyPort=youProxyPortNumber

If you are not using Eclipse, you know where you specify VM arguments...

That is it for tips today....Good luck

Monday, May 19, 2008

Progress Update on May 19

Things done in the last week
----------------------------------------------------------------------------
(1) Reading documents of SCA specification and Java SCA Documentation(User guide, Developer guide)

(2) Reading documents of GData API(Core Data API document)

(3) The Tuscany SCA Java 1.2 is installed and tried out with the "store sample"

(4) GData client API is downloaded and tried out with the Google Calendar service.

(5) Tuscany SCA Java source code is downloaded and the "Hello Word" development environment is ready.


Things to do in the next week
----------------------------------------------------------------------------
(1) More reading about SCA developers guide

(2) Study the implementation of Atom binding

(3) Try to have a good understanding of the "binding extension" part, and if comfortable and confident, start designing the UML class diagram. The implementation of Atom binding is a good place to learn from

Saturday, May 17, 2008

Project Blog Created

This is the project blog site for the project of Gdata binding for Tuscany. The project is a GSoC project associated with Apache Tuscany(Sponsored by Google, Google Summer of Code).

This project will mainly focus on adding GData binding to Tuscany to allow users to integrate SCA compositions with Google services, and in a wider range, any other web accessible application and service with GData, Atom or RSS as the data representation. Tuscany is an evolutionary framework of SOA, and GData binding will be a necessary and significant reinforcement of the system.

Service oriented architecture (SOA) aims to deliver a loosely-coupled, highly-reusable, composable and adaptive infrastructure for enterprise applications. An essential characteristic of SOA is the ability to assemble existing services to create new applications that may consist of different technologies. As an implementation of SCA (Service Component Architecture), Tuscany delivers a powerful and flexible framework to simplify development, assembly, deployment and management of composite applications in SOA. It assembles new and existing services to create brand new applications that may consist of different technologies such as such as BPEL, Spring, and SCA’s Java component model. One of its outstanding features is the ability to support a variety of languages, bindings and component types in a consistent way.

Tuscany supports the binding of a variety of formats including EJB, WS-AXIS2 and etc. Unfortunately, GData is not yet supported by Tuscany. Compared with Atom and RSS, GData provides a general model to fetch feeds form resources, query information of interests in the feeds and represent results. GData Users can also perform updates to any service that has a GData interface while supporting optimistic concurrency and authentication.

The project progress and milestone events will be blogged here, stay tuned and more details will be coming...