Dear Mentors,

Per Luciano's suggestion I'm sending a mid-term update that describes at a
high level the progress and accomplishments made towards my original project
proposal for the project: "Allow Google Android applications to easily
consume business services." This mid-term update also discusses the next
steps to be taken for successful completion of the project.

My project proposal comprised 5 stages, 3 of which concentrate on the
porting of an SCA subset to get it running in Google Android. I proposed
that these first 3 stages be iterative, as much testing and re-testing would
likely be involved. The last 2 stages concentrate on use cases for Android,
in the hopes of creating a Tuscany mobile story that underscores the
functionality of SCA on Android.

After some initial research and getting acquainted with the working
environment I started testing retrotranslator, a tool that makes Java
applications compatible with Java 1.4, Java 1.3 and other environments. This
tool has helped to 'identify [an] SCA subset to port', or conversely, use of
this tool presented problems that show what doesn't run in Android. The main
problem, also the reason why retrotranslator is being used, is the lack of
proper support for Annotations in the Dalvik VM, Android's optimized Java
Virtual Machine. Google acknowledged the Annotations issue [1] and announced
that it would be fixed in a future release of the Android SDK. In the mean
time, retrotranslator was proposed as a workaround. There has been no
announcement regarding the estimated time frame for release of an updated
SDK.

Translating the SCA code with retrotranslator has presented 3 main issues:

   - Problems with the Java RMI API,
   - the JWS API and,
   - the Java Beans API.

A JIRA ticket [2] was created based on the first experiences with
retrotranslator, and included 2 patches and a retrotranslator_readme that
can be used to replicate my working environment. This ticket will be updated
with the most recent developments. To keep track of these issues a blocking
issues page [3] was created along with a summary of limitations when porting
SCA to the Android platform [4]. These pages also include suggestions that
I've received, from which the main ones are:

   - Comment the code and get it running, (Adriano)
   - Minimize dependencies (reduce scope of support): use the example of
   calculator2 by Ant, (Luciano)
   - Backport classes or attach retrotranslated JAR libraries (Taras).

Additionally, there was a suggestion from Luciano and Adriano to integrate
Retrotranslator with Maven, to allow anyone to checkout the trunk + android
sandbox and jump on the code to help. I started to work on this integration
using the Retrotranslator Maven plugin [5]. To test the integration I used
the recent modifications that Adriano committed to the android sandbox:

   - the code that uses the Java RMI API was commented
   - the code that uses the JWS API was also commented
   - the code that uses the Introspector.decapitalize() (Java Beans API)
   method was replaced by the logic this method provides
   - Loaded DefaultTransformationExtensionPoint programatically after NPE
   errors thrown when SCA tries to load the TransformationExtensionPoint

However, when building the code with Maven I ran into problems downloading
the 1.4-SNAPSHOT pom: "Unable to download the artifact from any repository."
Adriano helped me resolve this problem by sending me the files for the
1.4-SNAPSHOT and instructing me to put them in the appropriate place inside
the .m2 directory. Afterwards, I was able to build the code with mvn clean
install -fn but haven't been able to import the project into Eclipse. This
is the point I'm currently at right now.

The modifications made thus far are part of the 'Port SCA subset' stage.
Further modifications will still be part of this stage, although they could
also be classified as 'Cutting corners' as well. Again, iteration is
involved in the porting efforts.

The next steps are to get SCA running on Android and to come up with
interesting use cases that underscore functionality. To get SCA running on
Android I plan to see the example of calculator2 to get ideas on how to
minimize dependencies. Additionally, I plan to complete the integration of
Maven and Retrotranslator and use it on Adriano's most recent modifications
to the android sandbox. In doing this, my plan is to start by resolving the
exceptions [6] that Adriano is getting on the modified code. Once we're able
to get SCA running on Android I would plan to spend the rest of the time
concentrating on interesting use cases. As much as possible I will try to
follow my original proposal.

I am maintaining a project wiki page [7] that shows progress in more detail.
Even though I need to make it more tidy, I think it provides useful
information. I will keep updating this wiki page with the most recent
developments. Lastly, I have received much help from the Tuscany community,
from my mentor Adriano and from Taras Puchko, the creator of
retrotranslator. I thank them all for their patience and continued support.


[1] http <tr_1215786554765>
://code.google.com/p/android/issues/detail?id=29&can=1&q=annotations&colspec=ID%20Type%20Version%20Security%20Status%20Owner%20Summary
[2] https://issues.apache.org/jira/browse/TUSCANY-2440
[3] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Blocking+issues
[4]
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Limitation+on+porting+SCA+to+Android+platform
[5] 
http://mojo.codehaus.org/retrotranslator-maven-plugin/<https://issues.apache.org/jira/browse/TUSCANY-2440>
[6]
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/SCA+Android+Exception+after+revision+674723
[7]
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Allow+Google+Android+applications+to+easily+consume+business+services


On Wed, Jul 9, 2008 at 6:25 PM, Luciano Resende <[EMAIL PROTECTED]>
wrote:

> To help Mentors with mid-term evaluation, I'd like to suggest students
> to send a mid-term update describing high level
> progress/acomplishments towards the original project proposal.
>
> Mentors : Any thoughts on this ? other suggestions ?
>
> --
> Luciano Resende
> Apache Tuscany Committer
> http://people.apache.org/~lresende <http://people.apache.org/%7Elresende>
> http://lresende.blogspot.com/
>



-- 
best,
-oscar

Oscar CastaƱeda

Reply via email to