DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Email to Android Developers
Hi Taras,
Thanks for your help. I tried the -backport option on the previously retrotranslated classes and received some errors that were resolved by including backport-util-concurrent-3.1.jar. After that I was getting some errors related to getAnnotation 1 so I tried building all the projects from scratch and running retrotranslator again together with the -backport option. Now I'm getting UnsupportedOperationException errors 2. Any advice you can give me will be greatly appreciated.
1 http://cwiki.apache.org/confluence/display/TUSCANYWIKI/30Jun2008![]()
2 http://cwiki.apache.org/confluence/display/TUSCANYWIKI/2Jul2008![]()
Response from Android Developers
Hi Oscar,
It looks like Retrotranslator haven't translated the ConversationProcessor class if you see the following stack trace:
java.lang.UnsupportedOperationException: native method not implemented at java.lang.Class.getDeclaredAnnotations(Native Method) at java.lang.Class.getAnnotations(Class.java:204) at java.lang.Class.getAnnotation(Class.java:187) at org.apache.tuscany.sca.implementation.java.introspect.impl.ConversationProcessor.visitClass(ConversationProcessor.java:49)
Check the size of the translated class, it should become one third bigger.
If you need backport-util-concurrent-3.1.jar you have probably run Retrotranslator without specifying "-target 1.5". Always use "-target 1.5" and "-classpath retrotranslator-android-1.2.6.jar" even if repeatedly translating classes. However I recommend to translate code in one pass.
Cheers,
Taras
Follow-up to Android Developers
Hi Taras,
I think you're right, but I find weird since I have retrotranslated all classes using the backport and target options. This is how I'm running retrotranslator now:
$ java -jar ../Retrotranslator-1.2.6-bin/retrotranslator-transformer-1.2.6.jar -srcdir srcdir -backport java.rmi.Remote:java.lang.Cloneable -target 1.5 -reflection safe -stripannot -embed . -classpath ../Retrotranslator-1.2.6-bin/retrotranslator-android-1.2.6.jar -verbose
Just to double check I rebuilt my workspace and ran retrotranslator again as shown above. I don't get any errors when running retrotranslator 1 2 but still get the same errors when running the calculator-android project. Also, I checked the sizes of the translated classes and found that they are not becoming much bigger 3 4. Do you think I'm missing something?
Thank you so much for all your help.
1 http://androidindelft.googlepages.com/tuscany_android_retr_output.txt![]()
2 http://androidindelft.googlepages.com/tuscany_rev_retr_output.txt![]()
3 http://androidindelft.googlepages.com/5Jul_retrotranslated.jpg![]()
4 http://androidindelft.googlepages.com/5Jul_NOTtranslated.jpg![]()
Reply from Android Developers
Hi Oscar,
The command line looks OK, but the embed option cannot be used there
since your srcdir does not point to the root package of your classes.
So don't use this option but add retrotranslator-android-1.2.6.jar to
your project instead. If the problem persists point srcdir exectly to
the root package (e.g. -srcdir
tuscany_android/mobile-android/calculator-android/bin)
BTW, the size of your classes must change significantly. I have
translated QName.class from Xalan-J and its size increased from 2827
to 4083 bytes.
Regards,
Taras
Follow-up to Android Developers
Hi Taras,
I was missing the point on the embed option. Thanks for the tip!
Today, I tested the newest version of retrotranslator (1.2.7) and did not get the RMI errors as before or the getAnnotation errors that indicated code wasn't being retrotranslated (appropriately). Instead I got a NoClassDefFoundError for java.beans.Introspector. I worked around this issue by commenting out the java.beans.Introspector import and related code. I am now getting NoClassDefFoundError on javax.jws.WebService 1.
I found that this class is not included in the Android package list and was wondering if maybe you had any suggestions. Is this something that could be backported as well?
Thank you very much for all your suggestions, they've been really helpful!
PS. I checked out the class sizes and found that classes that rely heavily on annotations are increasing 1/3 in size (from 8k to 12k for example), as you adviced.
1 http://cwiki.apache.org/confluence/display/TUSCANYWIKI/7Jul2008+-+Error+Stack+trace![]()
best,
-oscar