Java, Ice, Netbeans, Eclipse y otras malas hierbas

Icenetworking

Últimamente he estado cotilleando en el mundo ICE con Java, así que aquí os dejo mis conclusiones. Si alguna de ellas es errónea, os agradecería vuestros comentarios.

Por supuesto... Java + IDE (Netbeans o Eclipse)

Eclipse

Mi primera elección. Me parece un IDE muy completo y depurado. Es sencillísimo trabajar con ICE en él, pero es difícil encontrar un buen editor libre de SWT o Swing, y también es más difícil de manejar Hibernate que con Netbeans.

Instalación

Tenéis que tener las herramientas Java o no haremos nada. Luego os instaláis el plugin de ZeroC para Eclipse (http://www.zeroc.com/eclipse.html) y listo.

Funcionamiento

Es muy sencillo: Creamos un proyecto o tomamos uno existente, en la ventana "Package Explorer" pulsamos sobre él con el botón derecho del ratón y seleccionamos "Slice2java Builder->Add Slice2java Builder".

Aparecerá una carpeta "slice" en nuestro proyecto. Cualquier archivo .slice que se modifique en esa carpeta se compilará automáticamente, generando los ficheros apropiados.

Netbeans

Mucho más feo, más propenso a errores, menos depurado... Todo lo que queráis, pero tiene 2 cosas buenas: trabajar con Hibernate es facilísimo y te genera un .jar en cada compilación con todo lo que requiere el proyecto.

Desgraciadamente, no hay plugin de ZeroC, así que nos toca hacerlo a mano: Nos vamos a las propiedades del proyecto y seleccionamos "Libraries". Aquí tendremos que darle a "Add Library", nos saldrá otra ventana, "Create library", elegimos un nombre chulo como "ZeroC_Ice" y seleccionamos el archivo "/usr/share/java/Ice.jar" que está en el paquete "libzeroc-ice-java".

Con esos pasos, ya nos enlazará con el .jar correspondiente, pero que da la compilación de los archivos slice. Para ello hay dos opciones: Configurar el ANT de Netbeans para que los compile, o hacernos un Makefile a parte. La opción bonita es la primera... Yo he hecho la segunda. Mi Makefile es el siguiente:

all:  communications
 
../communications:
	mkdir $@
 
communications: ../communications
	$(RM) ../communications/*
	slice2java -I/usr/share/slice --tie --output-dir .. ARCHIVO.ice

Para que todo marche, mi Makefile está en el proyecto, dentro de "src/slice" y, claro está, usa el módulo "communications", ya que si usamos otro, Netbeans se mosqueará con nosotros.

Y fin

Bueno... Ahí está un "más o menos" de como juntar todo esto... Lo he descrito en plan rápido, pero es que no hay mucho más. Y lo quería aquí más que nada por si tengo que volver a hacerlo Laughing out loud