Got a GSoC Shirt......And of course, GSoC certificate.
Learned a lot of stuff from this experience.
Detailed summary will follow, stay tuned......
Sunday, October 19, 2008
Monday, August 11, 2008
Progress Update on Aug. 12
(1) getFeed (DONE)
(2) getEntry (DONE)
(3) delEntry (DONE)
(4) updateEntry (DONE)
(5) postEntry (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
(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
(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]
(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
"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
"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
----------------------------------------------------------------------------
(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
----------------------------------------------------------------------------
(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
----------------------------------------------------------------------------
(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
----------------------------------------------------------------------------
(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
----------------------------------------------------------------------------
(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
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
----------------------------------------------------------------------------
(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...
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...
Subscribe to:
Posts (Atom)