I'm glad Retrotrotranslator works for you Oscar. If you just want to get rid of java.rmi.Remote you may replace it with java.lang.Cloneable using the folowing Retrotranslator option:
-backport java.rmi.Remote:java.lang.Cloneable But in case you have some important code using the java.rmi package you may try to take sources of java.rmi from the Apache Harmony. Then move the sources into another package, so you'll have, for example, mypack.java.rmi, compile and jar them. After that you may use it with Retrotranslator: -backport mypack -classpath mypack.jar But this approach works only if the sources don't employ native code :) Cheers, Taras. On Wed, Jun 18, 2008 at 10:41 PM, Oscar Castaneda < [EMAIL PROTECTED]> wrote: > Thanks again for all your help Taras. After following your suggestion and > adding retrotranslator-android-1.2.6.jar as an external library (as opposed > to an external _user_ library) the retrotranslator related errors > disappeared. I'm now receiving errors about java.rmi.Remote [1], which from > what I could find is not supported in Android. I just thought I'd mention it > in case you have any suggestions :-) > > I will respond also on the Android Developer list as someone else might > find this useful. By mistake I sent the email only to you which I think > resulted in me being the only recipient of your response. > > Again, thanks for all your help. > > [1] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/18Jun2008 > > > On Tue, Jun 17, 2008 at 11:05 PM, <[EMAIL PROTECTED]> wrote: > >> I forgot to mention that you can use the embed option making inclusion >> of retrotranslator-android-1.2.6.jar into the compile path redundant. >> >> So you can add "-embed <a single dot or any package name>": >> >> java -jar >> ../Retrotranslator-1.2.6-bin/retrotranslator-transformer-1.2.6.jar >> -srcdir ../workspace -target 1.5 -reflection safe -stripannot -embed . >> -classpath ../Retrotranslator-1.2.6-bin/retrotranslator-android-1.2.6.jar >> -verbose >> >> On 6/17/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: >> > Hi Oscar, >> > >> > Unfortunately I cannot open the TUSCANY wiki at the moment but it looks >> like >> > the contents of retrotranslator-android-1.2.6.jar hasn't been included >> into >> > the dex file. Try to explicitly refer to it in your code, for instance, >> call >> > net.sf.retrotranslator.android.main.java.lang._Class.cast(String.class, >> > "test"); >> > >> > And you needn't use the 1.4 target - only using the 1.5 one makes sense >> for >> > Android. >> > >> > Cheers, >> > Taras. >> > >> > >> > On 6/17/08, Oscar Castaneda <[EMAIL PROTECTED]> wrote: >> >> Hi Taras, >> >> >> >> Thank you so much for the detailed response. >> >> >> >> I think you're right that when I run the Android project from Eclipse >> it >> >> both compiles the sources into classes and the classes into a dex file. >> I >> >> also agree that the most elegant way would be to add the translation >> step >> >> to >> >> the ADT plugin source code, thus enabling users to run Retrotranslator >> on >> >> the sources from within Eclipse. In some cases, such as mine, this is >> >> preferred over manually translating libraries that contain annotations >> and >> >> then adding them to the the main project (for instance, to simplify >> >> debugging). >> >> >> >> There is a workaround to prevent classes that have already been >> translated >> >> by Retrotranslator to be recompiled from source. The workaround is to >> >> disable the Java Builders from within each project's properties. I >> tried >> >> this and no longer receive the Annotation error: >> >> >> >> java.lang.Class.isAnnotationPresent(Class.java:1131) >> >> >> >> However, I'm getting the error shown below (and listed on the full >> stack >> >> trace in [1]). I took care to include retrotranslator-android-1.2.6.jar >> as >> >> an external library to all Tuscany projects, including >> calculator-android, >> >> as you pointed out. Additionally, I confirmed through the timestamps on >> >> class files and dex file that retrotranslated classes are not being >> >> recompiled and that the dex file was generated a few minutes after >> running >> >> retrotranslator. >> >> >> >> java.lang.NoClassDefFoundError: >> >> net.sf.retrotranslator.android.main.java.lang._Class >> >> >> >> I've tried this running retrotranslator as shown below, setting the >> target >> >> to java 1.5 at first and then to 1.4. >> >> >> >> $ java -jar >> >> /../Retrotranslator-1.2.6-bin/retrotranslator-transformer-1.2.6.jar >> >> -srcdir >> >> /../workspace -target 1.5 -reflection safe -stripannot -classpath >> >> /../Retrotranslator-1.2.6-bin/retrotranslator-android-1.2.6.jar >> -verbose >> >> >> >> What could be going wrong? Any suggestions would be greatly >> appreciated. >> >> >> >> [1] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/14Jun2008 >> >> >> >> >> >> >> >> On Wed, Jun 4, 2008 at 6:44 PM, Taras Puchko <[EMAIL PROTECTED]> >> >> wrote: >> >> >> >>> Hi Oscar, >> >>> >> >>> Retrotranslator does it's job by modifying compiled classes in the >> >>> following way: >> >>> 1. Embedding into each class its metadata (including annotations) as >> one >> >>> big character string. >> >>> 2. Replacing some method invocations, so >> >>> java.lang.Class.isAnnotationPresent is being replaced with >> >>> >> net.sf.retrotranslator.android.main.java.lang.Class.isAnnotationPresent >> >>> etc. >> >>> >> >>> So when you call getAnnotations() on a particular class the code from >> >>> retrotranslator-android-1.2.6.jar will parse the corresponding >> metadata >> >>> and >> >>> return the result. >> >>> >> >>> AFAIK when you run your Android project from Eclipse it both compiles >> >>> your >> >>> sources into classes and the classes into a dex file. So >> Retrotranslator >> >>> has >> >>> no chance to modify classes in between unless you fix the ADT plugin. >> The >> >>> workaround is not to put your sources into Eclipse and to process it >> with >> >>> javac, Retrotranslator and jar manually. After that you may add the >> jar >> >>> to >> >>> Eclipse. >> >>> >> >>> If you execute the following line you should obtain >> mytuscany-android.jar >> >>> that is one-third bigger then the original mytuscany.jar and does not >> >>> contain references to Java 5 reflection methods. >> >>> >> >>> java -jar retrotranslator-transformer-1.2.6.jar -srcjar mytuscany.jar >> >>> -destjar mytuscany-android.jar -target 1.5 -reflection safe >> -stripannot >> >>> -classpath retrotranslator-android-1.2.6.jar >> >>> >> >>> So the line java.lang.Class.isAnnotationPresent(Class.java:1131) in >> the >> >>> stack trace means that the application is based on non-translated >> >>> binaries. >> >>> Maybe you had successfully processed your classes but Eclipse >> overwrote >> >>> them >> >>> after that or Eclipse had already created the dex file before you >> >>> executed >> >>> Retrotranslator. >> >>> >> >>> If you're using Eclipse the most elegant way would be to add the >> >>> translation step to the ADT plugin source code, but otherwise don't >> >>> include >> >>> Tuscany sources into the project, only include a jar processed by >> >>> Retrotranslator and retrotranslator-android-1.2.6.jar. >> >>> >> >>> >> >>> Cheers, >> >>> Taras. >> >>> >> >>> >> >>> On Wed, Jun 4, 2008 at 3:21 PM, <[EMAIL PROTECTED]> >> wrote: >> >>> >> >>>> Hi Taras, >> >>>> >> >>>> I'm trying to run Apache Tuscany on Android as part of my Google >> >>>> Summer of Code project: Incubating and Android in Delft [1]. I've run >> >>>> all the (modified) source code through retrotranslator but still get >> >>>> "native method not implemented" errors that I believe are related to >> >>>> the lack of annotations support on the current Android SDK. >> >>>> >> >>>> To test Apache Tuscany I'm running a modified calculator project >> >>>> (setup as an Android project) called calculator-android. I have >> >>>> imported the Apache Tuscany SCA modules and modified code for Android >> >>>> into an eclipse workspace. Then I'm running retrotranslator from the >> >>>> command line as shown below. I'm keeping the target code at java 1.5 >> >>>> but get the annotation related errors when running the calculator- >> >>>> android as an Android Application. The same thing happens when I try >> >>>> to convert the code to java 1.4. >> >>>> >> >>>> $ java -jar /../retrotranslator-transformer-1.2.6.jar -target 1.5 - >> >>>> stripannot -embed support -reflection safe -classpath /../ >> >>>> retrotranslator-android-1.2.6.jar -srcdir /../workspace/ -verbose >> >>>> >> >>>> Any advice you may have will be greatly appreciated. There's more >> >>>> details on what I'm currently doing in [2] in case you can help. >> >>>> >> >>>> Thanks in advance. >> >>>> >> >>>> [1] >> >>>> >> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Allow+Google+Android+applications+to+easily+consume+business+services >> >>>> [2] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/30may2008 >> >>>> >> >>>> best, >> >>>> -oscar >> >>>> >> >>>> On Apr 3, 5:40 pm, Taras Puchko <[EMAIL PROTECTED]> wrote: >> >>>> > I've made a mistake in my previous post, the correct command is the >> >>>> > following: >> >>>> > >> >>>> > java -jarretrotranslator-transformer-1.2.6.jar -target 1.5 - >> >>>> > stripannot -embed support -reflection safe >> -classpathretrotranslator- >> >>>> > android-1.2.6.jar -srcjar gdata-media-1.0.jar >> >>>> > >> >>>> > To use annotations in your code extract classes that contain or >> >>>> > manipulate annotations into a separate library, translate it >> >>>> withRetrotranslatorand add it as a dependency to the main project. >> >>>> > >> >>>> > Regards, >> >>>> > Taras. >> >>>> > >> >>>> > On 3 Кві, 09:42, Taras Puchko <[EMAIL PROTECTED]> wrote: >> >>>> > >> >>>> > > If your application does not declare or use annotations itself >> you >> >>>> > > may >> >>>> > > translate the dependency before adding it to the Eclipse project: >> >>>> > >> >>>> > > java -jarretrotranslator-transformer-1.2.6.jar -target 1.5 -embed >> >>>> > > support -reflection safe -stripannot -srcjar gdata-media-1.0.jar >> >>>> > >> >>>> > > Regards, >> >>>> > > Taras. >> >>>> > >> >>>> > > On 28 Бер, 17:18, nwmotogeek <[EMAIL PROTECTED]> wrote: >> >>>> > >> >>>> > > > That link describes how to add a target to the build.xml but I >> >>>> > > > don't >> >>>> know >> >>>> > > > how to do that with Eclipse can some one point me to >> instructions >> >>>> > > > on >> >>>> this? >> >>>> > >> >>>> > > > Thanks, >> >>>> > > > -Dave >> >>>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >> >> >> >> >> -- >> >> best, >> >> -oscar >> >> >> >> Oscar Castañeda >> >> >> >> >> >> >> >> -- >> >> best, >> >> -oscar >> >> >> >> Oscar Castañeda >> >> >> > >> > > > > -- > best, > -oscar > > Oscar Castañeda --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] Announcing the new M5 SDK! http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

