Hi,

Thank you for the answers, it looks like it's possible to try something
interesting.

I'm not gonna work on this that much for the moment (partly because it
sounds a bit complicated and because i have a deadline), so i will give you
feedback in a while. The client i am working for is using an ESRI solution
and ESRI is to provide an Android version of their client (it is a Beta for
now). So i use this solution (partly because i can use their own background
and there is no re-projection to do while placing items), but as our final
goal is to be able to use any WFS flow, i will work on it again very soon.

Anyway thank for your support, i come back to you shortly.

Regards,

Rémi Belzanti
[email protected]

2011/4/18 Jody Garnett <[email protected]>

> Yeah I knew that about Andriod; not using Java at all (indeed that is what
> the lawsuit is about).
>
> We do have a way for you to avoid factory spi; you can add a factory
> iteator to the GeoTools base class; the various factory registery are
> supposed to check this ... as well as factory spi.
>
> For a while I have wanted to introduce something similar to the netbeans
> NLookup classes; basically allowing people to switch between Factory SPI,
> OSGi, Spring or whatever in order to "wire" up GeoTools. We do something
> similar in order to work with multiple logging systems (in order to better
> integrate with whatever environment people are using GeoTools in).
>
> You best bet may be to fork the code; and hack away at the various factory
> finders. Start small with making sure the CRS utility class can find an EPSG
> authroity factory; and then move your way up through CommonFactoryFinder and
> DataStoreFinder.
>
> Jody
>
>
> On Mon, Apr 18, 2011 at 7:48 PM, Roy Braam <[email protected]> wrote:
>
>>  Seems to me the .jar files are not loaded/found, maybe compile geotools
>> with the dx tool? I don't think the .jar files are added in the build?? Some
>> wild guessess.....
>>
>> Roy
>>
>> ------------------------------
>> *From:* Rémi Belzanti [mailto:[email protected]]
>> *To:* Jody Garnett [mailto:[email protected]]
>> *Cc:* [email protected]
>> *Sent:* Mon, 18 Apr 2011 11:19:02 +0200
>> *Subject:* Re: [Geotools-gt2-users] GeoTools 2 and Android applications
>>
>>
>> Hi,
>>
>> I wasn't aware that GeoTools uses the Java "SPI" nor what SPI means. I
>> found information about SPI and i'm not really sure that the Android
>> platform can handle that (for example, the package javax.security is handled
>> by Android but javax.security.auth.spi is not). I'm looking for more
>> information about that.
>>
>> By the way, i've found information that may be useful :
>> Android uses the Dalvik virtual machine. The architecture of this VM is a
>> registry, not a stack one like the Java VM.
>> Applications developed for Android must be compiled in Dalvik executables
>> (.dex) with the dx tool. It compiles .java and .class and then convert
>> .class in .dex. So the .dex file is the equivalent to .jar but for Android.
>> Thus, the Dalvik Bytecode is different from the Java Bytecode.
>>
>> So i guess when i import .jar files into my Android project, they are
>> turned into .dex files (or i'm wrong somehow ?).
>> Moreover, the Dalvik VM doesn't use JIT compilation.
>>
>> So this may explain why i have deferences between a compilation on a Java
>> classic project that uses GeoTools and an Android one.
>>
>> Now about what "doesn't work" means to me :
>>
>> I have errors while using the application i created with GeoTools
>> attributes, but not while typing the code.
>> Here is an example of a code that seems correct, but throws me an error
>> while using the application :
>>
>> Map<String, Serializable> pParams = new HashMap<String, Serializable>();
>>
>> DataStore pDS = null;
>> try {
>>      pParams.put("ServeurPrincipal", new URI(endPoint));
>>      pDS = DataStoreFinder.getDataStore(pParams); // <-- Error here
>> } catch (URISyntaxException e) {
>>      e.printStackTrace();
>>
>>
>>
>>
>>
>>
>> } catch (IOException e) {
>>      e.printStackTrace();
>> }
>>
>>
>> The error is :
>>
>> ERROR/AndroidRuntime(262): java.lang.
>> NoClassDefFoundError: org.geotools.data.wfs.WFSDataStoreFactory
>>
>> Some explanation about the code:
>> I want to get data from a WFS server that can be reach through the
>> "endPoint" URL (String).
>> Before i can iterate the data, i have an exception on the getDataStore
>> function.
>> The endPoint URL is something like "
>> http://privateServer/arcgis/services/monPortail/prototype_mobile/MapServer/WFSServer?TYPENAME=monPortail&request=getFeature&service=WFS&version=1.1.0<http://privateserver/arcgis/services/monPortail/prototype_mobile/MapServer/WFSServer?TYPENAME=monPortail&request=getFeature&service=WFS&version=1.1.0>
>> "
>>
>> At this point, i included in the project those .jar files :
>> - gt-api
>> - gt-data
>> - gt-epsg-hsql
>> - gt-main
>> - gt-opengis
>> - gt-wfs
>> - gt-xml
>>
>> I am not able to add every .jar files listed in the
>> geotools-2.7.0.1-bin.zip file because when i'm doing that, i have a Heap
>> space error although i run Eclipse this way : C:\eclipse\eclipse.exe
>> -vmargs -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m _nl fr_FR
>>
>> Another example with another error :
>>
>> Map connectionParameters = new HashMap();
>>
>>
>>
>>
>>
>> connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL", 
>> endPoint);
>> DataStore data = null;
>> // Step 2 - connection
>> try {
>>     data = DataStoreFinder.getDataStore( connectionParameters ); // <-- 
>> Error here
>>
>>
>>
>>
>>
>>
>> } catch (IOException e) {
>>     e.printStackTrace();
>> }
>>
>>
>> Returned error : ERROR/AndroidRuntime(313): Caused by:
>> java.lang.NoClassDefFoundError: org.geotools.util.logging.Logging
>>
>> Another one :
>>
>> Map params = new HashMap();
>>     params.put(WFSDataStoreFactory.URL.key, endPoint); // <-- Error here
>>
>>
>> Here, endPoint is an URL type variable.
>> The error reported is : ERROR/AndroidRuntime(364):
>> java.lang.NoClassDefFoundError: org.geotools.data.wfs.WFSDataStoreFactory
>>
>> Finally, the last test :
>>
>> WFSDataStoreFactory f = new WFSDataStoreFactory(); // <-- Error here
>>
>>
>>
>>
>>
>>
>>
>> Returns : ERROR/AndroidRuntime(417): java.lang.NoClassDefFoundError:
>> org.geotools.data.wfs.WFSDataStoreFactory
>>
>> So far, i use just a selection of .jar files. When i try to import more
>> .jar files, i have a heap space error (eclipse.exe uses about 1150Mo of
>> RAM), with many messages like this in the console :
>>
>> 2011-04-18 10:52:43 - CRLRmap] Dx warning: Ignoring InnerClasses attribute
>> for an anonymous inner class
>> (com.ibm.icu.text.BreakIteratorFactory$1RBBreakIteratorFactory) that
>> doesn't come with an
>> associated EnclosingMethod attribute. This class was probably produced by
>> a
>> compiler that did not target the modern .class file format. The
>> recommended
>> solution is to recompile the class from source, using an up-to-date
>> compiler
>> and without specifying any "-target" type options. The consequence of
>> ignoring
>> this warning is that reflective operations on this class will incorrectly
>> indicate that it is *not* an inner class.
>>
>> For now i don't know what to do with this indication.
>>
>> I hope i gave you enough to have a clue about what is possible to do to
>> use GeoTools correctly with Android.
>>
>> If you need any additional information or want me to test some procedures,
>> please let me know so i can perform tests or improvements about my use of
>> GeoTools.
>>
>> Regards,
>>
>> Rémi Belzanti
>> [email protected]
>>
>> 2011/4/16 Jody Garnett <[email protected]>
>>
>>>  I am not aware of the limits of the andriod platform; you are aware
>>> that GeoTools uses the Java "SPI" system to write up each jar (so they can
>>> find the factories provided by the plugins). Does this mechanism work on
>>> Andriod?
>>>
>>> You will need to provide some more details on what "doesn't work" means?
>>>
>>> --
>>> Jody Garnett
>>>
>>> On Saturday, 16 April 2011 at 4:53 PM, Rémi Belzanti wrote:
>>>
>>> Hi,
>>>
>>> I'm looking for information about how to use GeoTools with Android
>>> system. I'm not sure this is here i can ask questions about that, so don't
>>> hesitate to redirect me to an appropriate place.
>>>
>>> I am using Eclipse on Windows XP. I downloaded the GeoTools 2 zip file
>>> and started to add some .jar files to my project.
>>> The particularity of my project is that this is an Android one.
>>>
>>> I am developing an Android application that would allow me to show on a
>>> map (google map) some features (points but not only) so i tried to use
>>> GeoTools to do that (concretely, my goal is to display features given to my
>>> by a WFS server).
>>>
>>> Today, with the version 2.7.0.1, it appears that GeoTools doesn't work
>>> with an Android project. To have the capacity of creating an Android project
>>> in Eclipse, you have to download and install the Android SDK package.
>>> First i thought i was wrong with the add of .jar files or something, but
>>> when i create a new "classic" java project, it appears that i can use
>>> GeoTools efficiently.
>>>
>>> So my question is, is there any Android version of GeoTools or is there
>>> any particular configuration that i need to do to use GeoTools within
>>> Android applications ?
>>>
>>> I can give you more information about the error messages i have in return
>>> of a code that works on "classic" java project, and about all i've tried to
>>> do with the configuration or add of .jar files.
>>>
>>> Thanks in advance.
>>>
>>> Best regards,
>>>
>>> Remi
>>> zepi30gmail.com
>>>
>>> ------------------------------------------------------------------------------
>>> Benefiting from Server Virtualization: Beyond Initial Workload
>>> Consolidation -- Increasing the use of server virtualization is a top
>>> priority.Virtualization can reduce costs, simplify management, and
>>> improve
>>> application availability and disaster protection. Learn more about
>>> boosting
>>> the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
>>> _______________________________________________
>>> Geotools-gt2-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>>>
>>>
>>>
>>
>
------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to