<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

	<channel>
		<title>Magazine - java-j2ee</title>
		<link>http://www.genbetadev.com</link>
		<description>
Información sobre el sector de los desarrolladores, el desarrollo de aplicaciones, para móviles, desarrollo web, bases de datos, frameworks y lenguajes de programación		</description>
		<pubDate>2013-05-23 05:39:14</pubDate>

		<generator>http://www.genbetadev.com</generator>
                    <item>
      <title><![CDATA[PrimeFaces: aplicando temas a nuestro proyecto]]></title>
      <link>http://www.genbetadev.com/frameworks/primefaces-aplicando-temas-a-nuestro-proyecto</link>
      <guid>http://www.genbetadev.com/frameworks/primefaces-aplicando-temas-a-nuestro-proyecto</guid>
      <pubDate>Sun, 19 May 2013 04:34:04 +0000</pubDate>

      <author>calendamaia</author>
      <description><![CDATA[
      <p><img alt="PrimeFaces - aplicando temas" src="http://img.genbetadev.com/2013/05/PrimeFaces - framework - cabecera-1.png" class="centro_sinmarco" /></p>

	<p>Ya vimos como &#8220;instalar&#8221; <strong>PrimeFaces</strong> sobre <strong>NetBeans</strong>, así que vamos a dar un segundo paso, y empezar a crear alguna página con este cómodo y ligero framework.</p>

	<p>En esta ocasión vamos a ver una de las características visuales de <strong>PrimeFaces</strong>: los temas de apariencia. Usaremos los que ya están disponibles en el framework, aunque tenemos que tener en cuenta que siempre podremos crear temas propios, y así ampliar el conjunto proporcionado.<br />
<!--more--><br />
<h3>Creando el proyecto y ejecutándolo</h3><br />
Lo primero que debemos hacer es crear un proyecto, y añadir la biblioteca de PrimeFaces a el, de manera que podamos usarlo en nuestras páginas. Estos pasos ya se vieron en el artículo &#8220;<a href="http://www.genbetadev.com/frameworks/primefaces-framework-sobre-jsf-2-0-primeros-pasos">PrimeFaces: framework sobre <span class="caps">JSF</span> 2.0. Primeros pasos</a>&#8220;, con lo cual no los vamos a repetir.</p>

	<p>Una vez creado el proyecto escribiremos el código de la página index.xhtml:<br />
<script src="https://gist.github.com/calendamaia/5597868.js"></script></p>

	<p>Desplegamos el proyecto y vemos el resultado. El aspecto que presenta la página es el siguiente:<br />
<img alt="PrimeFaces - aspecto del tema por defecto" src="http://img.genbetadev.com/2013/05/1-_PrimeFaces_-_Aspecto_del_tema_por_defecto-1.png" class="centro" /><br />
He añadido la aplicación de un efecto al texto presentado &#8220;Pulsa sobre mí para ver como exploto&#8221; para que además podamos ver como se aplican los efectos de JQuery en este framework, para, en este caso, una etiqueta de texto. Así que pulsad sobre el texto para ver el efecto, y cambiad el efecto entre los disponibles en los comentarios que he colocado en la página, para experimentar un poco.</p>

	<p>Acto seguido vemos la página de <a href="http://www.primefaces.org/themes.html">temas disponibles para PrimeFaces</a> y elegimos el que nos guste. Accedemos al <a href="http://repository.primefaces.org/org/primefaces/themes/">repositorio</a> y descargamos el tema elegido. Para nuestro ejemplo nos descargaremos el fichero .jar que contiene todos los temas disponibles:<br />
<img alt="Descargando todos los temas disponibles" src="http://img.genbetadev.com/2013/05/2-Decargando_los_temas_correspondientes.png" class="centro" /></p>

	<p>Añadimos la librería del tema correspondiente al proyecto, o en nuestro caso la librería de todos los temas. Para ello crearemos dentro del directorio <em><span class="caps">WEB</span>-<span class="caps">INF</span></em> una carpeta <em>lib</em>, y dentro de ella copiaremos el fichero .jar que previamente hemos descargado:<br />
<img alt="Copiando el fichero .jar en el lugar correspondiente del proyecto" src="http://img.genbetadev.com/2013/05/3-Copiando_la_librería_de_los_temas_al_proyecto.png" class="centro" /></p>

	<p>Una vez hecho esto, sólo debemos especificar cual de los temas disponibles queremos configurar para nuestro proyecto. Para ello modificamos el fichero <em>web.xml</em>, añadiendo las siguientes líneas:<br />
<script src="https://gist.github.com/calendamaia/5597908.js"></script></p>

	<p>Si volvemos a desplegar el proyecto y vemos el resultado, veremos cómo se ha aplicado el tema que hemos configurado, cambiando el aspecto de toda la página:<br />
<img alt="PrimeFaces - resultado de aplicar uno de los temas disponibles" src="http://img.genbetadev.com/2013/05/4-Resultado_de_la_aplicación_de_uno_de_los_temas.png" class="centro" /></p>

	<p>Esta funcionalidad es útil cuando nuestro tema no va a cambiar, y queremos dar un aspecto a la página distinto al que viene por defecto. PrimeFaces nos permite además un cambio de este aspecto &#8220;en caliente&#8221;, que será el tema que tratemos en el siguiente artículo sobre este framework.</p>

	<p>Más información | <a href="http://www.primefaces.org/themes.html">Temas disponibles para PrimeFaces</a> | <a href="http://repository.primefaces.org/org/primefaces/themes/">Repositorio de temas de PrimeFaces</a><br />
En <span class="caps">GENBETA</span> | <a href="http://www.genbetadev.com/frameworks/primefaces-framework-sobre-jsf-2-0-primeros-pasos">PrimeFaces: framework sobre <span class="caps">JSF</span> 2.0. Primeros pasos</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[ICEfaces 3.3 ya disponible ]]></title>
      <link>http://www.genbetadev.com/java-j2ee/icefaces-3-3-ya-disponible</link>
      <guid>http://www.genbetadev.com/java-j2ee/icefaces-3-3-ya-disponible</guid>
      <pubDate>Wed, 15 May 2013 04:11:29 +0000</pubDate>

      <author>calendamaia</author>
      <description><![CDATA[
      <p><img alt="ICEfaces 3.3 ya disponible" src="http://img.genbetadev.com/2013/05/ICEfaces3.2-cabecera.png" class="centro" /></p>

	<p>Hace unos días anunciábamos la salida de <strong><span class="caps">ICE</span>pdf</strong>, y hoy nos acercamos al producto estrella de <span class="caps">ICE</span>soft: <strong><span class="caps">ICE</span>faces</strong>. Es una plataforma que nos facilita mucho el trabajo bajo las plataformas para las que ha sido diseñado: <strong>JSF2</strong> + <strong>Java EE</strong>. La licencia es Open Source.</p>

	<p><strong><span class="caps">ICE</span>faces</strong> extiende y completa este estándar JavaServer Faces 2, y proporcionando un amplio soporte para Ajax, aparte de un gran abanico de componentes:</p>

<ul>
<li>Los nuevos componentes <span class="caps">ACE</span> (<span class="caps">ICE</span>faces Advanced Components).</li>
<li>Componentes <span class="caps">ICE</span> ideales para navegadores antiguos.</li>
<li>Componentes empresariales (EE)</li>
<li>Etc&#8230;</li>
</ul>

	<p><!--more--></p>

	<p>Como novedades podemos enumerar las siguientes:<br />
<ul><br />
<li>Nuevos componentes <strong><span class="caps">ACE</span></strong> (<span class="caps">ICE</span>faces Advanced Components): ace:comboBox, ace:gMapEvent, ace:message/ace:messages, ace:selectMenu, h:selectOneMenu, <br />
ace:simpleSelectOneMenu y ace:themeSelect.</li><br />
<li>Revisión de los componentes y nuevas características.</li><br />
<li>Actualizaciones de las librerías: <strong>Mojarra</strong> <span class="caps">JSF</span> en este caso a la versión 2.1.19, y  la librería <strong>MyFaces</strong> <span class="caps">JSF</span> a la versión 2.1.10.</li><br />
<li>Compatibilidad con los siguientes navegadores: Chrome 26, Firefox 10.02 &#8211; 20, IE 6, 7, 8, 9, 10 y Safari 6.</li><br />
<li>También para navegadores móviles: Apple iOS Safari, Google Android Chrome, <span class="caps">RIM</span> BlackBerry OS6 WebKit Browser.</li><br />
<li>Compatible con los siguientes servidores de aplicaciones: Apache Tomcat 6 y 7, Oracle Glassfish v3.0 y 3.1, RedHat JBoss AS 5, 6 y 7.</li><br />
<li>Compatible con los siguientes portales como contenedores: Apache Pluto 2.0.3, Liferay Portal 5 y 6.</li><br />
</ul></p>

	<p>Más información | <a href="http://www.icesoft.org/"><span class="caps">ICESOFT</span></a><br />
En Genbetadev | <a href="http://www.genbetadev.com/java-j2ee/icepdf-5-0-nuevo-lanzamiento-de-icesoft"><span class="caps">ICE</span>pdf 5.0</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[PrimeFaces: framework sobre JSF 2.0. Primeros pasos.]]></title>
      <link>http://www.genbetadev.com/frameworks/primefaces-framework-sobre-jsf-2-0-primeros-pasos</link>
      <guid>http://www.genbetadev.com/frameworks/primefaces-framework-sobre-jsf-2-0-primeros-pasos</guid>
      <pubDate>Tue, 14 May 2013 13:25:21 +0000</pubDate>

      <author>calendamaia</author>
      <description><![CDATA[
      <p><img alt="PrimeFaces framework sobre JSF2" src="http://img.genbetadev.com/2013/05/PrimeFaces - framework - cabecera.png" class="centro_sinmarco" /></p>

	<p>Cuando utilizas la tecnología <strong><span class="caps">JSF</span></strong> para la vista de una aplicación Web, no puedes menos que sentir que te faltan componentes más potentes, y con más versatilidad. Para suplir estas carencias existen varias empresas que compiten con distintos frameworks, y que nos hacen la vida más fácil. Hoy presentamos a uno de ellos que nos viene de tierras turcas: <strong>PrimeFaces</strong>.</p>

	<p>El punto fuerte de <strong>PrimeFaces</strong> es la sencillez de instalación y lo poco pesado que es. El mantenerlo liviano, sin complicaciones a la hora de instalarlo, es decir, sin dependencias ni configuraciones, hace que podamos estar usándolo en unos pocos segundos. Veremos en este artículo cómo hacerlo, y nos introduciremos en uno de los frameworks más populares en el mundo <strong><span class="caps">JSF</span></strong>.</p>

	<p><!--more--></p>

	<p><h3>Algunas características de PrimeFaces</h3><br />
Enumero algunas de las cosas que nos ofrece PrimeFaces son:<ul><br />
<li>Un interesante conjunto de componentes (editor <span class="caps">HTML</span>, autocompletado, gráficas,&#8230;)</li><br />
<li>Soporte para Ajax, basándose en el estándar <span class="caps">JSF</span> 2.0 Ajax <span class="caps">API</span></li><br />
<li>Sin dependencias, ni configuraciones, además de ser muy ligero (1802Kb en su versión 3.5)</li><br />
<li>Soporte para interfaces de usuario sobre dispositivos móviles, nos provee de un kit para este menester.</li><br />
<li>Múltiples temas de apaciencia, listos para usar.</li><br />
<li>La documentación, para mi forma de entender, está muy currada y organizadita</li><br />
<li>Amplia difusión del framework, con lo cual existe una comunidad que respalda al proyecto.</li><br />
</ul></p>

	<p>Podría seguir enumerando cosas, pero para mi estas son las más importantes.</p>

	<p><h3>Creando un proyecto Web con <span class="caps">JSF</span></h3><br />
Os voy a mostrar como se hace con Netbeans, pero estas instrucciones son extensibles al software que utilicéis para escribir y desarrollar vuestras aplicaciones con <strong>Java</strong>.</p>

	<p>Lo primero que haremos es crear un nuevo proyecto Web:<br />
<img alt="PrimeFaces - creando un proyecto Web" src="http://img.genbetadev.com/2013/05/1-Nuevo_proyecto-2.png" class="centro_sinmarco" /></p>

	<p>Pulsamos &#8220;Next&#8221; y elegimos el servidor en el que queramos que se despliegue la aplicación, en mi caso tengo Glassfish 3.1.2 instalado:<br />
<img alt="PrimeFaces - eligiendo el servidor donde desplegar" src="http://img.genbetadev.com/2013/05/2-Nuevo_proyecto-1.png" class="centro_sinmarco" /></p>

	<p>De nuevo &#8220;Next&#8221; y le decimos que queremos usar <strong>JavaServer Faces</strong> como framework para la aplicación Web que vamos a crear:<br />
<img alt="PrimeFaces - eligiendo el framework para la aplicación Web" src="http://img.genbetadev.com/2013/05/3-Nuevo_proyecto-1.png" class="centro_sinmarco" /></p>

	<p>Pulsando &#8220;Finish&#8221; tendremos el proyecto creado con la siguiente estructura:<br />
<img alt="PrimeFaces - Visión del proyecto una vez creado" src="http://img.genbetadev.com/2013/05/4-Visión_del_proyecto.png" class="centro" /></p>

	<p><h3>Configurando el proyecto para usar PrimeFaces</h3><br />
Como indiqué en las características de PrimeFaces, la instalación es nula, y lo vamos a ver ahora, veremos que con añadir la librería al proyecto, y añadiendo una línea en el código de la página ya lo tendremos operativo.</p>

	<p>Para añadir la librería al proyecto, cada uno puede operar como desee, yo voy a crear una librería global, ya que así luego ya la tengo creada para sucesivos proyectos. Pero insisto, cada uno debe hacerlo como sea su costumbre, o la necesidad de cada caso.</p>

	<p>Para crear la librería global nos vamos a la pestaña de proyecto (&#8220;Projects&#8221; en la zona derecha de la pantalla), y pulsamos con el botón derecho sobre el nombre del proyecto, eligiendo las propiedades de este (&#8220;Properties&#8221;), accederemos a la siguiente pantalla, en la que tendremos que elegir la categoría &#8220;Libraries&#8221;:<br />
<img alt="PrimeFaces - creando la librería global" src="http://img.genbetadev.com/2013/05/6-Propiedades_del_proyecto-librerias.png" class="centro_sinmarco" /></p>

	<p>Pulsamos en añadir librería (&#8220;Add library&#8221;), le damos el nombre deseado a la librería que vamos a crear. Yo le he dado el nombre &#8220;Genbetadev&#8221; pero sería más lógico crearla con el nombre &#8220;PrimeFaces3.5&#8221; por ejemplo:<br />
<img alt="PrimeFaces - Añadiendo una librería global" src="http://img.genbetadev.com/2013/05/8-Añadiendo_una_librería.png" class="centro_sinmarco" /></p>

	<p>Una vez definida, le añadimos el fichero .jar correspondiente:<br />
<img alt="PrimeFaces - añadiendo una librería - paso 2" src="http://img.genbetadev.com/2013/05/9-Añadiendo_una_librería.png" class="centro_sinmarco" /></p>

	<p>Pulsamos en OK, y ya tenemos &#8220;instalado&#8221; PrimeFaces para poder usarlo en nuestro proyecto. Lo escribo entre comillas, porque como veis, no hemos tenido que configurar nada de nada, simplemente añadir la librería, lo cual es el colmo de la sencillez.</p>

	<p><h3>Probando que funciona en una página</h3><br />
Ahora editaremos la página index.xhtml que se ha creado por defecto en el proyecto y añadiremos la siguiente línea en la cabecera de esta:<br />
<img alt="PrimeFaces - Añadiendo código a la página" src="http://img.genbetadev.com/2013/05/10-Escribiendo_código.png" class="centro" /> </p>

	<p>Acto seguido añadimos alguno de los componentes de PrimeFaces, desplegamos el proyecto y vemos el resultado:<br />
<img alt="PrimeFaces - añadiendo un componente" src="http://img.genbetadev.com/2013/05/11-Escribiendo_código.png" class="centro" /></p>

	<p>Con esto vemos que PrimeFaces está funcionando, y estamos listos para usar cualquiera de los componentes que nos ofrece. Iremos profundizando en sucesivos artículos en este framework.</p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Java 8 se retrasa a 2014 ]]></title>
      <link>http://www.genbetadev.com/java-j2ee/java-8-se-retrasa-a-2014</link>
      <guid>http://www.genbetadev.com/java-j2ee/java-8-se-retrasa-a-2014</guid>
      <pubDate>Fri, 03 May 2013 15:54:09 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img alt="Java 8" src="http://img.genbetadev.com/2013/05/650_1000_java-8.jpg" class="centro_sinmarco" /></p>

	<p>Los incesantes problemas de seguridad que ha sufrido Java en estos últimos meses ha provocado <strong>el retraso de Java 8 hasta 2014</strong>. Llevábamos tiempo escuchando como fecha posible de lanzamiento Septiembre de este año, pero el retraso sufrido en la anterior milestone ha provocado que <strong>Mark Reinhold</strong>, jefe de arquitectura del Java Plataform Group, haya tenido que <strong>anunciar públicamente el retraso de Java 8</strong>.</p>

	<p>Los motivos están bastante claros. Prácticamente todo el equipo de desarrollo ha sufrido una modificación de sus tareas enfocándose en <strong>solventar los bugs de seguridad de Java 7</strong>. El objetivo actual de Oracle es lavar la mala imagen que Java ha obtenido en estos últimos meses, por lo que además de solucionar fallos han puesto el foco en pulir todo en lo que están trabajando en Java 8 para que su lanzamiento no tenga ningún percance. </p>

	<p><!--more--></p>

	<p>Mientras que el <strong>proyecto Lambda</strong> continua como principal características para Java 8, se ha demostrado que se requiere aún mucho más esfuerzo del calculado en un principio. Aspira a dar soporte en un entorno multinúcleo agregando las <a href="http://openjdk.java.net/projects/lambda/">características de <em>Clousures</em> y funciones anónimas</a>, ampliamente usadas en programación funcional. </p>

	<p>De acuerdo con el nuevo calendario, la preview del <span class="caps">JDK</span> para desarrolladores llegaría en Septiembre y en Enero la versión Beta. Por lo que <strong>Java 8 final debería estar en primavera</strong> sobre la fecha del 18 de Marzo de 2014. Mientras tanto mirando al futuro Java 9 no llegará hasta el 2016 con dos años de desarrollo entre versiones.</p>

	<p>Más información | <a href="http://openjdk.java.net/projects/jdk8/"><span class="caps">JDK</span> 8 Project</a><br />
Vía | <a href="http://www.javahispano.org/portada/2013/4/19/confirmado-java-se-8-se-retrasa.html">JavaHispano</a><br />
En Genbeta Dev | <a href="http://www.genbetadev.com/java-j2ee/con-la-proxima-actualizacion-de-java-tocara-firmar-los-applets">Con la próxima actualización de Java tocará firmar los Applets</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Netbeans: formatear variables para el debugger ]]></title>
      <link>http://www.genbetadev.com/java-j2ee/netbeans-formatear-variables-para-el-debugger</link>
      <guid>http://www.genbetadev.com/java-j2ee/netbeans-formatear-variables-para-el-debugger</guid>
      <pubDate>Fri, 03 May 2013 09:00:15 +0000</pubDate>

      <author>calendamaia</author>
      <description><![CDATA[
      <p><img alt="Netbeans, formateando variables" src="http://img.genbetadev.com/2013/05/Cabecera-Netbeans-formateo de variables.png" class="centro_sinmarco" /></p>

	<p>Una de las cosas que más usamos en la programación diaria, es el <strong>debugger</strong>, que nos permite encontrar dónde están los errores en el código. Cuando tenemos estructuras de datos complejas, y queremos navegar por ejemplo por una lista de ellas, la información del debug se nos muestra en forma de árbol, en el cual hay que ir desplegando las distintas ramas. Esto cuando vamos con prisa, al final resulta muy tedioso.</p>

	<p>Hoy vamos a ver una funcionalidad de Netbeans, que nos puede ahorrar mucho tiempo, aunque en principio pueda parecer una cosa trivial, en el día a día, resulta muy útil. Os presento el <strong>formateo de variables</strong> para el debugger de <strong>Netbeans</strong>.</p>

	<p><!--more--></p>

	<p>Vamos a exponer un ejemplo muy sencillo, que nos muestre la funcionalidad, sin que nos perdamos en complejidades de código, por lo cual lo mejor es elegir una sencilla aplicación java en formato línea de comandos. </p>

	<p><h4>El código del ejemplo</h4><br />
Vamos a tener dos clases: por un lado la clase AplicacionJavaFormateoVariables.java y donde almacenaremos los datos DatosBean.java, que no será más que una clase con dos propiedades y sus correspondientes métodos Getters y Setters:</p>

	<p><script src="https://gist.github.com/calendamaia/5487122.js"></script></p>

	<p><script src="https://gist.github.com/calendamaia/5487125.js"></script></p>

	<p><h4>Definiendo el punto de ruptura</h4><br />
Para el ejemplo, pondremos un punto de ruptura en el fichero AplicaciónJavaFormateoVariables.java en su línea 13, que corresponde a una línea con un System.out.println, que no sirve para nada más que eso, como sitio donde poner el punto ruptura, ya que a esa altura ya estará rellena la lista, que es la que vamos a usar para ver esta funcionalidad.</p>

	<p><img alt="Lugar donde situar el punto de ruptura" src="http://img.genbetadev.com/2013/04/Punto_de_ruptura.png" class="centro" /> </p>

	<p><h4>Arrancando la aplicación</h4><br />
Si nos situamos en la ventana de proyectos, y sobre el nombre de la aplicación pulsamos el botón derecho, podremos arrancarla en modo debug. Hagámoslo y veamos que ocurre:</p>

	<p><img alt="Arrancando la aplicación en modo debug" src="http://img.genbetadev.com/2013/04/Arrancando_la_aplicación_en_modo_debug-1.png" class="centro" /></p>

	<p>Al arrancar la aplicación, en modo debug, se parará en el punto de ruptura que previamente le habíamos definido, y si vamos a la pestaña de variables veremos lo siguiente:</p>

	<p><img alt="Viendo el contenido de las variables con el debugger" src="http://img.genbetadev.com/2013/04/Viendo_variables_con_el_debug.png" class="centro" /></p>

	<p>Observando lo que nos pone, vemos que para obtener el valor que nos interesa, tenemos que abrir uno a uno los elementos de la lista, ya que el campo value &#8220;#83&#8221;, no es que nos aclare mucho. En nuestro ejemplo, el Bean sólo tiene dos propiedades, pero imagina un Bean más real lleno de propiedades a las que queremos acceder. </p>

	<p><h4>Personalizando la salida de las variables en el debug</h4><br />
Lo que vamos a hacer es personalizar esta salida en la ventana de variables, para que nos muestre lo que queremos de una forma más rápida, y sólo lo que nos interese en un momento dado.</p>

	<p>Para ello nos vamos a ir a Tools &gt; Options &gt; Java (pestaña) &gt; Java Debugger (pestaña), lo cual nos mostrará la siguiente pantalla:</p>

	<p><img alt="Formateando variables en el debugger" src="http://img.genbetadev.com/2013/04/netbeans_-_formateando_variables_-_parte_1-1.png" class="centro" /></p>

	<p>Una vez en esta pantalla, pulsaremos en &#8220;Variable formatters&#8221; (tal y como se muestra en la anterior imagen), y después sobre el botón &#8220;Add&#8230;&#8221;, para añadir una nuevo <em>variable formatter</em>, escribimos el nombre que queremos darle al formateador, el nombre del Bean, incluida la ruta completa de su paquete. Y lo más importante, dónde pone &#8220;Value formatted as a result of code snippet&#8221; escribimos el método del Bean que nos devolverá el valor que queramos representar, en mi caso he utilizado el método toString(), que previamente había escrito dentro del Bean:</p>

	<p><img alt="Asignando un formateador de variable y el método correspondiente" src="http://img.genbetadev.com/2013/04/netbeans_-_formateando_variables_-_parte_1-3.png" class="centro" /></p>

	<p>Sólo resta pulsar el botón &#8220;OK&#8221; y ver que resultados hemos obtenido con todo esto. </p>

	<p><h4>Obteniendo los resultados</h4><br />
Para ello volvemos a ejecutar la aplicación en modo debug, y volvemos a ver que valores tiene la lista en la pestaña de variables:</p>

	<p><img alt="Vemos los resultados del formateo de variables en la pestaña de variables del debug" src="http://img.genbetadev.com/2013/04/netbeans_-_formateando_variables_-_parte_1-4.png" class="centro" /></p>

	<p>Como se puede observar, en el campo &#8220;value&#8221; ahora nos aparece el valor devuelto por el método toString(), que habíamos indicado en el formateador, y que nos da la información que deseábamos sin tener que deplegar cada elemento de la lista. Esto cobra más potencia cuanto más jerarquizado este cada uno de los elementos de la lista. Imagina que te falla una propiedad de un Bean que es a su vez propiedad de otro Bean, que es cada uno de los elementos de la lista (y cuanto quieras complicarlo). En este ejemplo, para ver la propiedad deseada habría que ir abriendo el árbol, lo cual resulta muy tedioso. </p>

	<p>Mi consejo es que probéis esta funcionalidad, y ya veréis como luego, en el trabajo diario, como ya especificaba al principio del artículo, os será de mucha utilidad.</p>

	<p>Página de Netbeans | <a href="https://netbeans.org/">Netbeans</a><br />
Más información | <a href="http://www.pellissier.co.za/hermien/?p=722">Getting More out of the Debugger</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[ICEpdf 5.0, nuevo lanzamiento de ICESOFT ]]></title>
      <link>http://www.genbetadev.com/java-j2ee/icepdf-5-0-nuevo-lanzamiento-de-icesoft</link>
      <guid>http://www.genbetadev.com/java-j2ee/icepdf-5-0-nuevo-lanzamiento-de-icesoft</guid>
      <pubDate>Mon, 29 Apr 2013 05:10:40 +0000</pubDate>

      <author>calendamaia</author>
      <description><![CDATA[
      <p><img alt="ICEpdf, nuevo lanzamiento de ICESOFT" src="http://img.genbetadev.com/2013/04/ICEpdf - Nuevo lanzamiento de ICESOFT.png" class="centro_sinmarco" /></p>

	<p>Ya está disponible la versión de <strong><span class="caps">ICE</span>pdf 5.0</strong>, software de código abierto, que nos hará más fácil la manipulación de documentos <strong><span class="caps">PDF</span></strong>. Puede actuar en varios escenarios: como aplicación independiente para ver ficheros <span class="caps">PDF</span> y embebido en nuestras aplicaciones.</p>

	<p>La <span class="caps">API</span> es 100% <strong>Java</strong> y nos presenta como novedades la gestión de anotaciones, un nuevo y más eficiente motor de parseo, y el soporte para “True Type Font Hinting”. Además se pueden usar capas, y para las imágenes, máscaras y transparencias.</p>

	<p><!--more--></p>

	<p>Para el uso de <strong><span class="caps">ICE</span>pdf</strong> en el renderizado de documentos en tiempo real en el servidor, simplemente tendremos que desplegarlo y comenzar a usarlo. Nos ofrecerá funcionalidades como la de extraer texto e imágenes del fichero <span class="caps">PDF</span> o convertir el fichero a un formato gráfico (jpg, gif, png).</p>

	<p>Como en muchos otros casos tenemos la posibilidad de escoger entre dos versiones: <strong><span class="caps">ICE</span>pdf Open Source</strong> y <strong><span class="caps">ICE</span>pdf Pro</strong>, esta última de pago y con algunas mejoras sobre la gratuita. Las nuevas características que podemos encontrar se podrían enumerar de la siguiente forma:</p>

	<p><ul><br />
<li>Anotaciones (leer/crear/editar)</li><br />
<li>Soporte de capas, para poder insertar contenido en ellas</li><br />
<li>Mejora en el enmascaramiento de imagen y transparencias</li><br />
<li>Multi-threading para gestionar la <span class="caps">CPU</span> más eficientemente</li><br />
<li>Mejora en la administración de memoria</li><br />
</ul><br />
<del></del></p>

	<p>Sitio oficial | <a href="http://www.icesoft.org/java/projects/ICEpdf/overview.jsf"><span class="caps">ICESOFT</span></a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Con la próxima actualización de Java tocará firmar los Applets ]]></title>
      <link>http://www.genbetadev.com/java-j2ee/con-la-proxima-actualizacion-de-java-tocara-firmar-los-applets</link>
      <guid>http://www.genbetadev.com/java-j2ee/con-la-proxima-actualizacion-de-java-tocara-firmar-los-applets</guid>
      <pubDate>Tue, 16 Apr 2013 05:00:50 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="logotipo java" src="http://img.genbetadev.com/2012/10/java.jpg" class="centro_sinmarco"></p>

	<p>Hace un tiempo analizamos <a href="http://www.genbetadev.com/java-j2ee/java-es-realmente-tan-inseguro-o-la-alarma-social-le-esta-dando-mala-fama">la posible causa de &#8220;la mala fama&#8221;</a> de <strong>Java</strong>, siempre desde el punto de vista de los <em>applets</em> para navegadores, que se ejecutaban libremente en nuestro navegador, siempre que no tomasen derechos en nuestro ordenador más avanzados o estuviesen firmados (o teóricamente no tomasen privilegios avanzados y posteriormente se los cogiesen por su cuenta).<br />
<!--more--><br />
Posiblemente este ha sido el motivo por el que <strong>Oracle</strong>, tras todos los fallos de seguridad que iba acareando, <strong>ha decidido en Java no ejecutar automáticamente ningún <em>applet</em> sin firmar</strong>, aunque si se podrán ejecutar si lo hacemos a conciencia. Esta mejora puede ayudar a que ningún <em>applet</em> maligno se ejecute de forma transparente y escale privilegios para infectar nuestro PC.</p>

<h2>¿Y ya estaríamos a salvo?</h2>

	<p>Puede que muchos de nosotros si, pero por desgracia la mayoría de ciudadanos de este lugar llamado mundo cometan dos de los grandes errores que se lo deja fácil a esas personas que se lucran o divierten infectando los PCs ajenos. La primera es que ante un cartel de &#8220;<em>Desea ejecutar este applet</em>&#8220; el ratón va directo a &#8220;<em>Si</em>&#8220; aunque ponga en la información de este: &#8220;<em>Empresa: Vamos a robarte</em>&#8220; y todos sabemos que en la mayoría de los casos es así.</p>

	<p>Y el segundo gran problema de seguridad de <strong>Java</strong> vuelve a recaer sobre nosotros y no sobre el propio software, y es que tenemos la sana costumbre de no actualizar nada pensando que será una actualización con cuatro <em>chorradas</em> (lo típico, una empresa como es Oracle o podría ser Microsoft o Google se tira una días preparando una pequeña actualización de seguridad por gusto y no por mejorar la seguridad del usuario).</p>

	<p>Pero la culpa de no actualizar las aplicaciones ya no solo recae en los usuarios finales, sino en las empresas que no han sabido adaptarse al buen habito de los usuarios de no actualizar las cosas, como si hacen muchísimas otras empresas, que actualizan el software de forma totalmente transparente para el usuario y solo para <em>chorradas</em> o cambios importantes te preguntan, como es el caso de Firefox o Chrome como navegadores o como hacen los sistemas operativos más comunes.</p>

	<p>Vía | <a href="http://www.javahispano.org/portada/2013/4/10/tienes-una-applet-firmalo-pronto.html">Java Hispano</a><br />
En Genbeta Dev | <a href="http://www.genbetadev.com/java-j2ee/java-es-realmente-tan-inseguro-o-la-alarma-social-le-esta-dando-mala-fama">¿Java es realmente tan inseguro, o la alarma social le está dando mala fama?</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Rest.li, el framework REST + JSON de Linkedin ]]></title>
      <link>http://www.genbetadev.com/desarrollo-web/rest-li-el-framework-rest-json-de-linkedin</link>
      <guid>http://www.genbetadev.com/desarrollo-web/rest-li-el-framework-rest-json-de-linkedin</guid>
      <pubDate>Sat, 30 Mar 2013 10:35:14 +0000</pubDate>

      <author>Fernando Siles</author>
      <description><![CDATA[
      <p><img alt="rest.li" src="http://img.genbetadev.com/2013/03/Captura de pantalla 2013-03-30 a la(s) 12.30.33.png" class="centro_sinmarco" /></p>

	<p>Las <strong><span class="caps">API</span>s</strong> se han ido convirtiendo poco a poco en algo totalmente imprescindible en el mundo del desarrollo moderno: sacamos continuamente datos de ellas y creamos las nuestras propias para comunicar nuestros productos y servicios con el mundo. La gente de <strong>Linkedin</strong> están orgullosos de la plataforma para <span class="caps">API</span>s que han creado para mejorar su funcionamiento interno y por eso, desde hace un par de semanas, han decidido liberla y compartirla con el resto del <em>planeta developer</em>. <strong>Rest.li</strong> es un framework <span class="caps">REST</span> + <span class="caps">JSON</span> para la creación de arquitecturas de servicio robustas y escalables usando descubrimiento dinámico y <span class="caps">API</span>s sencillas desarrollado en Java por algunos de los mejores ingenieros de la prestigiosa empresa del Valle.<!--more--></p>

	<p>Entre las características que mejor pueden definir este Rest.li están las de <strong>diseño orientado a entidades</strong>, una nomenclatura estándar al estilo <span class="caps">HTTP</span> para operar con las entidades anteriores, un <strong>esquema de serialización flexible</strong> y operaciones batch para apoyar el acceso a grandes bases de datos.</p>

	<p>Además, los señores de Linkedin (que son unos <em>jachondos</em>) acompañan este framework Rest.li con dos capas, una de balanceo y otra de transporte, que han decidido llamar <strong>R2 y D2</strong> respectivamente. Que la fuerza los acompañe. Todo, por supuesto, viene muy <a href="https://github.com/linkedin/rest.li/wiki/Quickstart:-A-Tutorial-Introduction-to-Rest.li">bien documentado</a> y está <a href="https://github.com/linkedin/rest.li">disponible en Github</a> (¿dónde si no?) por lo que si eres un desarrollador Java en busca de crear una <span class="caps">API</span> <span class="caps">REST</span>ful potente y sencilla quizás no te vendría mal probar <strong>Rest.li</strong> y ver si se adapta a tus necesidades. Ah, y luego nos cuentas, claro.</p>

	<p>Vía e imagen | <a href="http://engineering.linkedin.com/architecture/restli-restful-service-architecture-scale">Linkedin Engineering</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[¿Java es realmente tan inseguro, o la alarma social le está dando mala fama? ]]></title>
      <link>http://www.genbetadev.com/java-j2ee/java-es-realmente-tan-inseguro-o-la-alarma-social-le-esta-dando-mala-fama</link>
      <guid>http://www.genbetadev.com/java-j2ee/java-es-realmente-tan-inseguro-o-la-alarma-social-le-esta-dando-mala-fama</guid>
      <pubDate>Fri, 01 Feb 2013 10:05:35 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="logotipo java" src="http://img.genbetadev.com/2012/10/java.jpg" class="centro_sinmarco"></p>

	<p>Como ya sabemos <strong>Java</strong> es un lenguaje muy amplio, que abarca muchas plataformas y se usa para propósitos muy variopintos, pero estos días no está destacando por las novedades que va incorporando la plataforma de <strong>Oracle</strong> (que son una barbaridad), sino por los problemas de seguridad que van lastrando su camino y su reputación.<br />
<!--more--><br />
Pero los titulares como &#8220;<em>fallos de seguridad en Java permiten que   [&#8230;]</em>&#8220; , bajo mi punto de vista, no hacen justicia a lo que realmente es <strong>Java</strong> ni tampoco <strong>suelen</strong> expresar el verdadero fallo que permite, por ejemplo, ejecutar código arbitrario en un PC sin autorización.</p>

<h2>¿Donde está el fallo se seguridad?</h2>

	<p>Obviamente los fallos de seguridad dentro de toda la plataforma que comprende <strong>Java</strong> pueden encontrarse en cualquier versión o sistema operativo, pero realmente donde están los fallos de seguridad es en el navegador (en el complemento de <strong>Java</strong> de cada navegador que permiten ejecutar los <em>applets</em>) y no en todos los demás sitios (como por desgracia se está empando a creer).</p>

<h3>¿Pero cual es el fallo de seguridad?</h3>

	<p>Uno de los motivos por lo que los navegadores son el principal foco de <strong>malware</strong> es por el gran acceso que hay a Internet (como es lógico a través del navegador) y por la facilidad que existe para hacer que cualquier persona entre a una web sin conocerla (&#8220;¡Oh! mirar esto&#8221;&#8230; y si, lo normal que no haya nada, pero puede que te encuentres con una página normal que ha conseguido infectarte a través de un complemento del navegador).</p>

<h3>Java y los applets</h3>

	<p><strong>Java</strong> como lenguaje de programación que es y con el que se crear aplicaciones puede necesitar acceso a nuestros archivos, por ejemplo, y no pasa nada si lo tiene, siempre que lo vaya a usar para darles un buen uso y seamos conscientes de su propósito. Pero los <em>applets</em> tienen limitaciones de seguridad (que básicamente es encerrarlos en una <em>sandbox</em>), cualquier <em>applet</em> de una web cualquiera no puede tener acceso a todo nuestro sistema, porque podría hacer cualquier tarea maliciosa sin darnos cuenta.</p>

	<p>Pero esos <em>applets</em>, que pueden ser aplicaciones que sirvan para gestionar nuestros archivos o para hacer un informe avanzado del sistema,  si que necesitan saltarse los bloqueos de seguridad, sino no pueden actuar para realizar sus tareas (actuando prácticamente como ejecutables).</p>

	<p>Pero saltarse los bloqueos de seguridad &#8220;teóricamente&#8221; no es tan fácil y solo cumpliendo ciertos requisitos pueden saltárselos. <strong>Java</strong> permite tener más privilegios a una aplicación si está certificada por una entidad válida.<br />
O también puede haber un <strong>fallo de diseño</strong> del propio lenguaje que permita saltarse estas imitaciones, como ha ocurrido bastantes veces en 2012 y en el primer mes de este año. Este ha sido el motivo por el que últimamente se recomienda deshabilitar <strong>los complementos del navegador de Java</strong> si no son necesarios usarlos.</p>

	<p><strong>¿Java es inseguro?</strong>: no, pero por desgracia los complementos para los navegadores fallan, pero eso no significa que una aplicación de escritorio escrita en <strong>Java</strong> sea peligrosa, ni que lo sea una aplicación de <strong>Android</strong>, ya que para instalar una aplicación en estas plataformas se necesita usar un ejecutable e instalarlas, en cambio en un navegador hasta ahora que han saltado las alarmas se ejecutaban prácticamente sin permiso, pero con las &#8220;sandbox&#8221; que se han podido eludir.</p>

<h3>Cambios en políticas de seguridad de Java</h3>

	<p>Actualmente la ejecución de <em>applets</em> está algo más controlada, ahora <strong>Java</strong> debería de preguntarnos cada vez que ejecutemos una aplicación no firmada o firmada por una entidad certificadora desconocida, haciendo que algún usuario se echase para atrás al ver estas alertas, aunque siempre está el factor <strong>ingeniería social</strong>, si ves un anuncio y al entrar te encuentras esto puede que te pensases si ejecutarlo o no, pero si buscas por ejemplo descargar gratis el <em>Photoshop</em> en una página y te mencionan que para descargarlo previamente tienes que dar a &#8220;ejecutar&#8221;, el usuario medio-bajo tiene bastantes posibilidades de acabar con una pantalla titulada: &#8220;<em>Cuerpo Nacional de Policía</em>&#8220;, que es lo que puede pasar (y pasa) cuando <strong>el complemento de Java</strong>  ejecuta código sin previo aviso.</p>

<h2>Resumen</h2>

	<p>Nosotros como desarrolladores sabemos cual es el problema, simplemente fallos de seguridad en un navegador (usado de forma masiva), pero la gente que no tiene unos conocimientos básicos de seguridad si nadie les previene acabarán con el <em>malware</em> de turno y se extenderá la creencia que últimamente está dando que hablar: &#8220;<em>Java es inseguro, no uses nada que funcione con Java</em>&#8220;, claramente, una creencia errónea, usa el PC, todo lo que quieras, pero con cabeza o te dará igual que sea <strong>Java</strong> u otro programa. </p>

	<p><strong>Vía</strong> | <a href="http://unaaldia.hispasec.com/2013/01/mejorar-y-entender-la-seguridad-del.html">Hispasec</a><br />
<strong>En Genbeta Dev</strong> | <a href="http://www.genbetadev.com/java-j2ee/apple-da-la-espalda-a-java-en-su-ultima-actualizacion-de-osx">Apple da la espalda a Java en su última actualización de <span class="caps">OSX</span></a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Podremos acceder al DNIe desde Android gracias al INTECO]]></title>
      <link>http://www.genbetadev.com/java-j2ee/podremos-accedes-al-dnie-desde-android-gracias-al-inteco</link>
      <guid>http://www.genbetadev.com/java-j2ee/podremos-accedes-al-dnie-desde-android-gracias-al-inteco</guid>
      <pubDate>Tue, 20 Nov 2012 07:01:19 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><iframe width="640" height="360" src="http://www.youtube.com/embed/QB2GJLhzdeg?rel=0" frameborder="0" allowfullscreen></iframe></p>

	<p>Tras el anuncio por parte del <strong><span class="caps">INTECO</span></strong> del lanzamiento del controlador para <strong>Java</strong> del <strong><span class="caps">DNI</span>e</strong> lo que nos faltaba era una aplicación que lo gestionase, pero ya se han encargado de sacar a la luz esta aplicación que permitirá leer estos <em><span class="caps">DNI</span>s</em> que dentro guardan nuestra información (que podrá ser usada con <strong>Java</strong>).<br />

<!--more--><br />

<img alt="Controlador Java DNIe" src="http://img.genbetadev.com/2012/11/controlador_java_134.png" class="derecha" />El controlador lo podemos descargar desde la <a href="https://zonatic.usatudni.es/aplicaciones/controlador-java-dnie">página oficial</a> del <strong><span class="caps">DNI</span>e</strong> (bajo la licencia LGPL2.1 y <span class="caps">EUPL</span> 1.1) y se encarga de abstraernos de la comunicación entre el móvil o tableta y el propio carnet de identidad.</p>

	<p><strong><span class="caps">DNI</span>e Droid</strong> es el nombre de la aplicación que se encarga de usar el puerto <em>microUSB</em> del móvil con un lector de tarjetas compatible con <em><span class="caps">DNI</span>e</em> (que podemos ver en el vídeo) y nos permite autentificarnos con nuestro <em><span class="caps">PIN</span></em> del <em><span class="caps">DNI</span>e</em>.</p>

	<p>Dentro de poco tiempo liberarán el código del controlador y de las aplicaciones asociadas para que se puedan crear aplicaciones que usen este sistema, y nos cuentan que permite obtener datos personales como los puntos del permiso de conducir a través de la <span class="caps">DGT</span> o el historial de vida laboral a través del <span class="caps">INSS</span>.</p>

	<p>Más información | <a href="http://www.inteco.es/pressRoom/Prensa/Actualidad_INTECO/DNIe_Droid"><span class="caps">INTECO</span></a></p>      ]]></description>
      </item>
        	  <atom:link href="http://www.genbetadev.com/categoria/java-j2ee/rss2.xml" rel="self" type="application/rss+xml" />
	</channel>

</rss>


