[Gvsig_desarrolladores] migracion de una extensi髇

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Lun Ago 10 11:46:10 CEST 2015


El 7 de agosto de 2015, 9:19, Ana Calle <nico200307 en gmail.com> escribi贸:

> buenos d铆as,
> tengo que hacer una migraci贸n de una extensi贸n desarrollada bajo la
> version gvsig 1.10 a la versi贸n gvsig 2.1
> 驴es m谩s recomendable trabajar ya sobre la versi贸n gvsig 2.2, y se puede
> aplicar la misma documentaci贸n que est谩 publicada para la 2.0??
>
> Hola Ana,
mi consejo es que migres a la 2.2 mientras no haya ninguna
restriccion de los usuarios de tu plugin.
Sobre si la documentacion que hay de la 2.0 te vale...
psssaaa...
tendras que usarla como referencia pero no al pie
de la letra; de la 2.0 a la 2.1/2.2 han habido bastantes cambios,
pero no va ha haber documentacion para migrar de la 1 a la 2.1 o
superiores.

La documentacion que hay sobre migracion de la 1 a la 2 esta en:

"Migraci贸n de proyectos a gvSIG 2.0" [1]
"Migraci贸n de proyectos de gvSIG 2.0.0 a gvSIG 2.1.0" [2]

Una peque帽a nota...
Los cambios de gvSIG 1 a 2.0 son muy muy muy muy grandes.
Los cambios de gvSIG 2.0 a 2.1 afectan sobre todo a como se estructuran los
proyectos.
Los cambios de 2.1 a 2.2 son peque帽os, y no deberian ser
representativos de cara a hacer un desarrollo.

Mi consejo trabaja contra la 2.2.

Tambien te aconsejo que si no conoces nada de maven leas algo, puedes
empezar por [5].


> Y por otra parte, si me pod茅is indicar los primeros pasos para proceder a
> la migraci贸n de manera que pueda aprovechar la mayor parte de mi c贸digo. He
> visto que hay algo de documentaci贸n para proceder a las migraciones de
> c贸digo, pero seguro que hay algunos consejos r谩pidos para poder aprovechar
> lo que ya se tiene no?
>
>
Me temo que no hay trucos para migrar de la 1 a la 2 de gvSIG.
Eso si, te puedo dar algun consejo...

1. El mas importante... "no intentes migrar tu plugin, crea uno nuevo".
   No te alarmes por eso, no quiero decir que lo tires todo a la basura y
   empieces desde cero. Crea un proyecto nuevo y ves trayendote las piezas
   que vayas precisando del viejo al sitio que toque.

2. Usa la estructura de proyecto de gvSIG 2.2 [3]. Puedes o no
   hacerlo pero ten en cuenta que esa es la estructura de los
   proyectos que te vas a encontrar cuando mires codigo de gvSIG 2,
   si sigues trabajando como se hacia en la 1, nunca te acostumbraras
   al codigo de gvSIG 2, y dificultaras el que te podamos echar una
   mano con el codigo.

3. Descargate el proyecto de ejemplo [4], compilalo, y ejecutalo.
   Estudialo un rato y entiende la division en subproyectos y conceptos
   que se ha hecho. Despues adapta los nombres a los de tu proyecto,
   carpetas, groupid, artifactid, paquetes... y comprueba que sigue
   funcionando.
   El ejemplo ya esta configurado para trabajar con la 2.2.0.

Llegados a este punto depende lo estructurado que este tu plugin para que
sea mas o menos facil ir pasandolo.

Si tienes ya una separacion clara entre logica y interface de usuario, API e
implementacion sera cuestion de ir llevando cada cosa al proyecto que toca.

Si seguiste el estilo de codigo que habia en gvSIG 1, no estara muy
estructurado
y lo primero seria algo de analisis para ver que partes son de la logica y
cuales son del interface de usuario. Crear los API de cada una de ellas y
veas a ver
que vas a poder reutilizar de lo que tienes. Con un poco de suerte puedes
reutilizar los interfaces de usuario y los procesos.

Te aconsejo que eches un vistazo a:

"Gu铆a de inicio r谩pido del desarrollador para gvSIG 2.0.0" [6]

No para seguirla ya que algunas cosas ya no estan igual en gvSIG 2.2, pero
las ideas siguen siendo validas.


Al final te vas a encontrar con dos grandes tipos de problemas:

- Problemas derivados del cambio de estructura de los proyectos.
  Que es de lo que va lo que te he comentado hasta ahora.

- Problemas derivados del cambio en las APIs.
  Estos se plantean principalmente en las siguientes areas:
  - Acceso a datos.
    A cambiado todo, te recomiendo que le eches un vistazo a:
    "Documentacion de la libreria de accso a datos, DAL" [7]

  - Manejo de geometrias... lo mismo que con el acceso a
    datos, ha cambiado todo, pero creo que es relativamente
    simple. Lo que si te aconsejo es que siempre que puedas
    evitarlo uses GeneralPath o PathIterator, son causa de muchos
    problemas ya que permiten generar geometrias invalidas.
    Hay algo de documentacion en:
    "Documentacion de la libreria de geometrias" [8]

  - Persistencia de los datos en el proyecto y las preferencias
    de la aplicacion. Esto tambien ha cambiado todo. En relacion
    a las preferencias puedes encontrar algo de documentacion en:
    "Como gestionar las preferencias de un plugin en gvSIG 2.1" [9]
    Sobre la persistencia en el proyecto, pues ahora mismo no se donde
    hay algo de informacion; pero si la necesitas puedo ver de buscarla.

  - Mapcontext, simbolog铆a y etiquetado, los cambios aqui no
    son muy grandes. Lo mas importante es el cambio de nombre
    de algunos paquetes.

En alguno de los enlaces que ya te he indicado lo dice, pero lo recalco...

"No trabajes contra los fuentes de gvSIG, trabaja contra una instalacion
estandard de gvSIG 2.2"

No precisas modificar los fuentes de gvSIG, deberias porder hacer todo
desde tus plugins. Si no sabes como hacer algo pregunta.

Esto no quiere decir que no te puedas bajar los fuentes de gvSIG para
mirarlos
y ver como se hacen algunas cosas.

Puedes encontrar documentacion interesante sobre como compilar gvSIG o un
plugin en los articulos del blog de gvSIG:

"Como descargar y compilar gvSIG 2.1.0 en Linux y Windows" [10]
"Como descargar y compilar un plugin de gvSIG 2.1.0" [11]
"Compilando y depurando un plugin de ejemplo para gvSIG 2.1.0 desde un IDE
(NetBeans)." [12]

Y muy importante:

- "Recomendaciones y trucos para desarrollar con gvSIG 2.1 (1). Recorriendo
datos" [13]

Y cuando hayas terminado con todo esto, te recomiendo que eches un vistazo
a la libreria
"org.gvsig.tools", base de casi todo en gvSIG 2. Creo recordar que en
"Gu铆a de inicio r谩pido del desarrollador para gvSIG 2.0.0"  [6] se
comentaba ya algo de ella.


Y mi ultima recomendacion, que puedes o no seguir, claro. sube el codigo
fuente a algun
repositorio de fuente que sea publico, si lo haces asi sera mas facil
echarte una mano. Si tambien esta el de la 1 publico (y no es gigantesco)
podemos intentar orientarte sobre como estructurarlo al estilo gvSIG 2.2.

Si vas preguntando cosas concretas intenraremos echarte una mano. No duces
en preguntar,
pero piensa que la lista es una labor voluntaria y no siempre podremos
contestar
inmediatamente.

Y si necesitas algo mas de ayuda puedes ponerte en contacto con la
asociacion gvSIG
(puedes escribirle a Alvaro, aanguix en gvsig.com).

Bueno, espero volver a saber como te va,
un Saludo
Joaquin

Enlaces:

[1] Migraci贸n de proyectos a gvSIG 2.0

http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/howto-migrate-projects-to-gvsig-2-0

[2] Migraci贸n de proyectos de gvSIG 2.0.0 a gvSIG 2.1.0

http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2-1-0/migracion-de-proyectos-de-gvsig-2-0-0-a-gvsig-2-1.0

[3] Estructura de un proyecto en gvSIG

http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/crear-un-proyecto-para-gvsig/estructura-de-un-proyecto-en-gvsig
    Aunque se hizo para la 2.0 y puede haber algun cambio para
    la 2.2, puede ayudarte a entender que va en cada sitio.

[4] Proyecto de ejemplo LandRegistryViewer

http://devel.gvsig.org/svn/gvsig-plugintemplates/org.gvsig.landregistryviewer/trunk/org.gvsig.landregistryviewer/

[5] Maven

http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/maven

[6] Gu铆a de inicio r谩pido del desarrollador para gvSIG 2.0.0

http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/developers_quick_start/2-0.0

[7] Documentacion de la libreria de accso a datos, DAL

http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.dal/2.0.0莽

[8] Documentacion de la libreria de geometrias

http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.geom

[9] Como gestionar las preferencias de un plugin en gvSIG 2.1

http://blog.gvsig.org/2015/02/05/como-gestionar-las-preferencias-de-un-plugin-en-gvsig-2-1/

[10] Como descargar y compilar gvSIG 2.1.0 en Linux y Windows

http://blog.gvsig.org/2014/12/15/como-descargar-y-compilar-gvsig-2-1-0-en-linux-y-windows/

[11] Como descargar y compilar un plugin de gvSIG 2.1.0

http://blog.gvsig.org/2014/12/16/como-descargar-y-compilar-un-plugin-de-gvsig-2-1-0/

[12] Compilando y depurando un plugin de ejemplo para gvSIG 2.1.0 desde un
IDE (NetBeans).

http://blog.gvsig.org/2014/12/29/compilando-y-depurando-un-plugin-de-ejemplo-para-gvsig-2-1-0-desde-un-ide-netbeans/

[13] Recomendaciones y trucos para desarrollar con gvSIG 2.1 (1).
Recorriendo datos

http://blog.gvsig.org/2015/04/21/recomendaciones-y-trucos-para-desarrollar-con-gvsig-2-1-1-recorriendo-datos/




> Muchas gracias de antemano
> Saludos
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver hist贸rico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente direcci贸n:
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
jjdelcerro en gvsig.org
gvSIG Association
www.gvsig.com
www.gvsig.org
------------ pr髕ima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20150810/087fdc93/attachment.htm 


M醩 informaci髇 sobre la lista de distribuci髇 gvSIG_desarrolladores