[Gvsig_desarrolladores] Generar ejecutable gvSIG 2.0

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Mar Abr 17 15:22:08 CEST 2012


Hola,
por lo que entiendo de lo que comentas estas tratando el desarrollo con
la 2.0 como si estuvieses pensando aun en como iba en la 1.X-

De todo lo que comentas veo dos cosas muy peligrosas de cara al
desarrollo que estas haciendo. las modificaciones en DAL y la libreria
de geometrias. Por lo demas simplemente hay que cambiar un poco el chip
y se ve como es muy sencillo generar los instalables.

De cara a los cambios introducidos en el plugin de edicion, lo suyo
habria sido ver de consensuarlos con producto y desarrollo de gvSIG para
aportarlos al proyecto y no tener dos plugins de edicion, ya que esto
puede acarrear confusion de cara a los usuarios. Una vez hecho, mi consejo
es que le des un nombre el plugin distinto del de la extension de edicion
y generes un paquete para el.



El 16/04/12 18:03, Leticia Riestra Ainsua escribió:
> Hola
>
> Las modificaciones que hemos realizado son las siguientes:
>
> - Proyecto libFMap_dal
>   En nuestro caso, queremos cambiar la lógica de cuando se insertan los
> datos en la base cuando se digitaliza (ahora se insertan nada más
> digitalizar y no hace falta esperar a que pulse el botón terminar)
> En nuestro caso queremos que sea el contrario, así que hemos comentado la
> llamada a exitEditingMode()
>
> - Proyecto libFMap_geometries
>   Estábamos teniendo problemas con vuestro módulo de digitalización. Nos
> dió la sensación de que fallaba para MultiLinea, MultiPunto y
> MultiPolígono, además de que en algunos métodos no indicabáis la palabra
> reservada static y pensamos que hacía falta
>
> Lo que hicimos fue crear una nueva clase Converter con todas esas
> modificaciones
>
> Si consideras que os puede interesar, estamos encantados en facilitaros el
> código de la Converter que hemos modificado.
>
> - Modulo proprio de editing
> Hemos creado nuestro proprio módulo de editing, debido a que la máquina de
> estados cambia un poco (debido a que nosotros nada más digitalizar ya
> guardamos en base de datos y no esperamos a que pulsen en terminar), ademas
> de algunos cambios en herramientas que bien o no tenéis o son diferentes
>
>
> Debido sobretodo a la utilización de nuestro módulo editing, tuvimos que
> quitar todas las referencias al vuestro y ponerlas al nuestro (básicamente
> es igual cambiando algunas herramientas).
> Esto ha implicado cambios en varios proyectos vuestros
>
>
> Por tanto esto, hemos tenido que trabajar con el código fuente y no con el
> ejecutable.
>
> Por otra parte, he leído ya la documentación que me comentaste en
> "Instalables en gvSIG "(
> http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/trabajar-con-un-proyecto/instalables-en-gvsig)
> pero no he acabado de entender cómo tengo que hacer para crear un .exe. He
> entendido (más o menos) la parte de generar paquetes con nuestros plugins,
> pero debido a que yo me baso en un gvsig modificado, necesitaría también
> ese código para poder crear el ejecutable y leyendo esa documentación no he
> entendido como tendría que hacer

Todos los proyectos java (bueno alguna excepcion hay) que aportan plugins a
gvSIG lo hacen usando el mecanismo de paquetes, esten o no en el workspace de
gvSIG. Para incluir el proyecto extEditing en la distro de gvSIG, primero se
genera el paquete y luego este se incluye en la distro. Para generar el paquete
puedes usar el plugin de gvSIG, o si tienes correctamente configurado tu pom,
puedes usar el launcher de eclipse "mvn create installer" teniendo el
proyecto extEditing seleccionado. Esto te dejara el paquete de tu proyecto en
la carpeta build/product/install .

>
> ¿Podrías aclarármelo un poco mejor por favor? Como ves, no tengo muy claro
> como tengo que hacerlo

Si las modificaciones a gvSIG no las has hecho en andami o coreplugins, no
necesitas rehacer el exe que esta en la web de gvSIG (*-online.exe).
Ese exe no lleva
los plugins de gvSIG, solo lo justo para que se pueda arrancar el framework de
andami. Ese exe no trae, por ejemplo, el plugin de edicion, ni el de appgvsig.
Esos plugins estan en el fichero ".gvspks".
Lo que tendrias que hacer es bajarte los ficheros:

- gvSIG-desktop-2.0.0-2045-alpha4-all-all.gvspks
- gvSIG-desktop-2.0.0-2045-alpha4-win-x86-online.exe	

El fichero ".gvspks" es un zip con los plugins que va a llevar la distribucion.
Añadirias los paquetes de tus plugins y quitarias los que no procedan generando
un fichereo algo como "mis-paquetes.gvspkg" y modificarias el fichero
"defaultPackages" (que trae dentro) para que diga que por defecto instale
los plugins que tu quieres.

Una vez hechos esos cambios generarias tu instalable para windows tal como
se indica en "Instalables en gvSIG" -> "Generando nuestra distribución de gvSIG"
Ejecutarias algo parecido a esto:

  gvspkg mkinstall gvSIG-desktop-2.0.0-2045-devel-win-x86-online.exe
mis-paquetes.gvspks

Esto generaria una distribucion de gvSIG basada en el build 2045 pero con tus
plugins personalizados.

Usando este mecanismo no necesitas recompilar el exe de gvSIG, solo le ensamblas
los paquetes que quieres que lleve de base, y asi obtienes una personalizacion.



Si has hecho modificaciones en andami, si tendras que rehacer el
instalador "nativo"
de gvSIG. Yo no te lo recomiendo, antes intentaria ver que cambios
necesitas y vemos
de integrarlos en gvSIG o de añadir el hook que nos permita modificar
su comportamiento
sin tocarlo. De todos modos, si quieres hacerlo, eso esta algo comentado en el
documento :

gvSIG install build preparation steps
http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/trabajar-con-el-nucleo-de-gvsig/gvsig-install-build-preparation-steps

Que ya te comente en el correo anterior.



Respecto a las modificaciones en las librerias, hacerlas supone que puedes hacer
que otros plugins dejen de funcionar por ello. Ten en cuenta que estas cambiando
la logica de funcionamiento de una libreria, DAL, que es usada por
casi cualquier
plugin que se pueda instalar el usuario en tu distribucion, y de los
que no tendras
ningun control. Puedes acabar haciendo que el usuario si se instala algun otro
plugin que tu no has probado acabe perdiendo informacion.

La libreria de DAL es una libreria de acceso a datos, con un API bien definido y
una semantica de funcionamiento en concreto. Si lo que quieres es que tu edicion
se comporte de forma distinta deberias implementar esa funcionalidad a nivel del
plugin usando la libreria standar de DAL, de forma que no interfiera con otros
plugins que usen DAL. De todos modos, si esta justificada la
modificacion que propones
se puede ver de introducir algun cambio para poder poner el store en
un modo especial
que sea el que propongas, pero no cambiar el funcionamiento general para todos
los stores, ya que dejarian de ir otros plugins.

Respecto a la libreria de geometrias, seguramente estas haciendo un
uso incorrecto
de ella. Deberias acceder a las funcionalidades de manejo de geometrias a traves
del API de estas, y no usando alguna clase de utilidad que haya en la
implementacion.
De una version a otra la implementacion de la libreria de geometrias
puede cambiar,
solo se mantiene compatibilidad con el API. Si necesitas alguna
funcionalidad nueva
en el API comentala y veremos que podemos hacer por ello, es facil que
estes queriendo
hacer algo que ahora se hace de otra forma. En los ultimos builds
hemos ido eliminando de la extension de edicion los restos de codigo que hacian
uso de partes de implementacion de geometrias, y para el proximo se eliminara la
dependencia de compilacion con la implementacion de geom.


Otra cosa que tampoco me queda muy clara es lo que comentas de que has
tenido que
modificar otros plugins por cambiar el de edicion. Podriamos ver esos
casos a ver
por que ha sido necesario, es facil que se pueda rodear. Cuantos menos plugins
tengas que personalizar mas facil te sera mantener tu aplicacion, y concentrarte
en lo que esta ha de hacer, minimizando los problemas de
compatibilidad con otros
plugins que puedan existir. Si tienes los fuentes accesibles publicamente podias
pasarme el enlace y le hecho un vistazo a ver si te puedo sugerir algunas cosas
para mejorar la integracion con gvSIG.

Es una lastima que hayas tocado directamente el plugin de edicion en
lugar de ver
si podiamos enriquecer el de gvSIG... si crees que puede ser interesante hacerlo
no dudes en comentarlo, asi el resto de plugins que hicieses no
funcionarian unicamente
sobre el fork de este plugin que habeis hecho y podriamos publicarlos en nuestro
repositorio de paquetes, ya que la politica del proyecto es intentar ofrecer
un punto unico de entrada a los usuarios para intalar todos los
plugins disponibles
para gvSIG. Puedes consultar el documento "Añadir un paquete al repositorio de
paquetes de gvSIG" para que te hagas a la idea de que se precisaria para añadir
tus paqutes de plugins al repo de gvSIG.

Añadir un paquete al repositorio de paquetes de gvSIG
http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/como-contribuir-en-gvsig/anadir-un-paquete-al-repositorio-de-paquetes-de-gvsig

Un saludo
Joaquin


>
> Gracias de antemano
> El 16 de abril de 2012 15:15, Joaquin del Cerro
> <jjdelcerro.gvsig en gmail.com>escribió:
>
>> El 16/04/12 12:17, Leticia Riestra Ainsua escribió:
>>> Hola
>>>
>>> He estado trabajando con el código fuente del último build de gvsig
>> (build
>>> 2045) debido a que he realizado mis propias extensiones pero también he
>>> tenido que modificar alguna extensión para permitir que se adapte a mi
>>> código
>>>
>>> Quería saber cuales son los pasos que tengo que seguir para poder crear
>> un
>>> ejecutable
>>>
>>> Muchas gracias
>>
>> Hola Leticia.
>> Como ya he comentado en algun otro correo, no es recomendable
>> recompilar gvSIG. Lo suyo es desarrollar contra un instalable.
>>
>> De todos modos, si quieres hacerlo asi, esta publica la documentacion
>> que generamos para nosotros mismos relacionada con la generacion de
>> instalables
>> de gvSIG 2.0.
>>
>> Puedes encontrarla en la "Guia para desarrolladores" en la web de gvsig.
>> Te recomiendo una lectura completa de la guia si estas desarrollando con
>> gvSIG.
>> Ten en cuenta que siempre puedes encontrarte cosas que esten desfasadas o
>> no
>> esten completas, pero sera mas facil se te familiarizas con esa
>> documentacion y
>> preguntas dudas concretas.
>>
>> Guia para desarrolladores
>>
>> http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0
>>
>> Puedes encontrar documentacion especifica relacionada con la generacion de
>> instalables de gvSIG en los apartados:
>>
>> Instalables en gvSIG
>>
>> http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/trabajar-con-un-proyecto/instalables-en-gvsig
>>
>> How to create a gvSIG installer with installjammer
>>
>> http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/trabajar-con-el-nucleo-de-gvsig/gvsig-installjammer-howto
>>
>> gvSIG install build preparation steps
>>
>> http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/trabajar-con-el-nucleo-de-gvsig/gvsig-install-build-preparation-steps
>>
>>
>> Te recomiendo empezar a leer por "Instalables en gvSIG", que te da una
>> vision
>> general del modelo de instalables y paquetes que se sigue en gvSIG 2.0.
>> Es muy importante entender el modelo de instalables de gvSIG para saber que
>> se puede hacer y como hacerlo.
>>
>> Has comentado que has tocado el fuente de gvSIG... dos cosas:
>>
>> - Si no has realizado modificaciones en andami, libCorePlugin o alguna de
>> las
>>  dependencias de estos, te puede resultar util partir de un instalable
>> "online"
>>  del build correspondiente a los fuentes con los que has estado trabajando,
>>  y solo particularizarlo con tu propio juego de plugins. Si puede ser este
>>  el caso cuando hayas leido "Instalables en gvSIG" no dudes en preguntar
>> sobre
>>  esto.
>>
>> - Comentas que has hecho modificaciones en el codigo de gvSIG...
>>
>>  Si son modificaciones para la correccion de errores podias revertirlas al
>>  proyecto para que nos podamos beneficiar todos de ellas. No dudes en pedir
>>  un usuario en la "infraestructura para desarrollo de gvSIG" y dar de
>>  alta los tickets con los parches de las correcciones.
>>  Puedes ojearte antes el documento "Contribuciones y parches al código de
>> gvSIG"
>>
>>  Si son particularizaciones propias podias comentar que has necesitado
>> hacer
>>  que no te ha permitido la arquitectura de gvSIG para ver de añadir en
>> gvSIG
>>  los hooks adecuados para que otros no tengan que hacerlo otra vez.
>>
>> Infraestructura para desarrollo de gvSIG
>> https://devel.gvsig.org/redmine
>>
>> Contribuciones y parches al código de gvSIG
>>
>> http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/como-contribuir-en-gvsig/contribuciones-y-parches-al-codigo-de-gvsig/contribuciones-y-parches-al-codigo-de-gvsig
>>
>> Espero tus comentarios
>>
>> Un saludo
>> Joaquin
>>
>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>> Development and software arquitecture manager.
>> jjdelcerro en gvsig.com
>> gvSIG Association
>> www.gvsig.com
>> www.gvsig.org
>> _______________________________________________
>> 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
>>
>
>
>
>
>
> _______________________________________________
> 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
Development and software arquitecture manager.
jjdelcerro en gvsig.com
gvSIG Association
www.gvsig.com
www.gvsig.org


Más información sobre la lista de distribución gvSIG_desarrolladores