Liferay's Architecture: Service Builder

Company Blogs January 3, 2013 By Jorge Ferrer Staff

One of Liferay's "secret" ingredients, specially with regards to its architecture, is Service Builder. This is the tool that glues together all of Liferay's layers and that hides the complexities of using Spring or Hibernate under the hood.

Service Builder was originally built when Liferay used EJBs for everything (in fact it's name back then was EJBBuilder). EJBs were actually built around several very sound architectural patterns, but unfortunately the implementation was not as good. One significant pain for developers using EJBs was that it was necessary to write many XML files and Java classes to do even the simplest thing. So Brian Chan, Liferay's founder, who is known for being super efficient, decided to build a tool to do it for him. When Hibernate came around Brian was able to use Service Builder to switch from Entity EJB's to Hibernate literally over a weekend (I was blown away back then). Later on Service Builder also allowed switching from Service EJBs to Spring, gaining a lot of flexibility.

Service Builder has grown a lot since then. I used to be very skeptic with source code generation until I got to know Service Biulder better. It doesn't pretend to be a generic code generation tool, but rather to meet the needs of Liferay's developers (including plugin developers). It is also very opinionated, in the sense that it doesn't offer many options, just the ones we think fit better in Liferay's context. Because of that it might not be a tool for everybody but in exchange it provides a great degree of consistency to anything develped with it and is easier to learn. The general idea is simple, it just takes an XML file as an input (usually called service.xml) and generates the necessary persistance, service layer, web services, ... infrastructure around it. Check Liferay's Developer's Guide for info on how to use it.

One key breakthrough in the evolution of Service Builder actually happened with a contribution (can't remember the name of the contributor, does anyone know?). Previously, all of the code that was going to be generated was included as Strings within Java code and a community member took the time to move all of it to Freemarker templates. That has made the evolution and maintainence of Service Builder so much better that I don't have words to thank him :)

Right now, for every file that Service Builder will generate there is a Freemarker (.ftl) file associated with it. For example, do you want to find out how a * file is generated, you just have to look at service_impl.ftl within com/liferay/portal/tools/servicebuilder/dependencies 

That's it for now, hope you liked the entry and see you soon for the next one.

Liferay's Architecture: Web services

Company Blogs December 26, 2012 By Jorge Ferrer Staff

It's taken a little longer than planned due to Liferay's annual company retreat and the engineering retreat we did along with it, but here I am with the third entry in the Liferay's Architecture blog series. I also plan to write a fourth one and schedule it for publication next week while I'm on vacation. 

My last entry explored how Liferay's code is organized around the concept of services which are used from the frontend (portlets, servlets, ...) but that can also be used by third party or custom plugins using the available Java API. The goal of this entry is to show how the remote services layer is also exposed through several web services protocol for remote consumption.

This layer is built automatically by that wonderful tool called Service Builder based on the remote service interface and annotations left in the implementation by its developers. One of the benefits of automatic generation is that it is easy to support many protocols with little extra effort. However I'm only going to mention the two most significant and used protocols:

  • JSON Web Services: This is a new way of accessing Liferay's web services that was added in 6.1 thanks to the lead of Igor Spasic. It provides a lightweight RPC-based protocol that uses JSON as the data exchange format. This protocol is specially useful when invoking the services from JavaScript (including from the browser) or other non-Java languages. It can also be useful for mobile apps. In fact Liferay Sync Mobile App (guide) for iOS and Android uses this protocol to communicate with Liferay. One very nice and not so widely known feature of JSON Web Services is that it comes with an API browser included. You can access it by going to the URL http://your-host-name/api/jsonws (don't forget to secure it for production). For more information check the JSON Web Services chapter in the Developer's Guide.
  • SOAP: The good old XML-based protocol that has declined in popularity lately but is here to stay. One of the main benefits of SOAP is the amount of tooling available as well as the out of the box integration offered by some software packages. If you need to use SOAP to communicate with Liferay (and it still happens often), it is supported for you. For those curious about the implementation we use Apache Axis 1.4 to handle the protocol aspects. We don't use Apache Axis 2 for a variety of reasons including the fact that it is distributed as many JARs, some of which are already provided by some app servers out of the box which makes support across all app servers quite harder.  For more information check the SOAP Web Services chapter in the Developer's Guide.

One last important aspect you should know is that all web services in Liferay will be invoked using Liferay's permission system. The client applications need to provide the credentials of the user they want to execute the methods as. The simplest option to do it is using HTTP Basic Authentication. That means that if you are accessing web service through an unsafe network (which will be most probably the case) you should use HTTPS to avoid sending the passwords on clear. An alternative coming in 6.2 (which is much nicer in many ways) is to use the OAuth protocol.

That's it for now. I'll use this opportunity to wish you all a Merry Christmas (or for those who don't celebrate Christmas, Happy Holidays! :)) 

Liferay's Architecture: The services layer

Company Blogs November 22, 2012 By Jorge Ferrer Staff

Here I am again for a second entry on the series of Liferay Architecture. This time I'm going to talk a bit more about the services layer of Liferay. As can be seen in the architecture diagram with which I started this series, the services layer is at the core of Liferay Portal:

The Services layer contains the great majority of the business logic for the portal platform and all of the portlets included out of the box. The services are organized in two sets:

  • Portal services (com.liferay.portal.service): contains the services for the portal level entities. A simple trick to identify them is to look at the "Portal" section of the Control Panel menu.
  • Portlet services (com.liferay.portlet.*.service): contains the services used by the different portlets in Liferay. There are also some packages that are not really associated to one portlet (or to more that one), so the word portlet here is being abused a little bit. What matters is that all the services that are no part of the core portal platform are properly organized and componentized.

One very specific aspect of the services layer is that it is divided in two sub-layers:

  1. Local Services (<Entity> this are the ones that that contain the business logic and communicate with the persistance layer.
  2. Remote Services (<Entity> the main goal is to perform security checks before invoking the equivalent method in the local service. In some cases the remote services are also responsible for converting the Java objects returned by the local services layer to other formats. For example, the RSS generation for portlets that support it is done in remote services.

I'm going to finish the entry with some further facts and patterns of Liferay's services layer. The first are more well known but some aren't:

  1. Each persisted entity has an associated service. For example, the User entity has UserService, DLFileEntry (the entity used to store documents of Documents & Media) has the DLFileEntryService.
  2. The services methods are executed in a transaction. That means that if your database supports it (and most do) if there is an error in the middle of the execution of a service method (or in any other method invoked by it), all the previous operations will be undone (rolled back) automatically for you. Liferay implements this under the hood using Spring's transations mechanisms.
  3. The persistance layer is always accessed from local services. You should never access it directly unless you really know what you are doing and you are able to handle transactions manually from the invoking code.
  4. The local services are very strict with the return types of its methods. The return type should be one of the following:
    1. void
    2. <Entity>
    3. List<Entity>
    4. primitive type (this is not used often)

That's it for this second entry. I'm looking forward for your feedback. I'd love to know what topics are more interesting to you so that I can keep them into account for next entries.

Update Nov 29th: Added primitive type as a 4th return type. Thanks David for the note about it.

Liferay's Architecture: The beginning of a blog series

Company Blogs November 12, 2012 By Jorge Ferrer Staff

Hey guys,

As you have already heard we have done quite a few symposiums during October, starting with the one in San Francisco, followed by Germany and finishing with Spain. And by the way, if you live in Italy and haven't had a chance to go to any of them, don't miss out the opportunity to attend the Liferay Italy Symposium this Friday. You will have an opportunity to meet many people and attend some of the most acclaimed talks done at the other symposiums.

Speaking of which, I have received lots of positive feedback about my presentation about Liferay's Architecture (Thanks so much!) so that has encouraged me to try to reach the wider audience of all of you reading Liferay's blog. This will also give me an opportunity to get to the last set of slides that I didn't have time to cover during the symposiums.

Because there is a lot of content, I'm not going to do one blog entry, but rather a series of them. Most probably one per slide in my presentation, so I can explain each slide properly. In this blog entry I'm just going to show the first slide which actually shows a diagram of Liferay's architecture which I use also as an index of my whole presentation. Here it is:

I will cover each of the elements that can be seen in this diagram in more detail in future blog posts, but here are a few important things to note:

  • For a product as large as Liferay there are many ways to represent its architecture. The perspective that I've chosen for this diagram is one that highlights its layered architecture since I think it is one of the greatest aspect of Liferay.
  • It also highlights how flexible Liferay is in terms of accessing external systems as well as being accessed by all sorts of external "clients" from regular desktops to third party apps going through mobile apps and browsers.
  • How Liferay is buzzword compliant with terms such as SOA, WOA, ... even since before the terms existed ;)
  • How Liferay includes many transversal frameworks that are used inside Liferay but also made available for applications built on top of it.

That's it for now, since I want to try and keep each entry short. I'd love to hear your feedback regarding what you are most interested on regarding Liferay's architecture. Next time I'll dig in more detail into the services layer.

Liferay's source is now at GitHub! Go fork it.

Company Blogs August 31, 2012 By Jorge Ferrer Staff

While many people have already find out by themselves I think it's about time to make it official: Liferay's source code is now at GitHub. That includes all of the projects:

  • Liferay Portal
  • Liferay Plugins
  • Alloy UI
  • Liferay Faces
  • Liferay Docs

Why the change? We had been talking for a long time about using a distributed version control system such as Git or Mercurial but it seemed like a huge change. However the number of developers and casual contributors kept increasing and at one point while working on 6.1 we realized the centralized subversion repository was becoming a significant bottleneck. So overnight we decided to give Github a try. We weren't 100% it would work so we didn't make any announcement and made sure to keep SVN repositories in sync. In fact the first few months were quite hard for many developers because Git really requires some mindset changes.

But after around 1 year using it, we can officially say that we love Git and we love GitHub!

It's been a great improvement to our processes and it has allowed us to streamline the code review process (which is pretty strict at Liferay).

I would like to highlight that we are still syncing our old Subversion repositories so you can still use them. But I strongly recommend that you give Github a try. We don't have a date for it yet since some of our internal systems still use the Subversion repositories but eventually we'll stop using them.


One of the great innovations of Github is how easy it is to fork a project and make modifications to it. And it is just as easy to send the changes back to the original project using what is known as a pull request. In fact, for small changes to a single file you can even do all of that through a web user interface. Once you have done the changes we hope you decide to contribute it back so that we all keep working on making Liferay such a great product.

For those of you who want to contribute here are some steps/recommendations:

  1. Find what you can contribute to:
  2. Learn the details of how to do it:
  3. Find an "sponsor" for your contribution. This step probably needs an larger explanation.

Like many successful Open Source projects Liferay has a very large community. And this large community also generates lots of contributions. Many of those contributions are awesome and are what has made Liferay such a good product, but sometimes they are lost among an avalanche of not so good contributions. GitHub is allowing us to improve this by easily implementing a trust network so that casual contributors can rely on more active contributors who can rely on full time developers. That's exactly how Linux handles its contributions so it cannot be such a bad method ;)

So, if you believe your contribution is awesome or you want to receive feedback about it, once you have created the JIRA ticket and set it to "Contributed" state as explained in the links above I recommend that you go to the Contributions category in the forums and you explain what you've done. Common contributors and full time developers are usually subscribed to this category so it should be easy to find someone who wants to review your code.

Additionally, Drew Blessing, from the Community Verifiers team, has started a new initiative to proactively review the contributions as they come to evaluate their value and make sure that the most valuable contributions are applied as soon as possible. Thanks a lot Drew!

Happy forking! Happy contributing!

Symposium de Liferay en España: 26 y 27 de Octubre de 2011

Company Blogs September 19, 2011 By Jorge Ferrer Staff

Hola a todos,

Ya estoy por aquí de nuevo y como no podía ser de otra manera con buenos propósitos de escribir entradas mucho más a menudo. Temas de los que hablar no me van a faltar en los próximos meses con el lanzamiento de la versión 6.1, el marketplace, el roadmap de las siguientes versiones, ...

Estos serán precisamente los temas en torno a los cuales girarán las ponencias del Symposium de Liferay en España que se celebrará los días 26 y 27 de Octubre en Madrid. Después del éxito del año pasado, el evento ha crecido significativamente y durará dos días con dos tracks, uno de negocio y otro técnico.

¿Qué puedo esperar del Symposium? ¿A quien va dirigido?

El evento va dirigido a todas las personas a las que les interese conocer más sobre Liferay y el mundo del software Open Source en el mundo de la empresa. Si has oído hablar de Liferay y te gustaría conocer más sobre él, si lo estás usando y quieres conocer las novedades o simplemente si quieres conocer a las personas que hay detrás del producto, no puedes perderte el Symposium.

También es una oportunidad de conocer a muchas otras personas que usan o están pensando en usar Liferay, a los líderes del proyecto como Bryan Cheung (CEO), Paul Hinz (CMO) o Michael Han (VP Operations), así como a todos los partners de Liferay en España y muchos de los miembros del #LSUG.

Durante el evento se presentará la nueva versión Liferay 6.1 así como el lanzamiento del Liferay Marketplace, un nuevo ecosistema de productos construidos sobre la plataforma.

Y mucho más. Ya puedes consultar la agenda del evento para conocer todos los detalles.

Call for papers: tu oportunidad de participar

Por primera vez, este año ofrecemos también la posibilidad de enviar ponencias para contar experiencias concretas con Liferay. Las ponencias pueden durar 20 minutos o 7 minutos y encuadrarse en uno de los tracks del evento. Algunos ejemplos serían:

  • Track Negocio: ejemplos de uso de Liferay en sectores o con objetivos concretos, integración con otros productos para incrementar el valor de la solución completa, productos construidos sobre Liferay, etc.
  • Track Técnico: uso de librerías, frameworks o cualquier otro tipo de tecnología para extender Liferay o construir aplicaciones sobre él, experiencias de actualizaciones de versión, implementación de estándares, descripción técnica de integraciones con otros productos, ...

Si te interesa, no dejes pasar esta oportunidad ¡sólo quedan 5 días para enviar solicitudes! el plazo termina el viernes 23 de Septiembre. Si tienes una idea interesante tienes tiempo de sobra, dado que basta con que envíes un resumen antes de que termine el plazo. El día 30 se hará el anuncio de las ponencias elegidas y se solicitará la presentación final. Los elegidos no sólo tendrán una entrada gratuita al evento sino que tendrán la oportunidad de compartir escenario con los mayores expertos de Liferay en el mundo.

Puedes ver los detalles en la página del Call for Papers.

Eso es todo por hoy, pero volveré pronto con más. Y por supuesto, confío en verte en el Symposium.

Liferay Dream Day Barcelona: Una gran experiencia

Company Blogs June 29, 2011 By Jorge Ferrer Staff


Ayer se celebró en Barcelona el primer "Liferay Dream Day". Este evento fue posible gracias a nuestro partner iSoco, que cuenta con gran experiencia en actividades de innovación, y fue una gran experiencia para todos los que estuvimos allí. El evento contó con la participación de varios clientes seleccionados de toda España junto con nuestros partners iSocoB2B2000 y GMV con el objetivo de llevar a cabo una tormenta de ideas (de soñar al fin y al cabo) sobre cómo debería evolucionar Liferay en el futuro. Entre los asistentes se dió una combinación muy interesante de jefes de proyectos, gerentes, directores de tecnología, técnicos, comerciales, etc.
Conducido por Philippe Delespesse de Inteligencia Creativa, un experto en este tipo de sesiones de trabajo de innovación, el evento comenzó con la selección de dos temas, gestión de contenidos e integración de aplicaciones. Los participantes fueron organizados en cuatro grupos y Philippe les mostró cómo emplear una tecnología conocida como SCAMPER para generar ideas que pudieran ser una evolución de las funcionalidades existentes o bien ser completamente disruptivas.
Algo en lo que Philippe insistió mucho y que me pareció especialmente interesante es que cuando se está en un proceso de innovación está completamente prohibido decir que una idea es mala (al menos por el momento). La razón es que la naturaleza humana lleva a rechazar de inicio ideas que son muy diferentes, por lo que si no se evita conscientemente algunas excelentes ideas podrían ser abandonadas antes de darse cuenta cómo de buenas pueden ser.
Fue increible comprobar cuantas ideas de las que surgieron son aspectos en los que ya hemos trabajado o estamos trabajando para la versión 6.1 (algo que yo no estaba autorizado a mencionar hasta el final del día), pero lo más interesatne es que para algunas de esas ideas se ofrecieron aspectos y perspectivas nuevas en las que no habíamos pensado. Los participantes también generaron mumerosas ideas completamente nuevas y a cada grupo se le pidió que eligieron las mejores 5. Esas ideas se pusieron en un tablón y a partir de él seguiremos trabajando durante las siguientes semanas para definirlas en detalle y que sean incorporadas en el roadmap del producto.
Sesión de tormenta de ideas - Selección de las mejores ideas
Una segunda fase del día se dedicó a la creación de sitios web para dispositivos móviles. esta sesión usó una metodología diferentes y ello resultó en una conversación que no estaba directamente relacionada con Liferay (o cualquier otra plataforma). En su lugar derivó en una tormenta de ideas sobre lo que cada uno de los asistentes desearía poder hacer cuando están en la calle, viajando, ... si estuviéramos en un mundo ideal. Al principio fue dificil entender cual era la utilidad de esto, pero según Philippe iba capturando las ideas en sábanas de papel que iba colgando de la pared, me di cuenta de la enorme valía que estas tenían para identificar las necesidades reales de los usuarios finales. Si hubiéramos preguntado directamente a los asistentes como propietarios o desarrolladores de un portal, hubieran tenido que imaginar lo que sus usuarios desearían, pero es muy difícil acertar por lo novedoso de el acceso móvil a Internet. 
Algunas de las ideas que surgieron en la segunda sesión
En conjunto, creo que fue una gran experiencia. Todos los asistentes con los que hablé estaban entusiasmado de haber participado en el evento y deseosos de continuar participando, dado que no es tan habitual ser capaz de influenciar cómo evoluciona un producto a este nivel. Aquellos de vosotros leyendo esto que seáis miembros activos de la comunidad de Liferay probablemente ya estáis acostumbrados a poder dar ideas y contribuir al roadmap de un proyecto de software libre como Liferay. Lo realmente positivo de este tipo de eventos es que ayudan a involucrarse a much gente que quizá no lo hubiera hecho de otra manera, pero que tienen una gran experiencia y por tanto su presencia e ideas ayuda a la comunidad a crecer y construir un producto cada vez mejor.
Teniendo en cuenta este éxito es muy probable que el evento se repita en otras zonas de España y el resto del mundo, por lo que si estás interesado en participar comentalo con tu contacto en Liferay o en alguno de nuestros partners. Y por supuesto, si tienes ideas que quieres compartir ahora mismo, no es necesario esperar, puedes sugerirlas en los foros y así conocer la opinión sobre ellas del resto de la comunidad.


Liferay Dream Day Barcelona: What a great experience

Company Blogs June 29, 2011 By Jorge Ferrer Staff


Yesterday we held the first ever "Liferay Dream Day" event in Barcelona. This event was possible thanks to our partner iSoco who is highly specialized in innovation activities and it was an amazing experience for all of us. The event counted with the participation of selected key customers from around Spain along with our partners iSoco, B2B2000 and GMV with the goal of brainstorming (dreaming) how Liferay could evolve in the future. Among the attendants there was a very interesting combination of project managers, CIOs, technical people, sales people, etc.
Conducted by Philippe Delespesse from Inteligencia Creativa, an expert in this type of innovation workshops, the event started by selecting two topics, content management systems and integration of applications. The attendants were organizaed in four groups and Philippe showed how to use a methodology called SCAMPER, to come up with new ideas that could be either an evolution or completely disruptive.
Something that Philippe insisted on and I found particularly interesting is that during an innovation workshop it is completely forbidden to say that an idea is a bad idea (at least for now). The reason is that it is in human nature to reject ideas that are too different, so if we let that happen very good ideas could be rejected before we realize how good they can really be.
It was great to find out that many of the ideas that came up were things that we were already working on for the upcoming 6.1 (which I wasn't allowed to say), but what I found awesome is that even for those ideas some interesting and new perspectives also came up. The participants also came up with lots of new ideas as well and each group were asked to pick the best 5. Those ideas were put on a board and we will keep working on defining them in detail so that they are added to the product roadmap (I'll blog more about the specific ideas later on).
Brainstorming session - Selection of the best ideas
A second phase of the day was dedicated to the creation of websites for mobile devices. This session used a different methodoloy that resulted in a conversation not related directly with Liferay or any platform, but rather about what people would like to be able to do ideally when they are on the move. At first it was hard to understand were this was getting to, but as the ideas were being captured in a board by Philippe I realized that the great thing about it was that the needs identified were real needs by end users. If we would have asked portal developers or administrators they would have answered what they thought their users wanted, which could or could not be what they really want.
Some of the ideas that came out of the second brainstorming session
All in all, I think this was a great experience. All of the participants that I talked to were very excited of having been part of the event and wanted to keep participating, because it is not that usual to be able to influence at this level how a product you use should evolve. For those of you reading this that are active community members, you are already used to how it is possible to participate in the evolution of an Open Source product like Liferay. What is great about this type of events is that it helps getting involved to many people who may have not beeen involved otherwise, but have a great deal of experience that helps the whole community grow and help build a better product for everyone.
Considering this success I'm pretty sure we will repeat the event in other parts of the world, so if you are interested in participating let your account manager know. And of course, if you have ideas that you want to share right away, there is not need to wait, share them in the forums to find out what the rest of the community thinks about them.

Organizations or Communities, which one should I use? The final answer

Company Blogs March 11, 2011 By Jorge Ferrer Staff

One of the questions that comes up more often when I talk to community members, partners and customers is, should I use communities or organizations in my project?

If you haven't asked yourself this question before, let me add some background. Liferay portal is known to have great multi-tenancy support. That means that you can have many independent sites within a single installation of Liferay. There are two ways to build sites in Liferay, organizations and communities, and each one has its own characteristics.

When I am asked this question, I always like to go back to the origin of each of them, because I think it helps understand the differences:

  • Communities: they were created as a way to have groups of pages that could display content and applications. The reason why they were called communities is because the goal of all the initial implementations was to build online communities, but since then people have really been using communities for things for which the term may not apply so well such as corporate sites, product sites, event sites, etc. That's perfectly fine.
  • Organizations: they were created as a way to organize users in a hierarchy. The great thing of this hierarchy is that it allows delegation of user administration, which is a key feature needed by some of the largest installations of Liferay where there are hundreds of thousands or even millions of users. Later, we realized that many people were creating a community associated to each (or several) of their organizations. But keeping this association manually was a bit of a pain, so we improved organizations so that they could have their own site. (For the curious, we did it by creating a community underneath but  hiding that fact from the end user).

Keeping this explanation in mind it should be easier to decide which one to use. If your main purpose is to organize your users and delegate their administration, you should use organizations (It is important to always remember that an Organization Administrator will be allowed to edit the profile of all the users of the organization). If you also need the organization to have pages, then you can use that feature to save time.

If all you want to do is create a website with pages, content and applications that can either be accessed by anyone or just by a group of members of the site, then communities is the best choice.

And of course, remember that you can safely use both communities and organizations within the same portal.

I hope that this explanation makes it easier for you the next time you ask yourself this question, but whenever a question comes up so often I think we should ask ourselves why. We have done it and have been discussing internally how we could improve the product to avoid the question altogether. We have been thinking about several solutions and we are very happy with the one we have found. In fact is super simple, and that's always a good thing.

Improvements in Liferay 6.1 to simplify the creation of sites


Let's start with the great news, in Liferay 6.1 you will not have to decide whether to use communities or organizations upfront. Sounds good, right?

Let me explain what will change and how that will be achieved. The first change that we will be making is to rename what we currently know as Communities and call it Sites. The reason for this should be obvious if you have read the rest of this entry, people have been using Liferay's communities to build sites for a long time so it's always a good way to make things easier to understand to give them a name that means exactly what people use them for.

Of course we will still allow creating sites whose purpose is to serve for building online communities. In fact we plan to make it easier and faster to do that by using predefined site templates for community building.

How about organizations? They will still be the main way to organize users in a hierarchy and they will also have the ability to have an associated Site. The main change that we will be making is that if it has one, the Site of an organization will not be invisible. In other words, when the administrator goes to the Control Panel to the Sites Administration application (which is currently known as Communities Administration) he/she will be able to see all the sites, including those that are associated to an organization.

Additionally, it will be possible for an administrator to associate an existing site to an organization at any time. Of course it will also be possible to undo this association whenever wanted. When a site is associated to an organization the following things will happen (this doesn't change from 6.0, but I prefer to still explain it):

  • All users of the organization will become members of the site automatically. That means that they will have access to the private pages of the site and will be able to do any action that has been configured to be doable only by members.
  • The name and description of the Site will be automatically synced with those of the organization (to save the administrator time).

As you can see, the changes that will be introduced won't be large, but it will make the life of developers building portals using Liferay easier. If someone asks you, how do I build a site to do XYZ? There will be one and only one option that you can choose, while still keeping the benefits that we had before.

Furthermore, as we have started working on theses changes and we keep having many benefits that we hadn't thought of to this simple changes. For example, it will be very easy to have a user who is an administrator of the site of an organization but not of the users of the organization without creating custom roles. Also, it will simplify the management of roles and avoid some duplication that is necessary now some times. Not only that but it will also help make Site Templates more powerful, so expect improvements in this area too :)

We hope you like this idea and of course we would really welcome beta testers (maybe I should say alpha testers) that would like to try these changes as we build them in Subversion to give us feedback.

Finally, you might be wondering if this will require any complex upgrade. The answer is no, because there are no significant changes in the APIs or database model, so all your sites will be kept and those that were associated to an organization will stay that way. The only things that will need to be upgraded (and this will be done automatically for you) is related to organization roles. For example, Organization Administrators, will be automatically made Site Administrators, so that they can keep managing the site as they used to. But now you will have the flexibility to assign both roles or only one to your users.


New version of the Developer's Guide available for reading online and download!

Company Blogs March 4, 2011 By Jorge Ferrer Staff

 Hey guys,

I'm not very active lately due to the great growth that we are experiencing in Spain and the increasing work associated to the upcoming new version, Liferay 6.1. The reason for this blog post is to announce some great news: The second edition of the Developer's Guide is now available at

The document is available online for browsing and searching and can also be downloaded in PDF. Note that the document has a Creative Commons license so feel free to distribute it to make sure it reaches every Liferay Developer out there.

This new edition comes with many many improvements and several new chapters. Here is a quick list of the most significant changes:

  • Overall review of the style by Rich Sezov
  • Overall review of the guide and rewrite of some sections by Jorge Ferrer.
  • Rewrite of the introduction to make it more welcoming to new developers.
  • New section: “Understanding the two phases of portlets: action and render”
  • Extended information of the chapter about “Ext Plugins” by Tomas Polesovsky. New section on JSR-286 security by Tomas Polesovsky.
  • New chapter about the Asset Framework and quick introduction to other Liferay frameworks.
  • New chapter about Liferay IDE
  • New chapter for Conclusions with information about how to learn more after reading this guide.
  • New chapter with links to reference documentation.

But this is only the beginning. We know that you want even more developer documentation and we are already working on a new edition of the guide and additional reference materials for you. Keep an eye for updates in the near future.

I want to give an special THANKS to Tomas Poleovsky for his help extending two of the most important chapters of the guide and also with his help in the review. We also had a lot of help from reviewers, so thanks a lot also to Daniel Sanz, Alberto Montero, Sergio González, Juan Fernández, Julio Camarero from the office in Spain and Tobias Käfer, Oliver Bayer, Deb Troxel, Juan Gonzalez, Boubker Tagnaouti and David Nebinger from the Community Leadership team.

Remember that if you find any issue with any of the official guides or want to make suggestions you can use the Documentation Suggestions category in the message boards.



Liferay Madrid is Hiring - Four Positions Available

Company Blogs October 7, 2010 By Jorge Ferrer Staff

============================== English ===============================

 Liferay keeps growing and our office in Madrid is no exception. Because of this we are looking to incorporate 4 new employees for the following positions:

If you are a fan of Liferay and would like to be part of a young and growing company, read the details for each of the available positions following the links above (in Spanish, since it's a requirement for the job), and send us an email with your CV and a short text explaining to which position you are applying and why you think you are a good fit for the job.

If you don't fit into any of these positions but you think you can help Liferay keep growing you are welcome to also email us. We are always looking for enthusiastic and talented people for the team.

============================== Spanish ===============================

Liferay sigue creciendo y nuestra oficina en Madrid no es una exception. Por este motivo ofrecemos a toda la comunidad de Liferay los siguientes cuatro puestos de trabajo:

Si te consideras un fan de Liferay y te gustaría formar parte de una compañía joven y en pleno crecimiento, lee los detalles de cada uno de los puestos siguiendo los enlaces y envíanos un mail con tu CV y un texto breve explicando a qué puesto aplicas y los motivos por los que crees que harías un buen trabajo en ese puesto.

Si no encajas en ninguno de estos puestos pero crees que puedes ayudar a que Liferay siga creciendo nos encantaría que nos escribieras también. Siempre estamos buscando personas entusiastas y con talento para unirse al equipo.


Easier to find PDF links

Company Blogs October 7, 2010 By Jorge Ferrer Staff

 While the ability to have all of our official docs in HTML form and indexed is great, in some cases we all prefer a PDF version that can easily be printed or checked while offline.

We've always had the PDF version of our guides available but after the redesign they weren't so visible any more, so some of you had been asking about them. As a result we've just applied an small change in the design so that along with the Table of Contents of each guide there is now also a link to download the PDF of that guide:

You will also notice that for those guides that we also offer a printed book through Lulu, there is also a link to get it. Right now the link is only available for the "Administrator's Guide" for 5.2, but the edition for 6.0 will be available very soon. If you are thinking of printing the guide, consider getting the book instead as a way of letting us know that you like it :)

Expanded guide for Ext plugins published within the Developer's Guide

Company Blogs September 30, 2010 By Jorge Ferrer Staff

One of the most interesting improvements of Liferay 6 for developers is that the plugin infrastructure has improved considerably. For example, the hook plugins are now much more powerful and allow customizing the platform in a very maintainable way. Also, the old extension environment has been moved inside the plugins SDK as what are known as Ext plugins.

After publishing our new set of documentation pages and specially the new Developer's Guide, we've been asked for more detailed documentation about Ext plugins. We've been working on it during the last few days and it's now ready and published in the documentation pages.

It includes information about how to migrate an ext environment as well as how to develop and deploy it. We hope you like it.


Documentation revamp: status and future plans

Company Blogs September 22, 2010 By Jorge Ferrer Staff

As you have probably already noticed we've just made public a quite large revamp of our documentation. This is the result of a project that has taken several months and has involved gathering feedback from many sources of Liferay's ecosystem, writing and improving documentation, improving the existing docs and developing tools to make them more easily available.

But we don't want to stop here

The purpose of this post is to review the current status of the docs and the plans that we have to keep improving them. Some of them will not be possible without the help of the community so I hope you can see this as an opportunity to contribute :)

Official documentation:

This is the main source of accurate information about Liferay. Previously we only had one official guide (Liferay Administrator's Guide) which was only available in PDF or printed and we realized that some people didn't find it. We've expanded this with a Developer's guide and have made it available online so that it's much easier to find, search and link. We have created sections in the site for the last 3 stable versions: 5.1, 5.2 and 5.3. Each of the versions have the following sections:

  • Getting started: this is mainly to add links to specific sections of the Administrator's guide and Developer's guide that we think will be useful for people getting started with Liferay. 
    • Future plans: We may add more links based on feedback from people. But we want to keep the number small since otherwise it would loose its purpose.
  • Administrator's guide: this is a very thorough guide that covers the installation of Liferay for all supported applications servers, including cluster setups. It also covers user's guide for the usage and administration of the web content management and the collaboration suite.
    • Future plans: With each edition of the guide Rich plans to add new chapters for the different suites included out of the box with Liferay.
  • Developer's guide: Since Liferay is a pretty large development platform developing for it offers a very wide set of options. Because of that the hardest part is getting started, finding out what the main options are and when should each be used. This guide provides a general overview of the main strategies to extend Liferay and gives advice to choose which one to use in each situation: Portlets, Themes, Hook plugins, ext plugins, etc.
    • Future plans: We want the guide to be short enough to allow people to read it entirely (or almost) before starting any Liferay development, but still provide enough information to get started. I think the main goal should be to keep finetuning it so that it lowers the barrier of entry for newer developers. We are also considering adding some additional sections, such as one about the creation of web content templates with velocity or XSL.
  • Additional resources: This is an area were we want to link to any additional resources that will be useful to users. It will include links to specially significant wiki articles and blog entries, links to videos about that version of Liferay and links to books about Liferay.
    • Future plans: we are currently working in this section for Liferay 6. It should be ready soon. Later, we will continue adding resources that we find particularly interesting.

Official books and third party books

We now have two official books that cover Liferay:

  • Liferay Administrator's Guide: This is an open source book that we've made available online and can also be bought online through Lulu as a way to help fund it's continued development.
  • Liferay in Action: This book will be published by Manning and offers a very complete trip through Liferay as a development platform. It's an excellent continuation if you've read the developer's guide and want to learn more. It's already available through Mannings Early Access Program (MEAP). In fact you can find some banners in the documentation section to get it with a 35% discount, courtesy of Manning to our community.

There are also two other books written by third parties that add to Liferay's documentation. There are at least two that I know of:

Community wiki:

The wiki is the place where everybody can contribute to the documentation. It currently has more than 900 articles which speaks for the number of contributors around. The drawback of having so many contributors is that the quality of these articles varies a lot, and some times they become outdated which is not easy to notice as a reader except the hard way (when the instructions fail). We had noticed that some people thought the wiki was the official documentation and this made it even more frustrating. To avoid that confusion we've moved the wiki to the documentation section, hoping that the menu makes it clear that there is more documentation available. We have of course kept a link in the community section.

Sam Liu, with the help of several community members, has spent the summer reviewing a very large amount of articles fixing all issues they found and helping organize them better. As part of this effort we also wrote an article with the Wiki Guidelines

Future plans: There are many things to do to get the wiki into shape and make it easier for everybody to contribute. First of all we want to encourage the usage of the wiki as an Encyclopedia. That is, most of the articles should be titled after specific components of Liferay. Because of that a good place to start looking at a place to add information is this page: 

We also want to start adding more and more links from wiki articles to specific sections of the administration guide and developers guide. That will help readers find the "official" instructions. It will also help focus the efforts of the wiki volunteers into extending the official documentation, rather than duplicating it. This is a lot of work so we really appreciate your help here. If you find a wiki article that provides some information that either extends or even duplicates that offered by the official documentation, please add a link to it at the top of the article so that it's easier to find for future readers.

Javadocs & other reference documentation

I almost forgot this one. One of the ongoing efforts that I'm pretty sure many people will be happy about is the work we are doing to greatly improve the information included in our Javadocs. One common complain from our community is that our Javadocs don't contain much information (actually most of the time it doesn't contain any). That was because our policy was that Javadocs weren't allowed. One of the reasons was that several of us had had horrible experiences with APIs whose Javadocs were often outdated and inconsistent which was worse than having no Javadocs at all. Also since the Liferay code is available we often end up using it directly. But we do understand that Javadocs are necessary for many developers. Because of that a few months ago we defined a process and started an effort to provide Javadocs with a quality that we all feel comfortable with. As a result, Connor (who is leading this effort) has written a set of JavaDoc Guidelines that will let every developer know how Javadocs should be in Liferay.

What's the current status? We've added quality Javadocs to around 50-100 classes already (mainly utility classes and some services) and the number is increasing weekly. We are currently starting to work in package.html documentation and are discussing how we can extract out the implementation classes from the javadocs so that it's easier to find what can really be used from plugins. We'll keep you up to date.


That's it, I hope you enjoy the new documentation. If you'd like to help improving it further or let us know your suggestions, you can use a new category in the forums created explicitly to discuss about documentation.

Liferay en la Open Source World Conference (OSWC)

Company Blogs July 30, 2010 By Jorge Ferrer Staff

Después de un año de pausa este año vuelve de nuevo la Open Source World Conference en Málaga. Después del gran éxito del Symposium en Madrid, nos hemos quedado con ganas de más y hemos pensado que sería una gran idea repetir varias de las charlas técnicas que preparamos para el symposium junto con algunas nuevas que prepararemos para la ocasión.

En esta ocasión los organizadores del evento han preparado un sistema público de evaluación de las ponencias por lo que cualquier persona puede votar por aquellas que más les interesa (una gran idea en mi opinión). Por ello necesitamos vuestra ayuda para que las ponencias que hemos propuesto tengan muchos votos y podamos hacer cuantas más mejor. Para votar lo único que tienes que hacer es registrarte y luego ir a las páginas de cada una de las propuestas. Esta es la lista de nuestras ponencias:

 Aunque no sabes si podrás ir a estas ponencias también te animamos a votar por ellas dado que si todo va bien y tienen éxito intentaremos repetirlas en otras ocasiones más adelante.

Explaining the new versioning scheme for Liferay 6

Company Blogs July 27, 2010 By Jorge Ferrer Staff

Along with all the functional and architectural improvements of Liferay 6, we've also tried to improve our release process based on the feedback that we've received from the community and customers during the last releases.

Let's start with the basics, here are some simple rules to interpret the meaning of a version:

  • Versions consist of a three digit number. For example, 6.0.2. These numbers represent: Major.Minor.Maintenance
  • A change in the third digit (e.g, 6.0.5 to 6.0.6) is a maintenance release (aka Service Pack). This means that:
    • Each maintenance release provides higher security / reliability.
    • Customizations are generally safe but we recommend doing a review.
    • No new features are included (although the first few maintenance releases can contain some changes to existing features based on the feedback received). There were some exceptions to this rule in some 5.2 maintenance releases but we've decided to be much more strict for Liferay 6.
    • These rules are relaxed when the minor or major release is still in beta quality.
  • A change to the second digit (e.g., 6.0 to 6.1) is a minor release:
    • This will include new features plus bug fixes from prior releases.
    • Customizations may be affected when installing. Customers should leverage the upgrade tools and documentation.
  • A change in the first digit (e.g., 6.x to 7.x) is a major release:
    • This will include major changes in functionality or add high demand functionality.
    • This may include architectural changes, changes to API's (as part of deprecation process) and may change internal schema.

Now lets get into some details of what we've improved and why we've done it. First, it's worth mentioning that one of the goals for the release of Liferay 6 was to make it the community edition release with highest quality ever.

A second motivation we had is that in the past we had noticed that people were installing in production releases that didn't have enough quality to do so. For example, I've seen installations with Liferay 5.2.0 or 5.2.1. Also we've had plenty of requests from community members who volunteered to help doing beta testing.

So we've decided that with Liferay 6 each version will have a surname that specifies the expected quality of that release. The third version number is usually hidden, but it's still visible through the logs and administration UIs. Here is the evolution of versions:

  1. Preview and Beta (6 Preview 1, Beta 1, 6 Beta 2, ...): There can be zero or more of these types within each minor or major release. These releases are meant for testing and to provide us feedback through the beta testing category in the forums. There can be changes in features between beta releases but in general they won't be major.
  2. Release Candidates (6 RC1, 6 RC2): There can be 0, 1 or more of these right after the beta releases. This are more stable and are meant for those that prefer to wait a little to test the release.
  3. General Availability (6 GA1, 6 GA2, ....): There can be 1 or more of these releases. A General Availability version is released when our engineering team and the QA team based on our own testing and the feedback from the beta testers decide that the release has good quality and can be of general use for the community. Of course this doesn't mean that it's bug free so we keep an eye on the community since at this point many more people start using the version and find new bugs (usually minor). When this happens we fix the issues and release a new GA version. Several GA versions may be made available until the engineering team moves towards releasing an EE release.
  4. Service Packs (6 SP1, 6 SP2, ...): These are maintenance releases will keep coming out for 4 years after the original release date. These releases are only available to customers who have an update service that comes with every Enterprise Edition. To ensure this we have a team dedicated to keep testing and doing corrective improvements to this release to ensure the highest quality. All fixes done in the service packs are also done in svn and will be part also of the next minor or major release. This ensures that all the community benefits from the fact that we can have more people working on QA as more customers buy our Enterprise Edition services.

The following diagram represents this in a graphic form:

So you might be asking yourself, which version should I use? what if I was using a previous version? Will the update to a new maintenance release cost a lot? Here are some comments and recommendations to answer all these questions.

  • You are very welcome to use any preview, beta or release candidate version. In fact that's why they exist so that as many people as possible start using it and provide us their feedback. However, we do not recommend using beta releases in production or even during development if you have tight deadlines (since you may find road blocks).
  • You should always update to the latest maintainance release available for the minor or major version you are using. This means that at the time of writing you should be using Liferay 6 GA 2, but if we later decide to release GA 3, our recommendation is that you switch to it since it includes fixes for other bugs found by other Liferay users.
  • Updating to a new maintenance release should be a process that requires little effort from the first GA forward. That is, you should be able to upgrade from Liferay 6 GA 1 to any future Liferay 6 GA or any Liferay 6 SP within hours or days in the worst case scenarios.
  • To ensure that the updates are as easy as possible (and also ease upgrades to new minor or major versions) use the best development practices when extending Liferay. I'll write a blog post (or maybe a whitepaper) with more details but at the very least you should use plugins instead of the extension environment (or ext plugin) whenever possible. And always use APIs that are meant to be public (specially when using ext). Also avoid overriding JSPs that have a lot of logic or keep a very tight control of them (and review them when updating for changes to the originals).
  • Plugins that work in any GA or SP version will work in any later maintenance version. That is, a plugin developed for Liferay 6 GA1 will also work in Liferay 6 GA  or Liferay 6 SP3, or .... This is something that we've tried to guarantee in the past but hasn't always been possible. Starting with Liferay 6 we have a testing process in place to make sure this is really guaranteed.
  • Consider investing in the updates and support services of the Enterprise Edition. This will benefit you two-fold, first because you'll be getting quality services that will add value to your Liferay installation and second because it will help evolve the product with new features that you will be able to benefit from.

And that's about it. This new process along with all the work from the QA team and the great help from beta testing volunteers all around the world (thanks again!) makes me feel that this is certainly the best CE release of Liferay ever, and not only in terms of functionality :)

PS:I've created a wiki page with a summary of this post for future reference: Liferay Versioning Policy

Feedback for Liferay 6: Global unified breadcrumb

Company Blogs April 26, 2010 By Jorge Ferrer Staff


This is the first post of what I hope will become a series of posts asking for feedback on some of the new features that will be including in Liferay 6. What we are hoping for right now is comments regarding issues from a usability or functional perspective. We'll be looking for ideas for improvements later, as part of the definition of the 6.1 roadmap, but right now our goal is to focus on polishing the features in 6.0 so that we can release 6.0 GA as soon as possible (hopefully within the next few weeks).

After this introduction I'm going to get to the point of this post: The global unified breadcrumb. This is a new navigation component that is shown in all pages at the top and underneath the page navigation:


Those of you who have been using Liferay for a while know that the product already had a portlet called breadcrumb that allowed for this. So what's really new?

  1. We have integrated the navigation of the portlets within the breadcrumb of the page. Why? Because as developers we see the portlets as independent components, but to the eyes of a non-technical user, whenever he navigates within a portlet the result is as if he's taken to a new page. Previously we had portlets which had their own breadcrumb but that could get very confusing, because some pages would have 2 or more different breadcrumbs in different positions of the page. Now we've created an API so that portlets could add items to the page breadcrumb as the users navigation through them. We've also modified Liferay's out of the box portlet to make use of this API and have removed their internal breadcrumbs.
  2. As you probably know, Liferay allows having multiple web sites in one single installation: there is one default site, which is called "Guest" but you can add many more sites per community, organization and user. The issue was that there wasn't any way to navigate between them. While such navigation is very dependent on the specific characteristics of each portal, there are some things that are general to all or most. In particular what we have done in the global breadcrumb is to add also the hierarchy of sites that lead to the current one. To that end we've considered that "Guest" is always the parent of all sites (this can be disabled). Underneath are all communities and the hierarchy of organizations. Users' sites are always shown underneath their organization. Here are some example paths:
    1. Guest
    2. Guest > Organization A > User X
    3. Guest > Organization A > Organization A1 > User Y
    4. Guest > Community B
  3. The global unified breadcrumb is always visible on the screen. This feature actually started as a joke to Nate, to which he answered that would be impossible to acomplish. But some time later he came back saying "Don't trust me again when I say something is impossible"... He had done it! So what is it? Basically, the issue with some portal pages is that they are quite long, so if you scroll down the navigation elements are not visible any more. That is specially annoying in the case of the breadcrumb because it also shows where you are, which is always useful. How did nate fix it. Basically when the page scrolls down to a point where the breadcrumb is going to be hidden it gets attached to the top of the page, as if it was a browser bar and stays there, always visible. Here is a picture showing this behavior, you can see how the breadcrumb has changed the background color from white to black to become more easily visible:

  4. All of the new features mentioned in points 1 and 2 have been implemented as improvements to the breadcrumbs portlet. But we've also decided that this should always be included by default and thus are including that portlet from the default classic theme. You can of course change this in your own themes, but if you do then you might loose some useful features.

That's mainly it. The best way to understand how it works completely is to download Liferay 6.0 RC and beging playing with it. Try creating several communities, organizations and pages, also add some portlets to it such as blogs, document library with several folders, etc. and navigate through all of it.

We'd love to know how you like it. To make it easier to send your feedback and to allow you to subscribe to the ongoing discussion, I've created a message board post to that end. I've also given some specific points were we'd like to receive feedback. Here is the link:



Company Blogs April 23, 2010 By Jorge Ferrer Staff

 No se me ocurría un título mejor que simplemente "Gracias". Gracias en primer lugar a todos los que habéis hecho el primer Symposium en España una realidad, empezando por Carolina sin la que hubiera sido totalmente imposible este evento, a Natalia en la organización, a Julio, Juan, Alberto y Sergio por toda su ayuda y sus magníficas ponencias, a Brian y Paul por viajar desde EEUU para estar con todos los asistentes y a Bryan por intentar llegar una y otra vez desde Frankfurt, luchando contra la nube de humo y finalmente por estar con nosotros via skype. Gracias también a nuestros clientes que vinieron a contar sus casos de éxito: RSI, Consejería de Educación de Madrid, Universidad Complutense y Reed Business. También quiero agradecer a nuestros partners su apoyo y en especial a Gesfor, B2B2000 y VASS por su patrocinio.

Y por supuesto muchísimas gracias a todos aquellos que asististeis. Tuvimos una audiencia de más de 150 personas y eso que tuvimos que cerrar el registro el día antes por la mañana porque seguíamos teniendo inscripciones y el hotel nos obligaba a cerrar el número. Pero más que el número de personas que vinieron lo que más me hace sentirme agradecido es la gran cantidad de gente que se acercó a nosotros para decirnos lo muchísimo que les había gustado el evento. 

Por último, y aún a riesgo de parecer repetitivo, quiero agradecer en particular a todos los periodistas que os acercasteis a cubrir el evento. Tanto por estar allí como por los artículos que habéis escrito sobre el Symposium.  Es increible que una compañía Open Source despierte tanto interés en medios. Os paso algunos de los artículos a los que estéis interesados:

En definitiva, un éxito como para estar agradecidos y también muchas ideas para que el Symposium del año que viene sea aún mejor. ¡Nos vemos allí!

Actualización (27/04/2010): Me han pedido que ponga algunas fotos del evento, así que he añadido dos, una de la sala de conferencias y otra durante la comida.

Primer evento internacional de Liferay en España

Company Blogs March 25, 2010 By Jorge Ferrer Staff

First of all, a disclaimer for those of you who don't speak Spanish. I will keep writting most of my posts in English, but this one is about our very first Symposium in Spain so I thought it was a great occasion for my first post in Spanish :)

Si, habéis leído bien (y posiblemente lo habréis visto en la portada de, el próximo 20 de Abril tendrá lugar en Madrid el primer Symposium en España, que complementará a los que ya se han celebrado en años anteriores en EEUU, Alemania e India.

¿Quién vendrá de Liferay?

Este será un evento a lo grande, con la presencia entre otros de Brian Chan, Chief Software Architect y fundador de Liferay, al que seguramente todos cononceréis de los foros y otras actividades de la comunidad; Bryan Cheung, CEO de Liferay y gran ideólogo para muchas de las más interesantes funcionalidades de Liferay; Paul Hinz, CMO y nuestro fichaje estrella de 2009 proveniente de SUN; Carolina Moreno, Directora de Desarrollo de Negocio para España y Portugal una de las responsable del gran éxito que estamos teniendo aquí así como Alberto Montero, Julio Camarero, Juan Fernández y Sergio González, de nuestro equipo de core engineers en Madrid y con quieres es probable que hayáis hablado también a través de los foros o que os hayan ayudado in-situ en vuestros proyectos.

En definitiva, un evento esperado por muchos con una oportunidad increíble de hablar cara a cara con los principales responsables de Liferay tanto a nivel técnico como a nivel de negocio.

¿A quién está orientado el evento?

Nuestro objetivo es crear un evento que sea útil tanto a organizaciones que están dudando si apostar por Liferay como a aquellas que llevan años apostando por nosotros.

El evento tendrá una combinación de charlas técnicas y charlas más orientadas a negocio. La mañana comenzará con una ponencia de Bryan Cheung que nos hablará de Liferay como empresa, de su comunidad, de su crecimiento, los principales logros, de la fundación Liferay y mucho más. Posteriormente yo mismo presentaré las principales novedades de Liferay 6 y como sacar el máximo partido de ellas. Seguirán algunas prácticas con un cariz más técnico donde se mostrará las mejores prácticas para construir un portal de éxito, como sacar el máximo rendimiento a una instalación de Liferay, cómo formar parte de la comunidad de Liferay y los principales beneficios de que tanta gente lo haya hecho ya.

La tarde estará más orientada a usuarios y decisores finales, pero sin duda también para desarrolladores interesados en los usos que se da a Liferay y la progresión futura. Paul Hinz nos hablará de uno de los temas más candentes de hoy día, el Marketing 2.0 y cómo Liferay puede ayudar a sacarle partido. Seguidamente Carolina, junto con varios de nuestros clientes en España, de sectores tan diversos como educación, administración pública, telco o banca nos hablarán de sus portales y de cómo Liferay Portal les ha ayudado a lograr sus objetivos.

Y terminaremos con una última charla de Bryan Cheung que nos hablará de la estrategia de futuro de Liferay que irá seguida de una mesa redonda con todos los ponentes que aprovecharemos para hablar y que nos preguntéis sobre cualquier tema, incluyendo algunos de los más candentes hoy día como Cloud Computing, Marketplaces, etc.

En definitiva, espero que vengas y podamos conocernos en persona.

Puedes consultar la agenda completa del evento y registrarte antes de que se agoten las plazas en:


Visiting Barcelona

Company Blogs March 17, 2010 By Jorge Ferrer Staff

Tomorrow, Thursday March 18th, I'll be visiting Barcelona to participate in the event La Web Inteligente: estrategia, soluciones y tecnología para conseguir una experiencia Web diferencial.

I'll be looking forward to meet all of you who will be attending.



Showing 21 - 40 of 68 results.
Items 20
of 4