On Sat, Aug 15, 2009 at 3:03 AM, Luciano Resende <[email protected]>wrote:
> On Tue, Aug 11, 2009 at 3:08 PM, lookman sanni<[email protected]> > wrote: > > Blocking issues due to android platform > > > > Thread.currentThread().getClassLoader() always return null on android. To > > fix this, i had to pass dalvik classLoader from the client side to all > > places in Tuscany's modules where classLoader is recquired. > > ClassLoader.getResources() doesn't work neither under android. Dalvik's > > pathClassLoader may be a solution. But as we're working on a lightweight > > system, it'll surely be heavy to open stream on about 43 services files > > (needed to run calculator). Instead, i just set up system properties so > that > > each service name will represent a system property and it's > implementation > > class would be the property's value. This will involve no code > refactoring > > on tuscany's modules as for resolving services, system properties are > > firstly checked. > > org.w3c.Node implementation under android doesn't contain getTextContent > > method. I replaced all calls to it by getNodeValue(). > > > > Current state > > Calculator-android can run till ContributionProcessor resolution. In > other > > words, definitions.xml loading's step is already performed. What I'm > trying > > to do now is to implement a an APKContributionProcessor for the new > > PackageType.APK somehow like those existing for JAR and Folder > > ContributionProcessors. > > > > APK structure: An archive uncompressable with any archiver, which contain > > all resources attached to the sources, and a classes.dex file resulting > from > > the dexification of all java sources. I guess artifacts i'll need to > > retrieve in the APKContributionProcessor will be the classes inside the > > classes.dex file. > > > > Long term: perspectives > > Instead of continuing with the current host-android or host-embedded ( i > > don't know yet what's exactly inside), i suggest we rewrite it like an > > android application that'll setup needed system properties on a world > > readable way ( to make it available to any other android application), > and > > bootstrap at build time resources files into a given directory on the > > android system. These resources files will be needed in addition to > system > > properties as we need to provide a description of all services > (classname, > > servicename, url). > > If you make the runtime as an app, how you are going to make other > apps run on this app, in other words, how calculator app will run on > top of tuscany app ? > The idea of host-android (which started as a copy of host-embedded) > was to remove the extensibility we were currently using based on > Service Discover and getResources and hard code the initialization of > these extensions to avoid most of the issues you described above. > I'm not aiming in fact to make the runtime as an app. There'll still be runtime module(s). But the installer i'm talking about will just to send meta-inf files on the device, and set some system properties or preferences any other app like calculator can access. In fact, only ways i think we can use to send files on android's device are adb shell and android java project. Please have a look to he user ids and file access section of the page in [1] > > The Calculator-android project > The one existing is targeting an older version of android sdk. I've just > recreated a new project, by importing services sources from the sample > calculator. > > This should be a good candidate for a patch. I think i'll sent an archive of the project instead of a patch. I went in fact through some quite gloomy build problems with android sdk, due to sdk version problems and may be others. > > > ... > > > Coming soon > > > > Zip of the new calculator-android > > Patch of all modifications on tuscany's modules > > What's kind of modifications do you have for the tuscany modules ? I > guess we don't want to make the existent Tuscany modules more rigid > just to run Android. > I assume we will need to rewrite about 2 to 5 tuscany modules, in order to get classLoader passed everywhere, and some fixes on uses of org.w3c.Node due to non existence of some methods on android. > > > > > -- > > Best Regards > > > > Lookman SANNI > > http://blog.lookouster.org > > MSBI Intern at Umanis Tours Services; > > > > > > -- > Luciano Resende > http://people.apache.org/~lresende > http://lresende.blogspot.com/ > -- Best Regards Lookman SANNI http://blog.lookouster.org MSBI Intern at Umanis Tours Services;
