Forums

Home » Liferay Portal » Español » 3. Desarrollo

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Cecilia Lopez Gonzalez
Comenzando con el entorno ext: DUDAS
October 28, 2008 4:38 AM
Answer

Cecilia Lopez Gonzalez

Rank: Junior Member

Posts: 27

Join Date: September 25, 2008

Recent Posts

Estoy algo perdida, necesito algo de ayuda!

Estoy comenzando a desarrollar con el entorno ext y necesito que me aclaren algo las ideas. Pasos que he seguido para crear una nueva tabla y utilizar el entorno ext: me descargué liferay-portal-ext-5.1.2

1) Cree un proyecto en el eclipse el cual importa liferay-portal-ext-5.1.2
2) Observo la estructura del proyecto:
/classes
/ext-impl
/ext-lib
/ext-service
/ext-web
/lib
/modules
/output
/sql
/tools
3)En el directorio /ext-impl, creo un paquete denominado com.ext.portlet.prueba
4)En el directorio /ext-impl/com/ext/portlet/prueba creo un archivo service.xml con la siguiente información.
<?xml version="1.0"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 5.1.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_5_1_0.dtd">
<service-builder package-path="com.ext.portlet.prueba">
<namespace>Prueba</namespace>
<entity name="PruebaEntry" local-service="false" remote-service="true" persistence-
class="com.ext.portlet.prueba.service.persistence.PruebaEntryPersistenceImpl">

<!-- PK fields -->

<column name="entryId" type="String" primary="true" />

<!-- Audit fields -->

<column name="companyId" type="String" />
<column name="userId" type="String" />
<column name="userName" type="String" />
<column name="createDate" type="Date" />
<column name="modifiedDate" type="Date" />

<!-- Other fields -->

<column name="name" type="String" />

<!-- Order -->

<order by="asc">
<order-column name="name" case-sensitive="false" />
</order>

<!-- Finder methods -->

<finder name="CompanyId" return-type="Collection">
<finder-column name="companyId" />
</finder>
<finder name="UserId" return-type="Collection">
<finder-column name="userId" />
</finder>
</entity>
<exceptions>
<exception>EntryName</exception>
</exceptions>
</service-builder>
Nota: lo que entiendo es que stoy creando una nueva tabla en la bd llamada PruebaEntry con los campos: companyId, userId, userName, createDate, modifiedDate.

5) Configuro una tarea ant en eclipse para poder generar el servicio. Esta tarea ant toma debe tener asignado el fichero build.xml que se encuentra en el directorio /ext-impl y como target (tarea) generación de un servicio llamado PruebaEntry (tabla que he descrito yo en service.xml)

6) Ejecuto la tarea y me crea una serie de clases en el /ext-imp , /ext-service... pues bien, estas clases tienen todo el mapeo y los métodos necesarios para insertar, modificar, buscar... en la nueva tabla creada.

7)Pues a partir de aquí surgen mis mayores dudas. En el directorio /sql existe un script portal-tables.sql y ahí viene la definición de la nueva tabla que he descrito en el service.xml

create table PruebaEntry (
entryId VARCHAR(75) not null primary key,
companyId VARCHAR(75) null,
userId VARCHAR(75) null,
userName VARCHAR(75) null,
createDate DATE null,
modifiedDate DATE null,
name VARCHAR(75) null
);

8) Observo que en el script portal-tables.sql está el código de creación de la nueva tabla, pero no se ha creado en la bd. ¿Tengo que lanzar yo el script? ¿Por qué me genera un script de todo el portal y no un script sólo con la nueva tabla?

9) DUDAS: Si quisiera ahora crear un portlet con el entorno ext que utilice las clases que se han generado, ¿qué hago me llevo el paquete ext.portlet.prueba a mi portlet ?¿Y debo ejecutar el script? El script que genera no tiene en cuenta qué tipo de base datos estoy utilizando. Eso es otro problema, yo utilizo MySql.
Otro de las dudas que tengo es cuando quiera desplegar el nuevo portlet desarrollado con el entorno ext, si quisiera llevármelo a otra máquina, qué debo llevarme? ¿Tengo que generar un .war con todo el portlet + script ?

Supongo que mucha gente que esté como yo comenzando, tendrá tantas dudas como yo. La documentación es demasiada escasa y el código de otros portlets no tiene ningun comentario, algo que dificulta entenderlo. Espero que alguien pueda guiarme algo, en este punto stoy algo atascada.


Cualquier ayuda será bienvenida, gracias auque sea por leer mi post y mis dudas.
Ignacio Perez Sainz
RE: Comenzando con el entorno ext: DUDAS
October 28, 2008 8:48 AM
Answer

Ignacio Perez Sainz

Rank: New Member

Posts: 8

Join Date: June 15, 2007

Recent Posts

Hola Cecilia:

Nunca me he puesto en serio a desarrollar con Liferay (intento que en mi empresa se use), pero he leido bastante documentación.
Intentare guiarte en lo que pueda:

8) Observo que en el script portal-tables.sql está el código de creación de la nueva tabla, pero no se ha creado en la bd. ¿Tengo que lanzar yo el script? ¿Por qué me genera un script de todo el portal y no un script sólo con la nueva tabla?


En principio yo creo que el motivo de generarte el sql de todo el portal, es que cuando desarrollas, lo haces contra la base de datos que viene embebida (hsql sino me equivoco) y lo normal, es que cuando quieras pasar a un entorno un poco más estable te lleves todo el modelo. Además es posible que quieras incluso modificar alguna tabla del propio liferay con lo que sería necesario llevarte todo el script.

9) DUDAS: Si quisiera ahora crear un portlet con el entorno ext que utilice las clases que se han generado, ¿qué hago me llevo el paquete ext.portlet.prueba a mi portlet ?¿Y debo ejecutar el script? El script que genera no tiene en cuenta qué tipo de base datos estoy utilizando. Eso es otro problema, yo utilizo MySql.
Otro de las dudas que tengo es cuando quiera desplegar el nuevo portlet desarrollado con el entorno ext, si quisiera llevármelo a otra máquina, qué debo llevarme? ¿Tengo que generar un .war con todo el portlet + script ?


No estoy seguro, pero creo que si creas un portlet dentro del entorno ext, es como si quisieras modificar algun porlet ya existente (tagged_content, admin, etc...), es decir, tienes que llevarte el ear o el war con todo liferay incluido (al menos hasta donde yo sé). Si quieres desarrollar un portlet por separado, tendrás que seguir la guía para desarrallar un plugin de tipo portlet.
Julio Camarero
RE: Comenzando con el entorno ext: DUDA
October 29, 2008 4:12 AM
Answer

Julio Camarero

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1664

Join Date: July 15, 2008

Recent Posts

Hola Cecilia,

para desarrollar un portlet lo más sencillo es utilizar el Plugins SDK.
Desde estos plugins puedes utilizar las clases que has creado en en entorno EXT y además son fácilmente exportables, ya que tienes todo el portlet como un plugin en una sola carpeta que puedes copiar y pegar en cualquier equipo y al hacerle un ant deploy aparecerá en tu portal como un portlet más.

Tienes más información sobre plugins SDK en la wiki.

Un saludo!

Julio Camarero
Liferay España
Cecilia Lopez Gonzalez
RE: Comenzando con el entorno ext: DUDA
October 29, 2008 7:15 AM
Answer

Cecilia Lopez Gonzalez

Rank: Junior Member

Posts: 27

Join Date: September 25, 2008

Recent Posts

Hola de nuevo,


Yo ya he trabajado con el plugin SDK y he creado mis propios portlets. El problema que tengo es que por requisitos del proyecto en el que participo, necesitamos realizar cambios en los portlets de Liferay. Algunos los crearemos nuevos utilizando el plugin SDK pero otros como puede ser el portlet Polls necesitamos añadir nuevos campos como Autor, Fecha... por lo que tenemos que hacer modificaciones en el portlet.

Al principio creía que para realizar modificaciones de los portlets existentes debíamos desarrollarlos en el entorno EXT, pero después de varios días leyendo cómo desarrollar con Liferay he comprobado que estaba equivocada.

Tenemos que desarrollar en el entorno de desarrollo Liferay, he leido el siguiente post con el mismo problema que yo y está respondido por Jorge Ferrer , también leí una guía para desarrolladores de Liferay creada por Jorge Ferrer pero muchas cosas están obsoletas (son de otras versiones).

Gracias por contestar, estoy intentando que me funcione, cualquier ayuda es buena auque según entre más a fondo me surgirán los problemas.
Ignacio Perez Sainz
RE: Comenzando con el entorno ext: DUDA
October 29, 2008 8:12 AM
Answer

Ignacio Perez Sainz

Rank: New Member

Posts: 8

Join Date: June 15, 2007

Recent Posts

Cecilia Lopez Gonzalez:
Hola de nuevo,


Yo ya he trabajado con el plugin SDK y he creado mis propios portlets. El problema que tengo es que por requisitos del proyecto en el que participo, necesitamos realizar cambios en los portlets de Liferay. Algunos los crearemos nuevos utilizando el plugin SDK pero otros como puede ser el portlet Polls necesitamos añadir nuevos campos como Autor, Fecha... por lo que tenemos que hacer modificaciones en el portlet.

Al principio creía que para realizar modificaciones de los portlets existentes debíamos desarrollarlos en el entorno EXT, pero después de varios días leyendo cómo desarrollar con Liferay he comprobado que estaba equivocada.

Tenemos que desarrollar en el entorno de desarrollo Liferay, he leido el siguiente post con el mismo problema que yo y está respondido por Jorge Ferrer , también leí una guía para desarrolladores de Liferay creada por Jorge Ferrer pero muchas cosas están obsoletas (son de otras versiones).

Gracias por contestar, estoy intentando que me funcione, cualquier ayuda es buena auque según entre más a fondo me surgirán los problemas.


Hola Cecilia:

Hasta donde yo sé, si quieres modificar un portlet existente, tienes que usar el entorno EXT. En concreto, por ejemplo, si quieres modificar la jsp display_settings.jspf del portlet "tagged_content", lo unico que tendrías que hacer es, copiar la jsp original
<portal>/portal-web/docroot/html/portlet/tagged_content/display_settings.jspf al directorio
<ext>/ext-web/docroot/html/portlet/tagged_content/display_settings.jspf. A continuación ejecutas la tarea desploy (del entorno EXT) y te despliega la nueva jsp. Nunca he tenido que modificar ninguna clase de un portlet, pero intuyo que el funcionamiento será similar, pero en vez de añadir la jsp en el directorio <ext>/ext-web/docroot/html/portlet/tagged_content/ tendrás que añadir la clase en el directorio <ext>/ext-impl/src.

Un saludo.
Julio Camarero
RE: Comenzando con el entorno ext: DUDA
November 10, 2008 3:51 AM
Answer

Julio Camarero

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1664

Join Date: July 15, 2008

Recent Posts

Hola Cecilia,

me extraña mucho que Jorge Ferrer haya dicho eso, podrías poner el enlace al post para aclararnos?

Un saludo

Julio Camarero
Liferay España