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

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

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

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

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