Liferay 7 Milestone 1 - Only for the really adventurous

The word is out in Twitter, we have released the first development milestone release of Liferay 7. This is a call for really adventurous developers to try it out and give us your feedback. Here are the answers to the questions you may have about the release.

 

So… is Liferay 7 close to being released?

Nope. Our current thinking is that Liferay 7 will be released in the second half of 2015. But we will be releasing several milestone releases before that.

 

What’s the goal of milestone releases?

We want to give adventurous developers an opportunity to take a sneak peak of the new features and frameworks as they are being developed. This will give *you* an opportunity (directly or by finding a friendly adventurous developer) to provide early feedback and help steer the release.

 

A second goal, which will be especially important for the first milestones is to fine tune our internal release process now that the product and team has grown to quite a large size.

 

What’s the quality of Milestone 1 like?

Don’t expect it to be stable other than for testing out some of the new features. Of course never run it in production.

 

The milestones are always built from our master branch and while we work towards making it stable, it’s definitely not for running in production (and at times even for testing). We will make efforts to make it stable to allow for testing but since there is no testing phase there might be last minute changes that break things. If you find them, congrats! You are a real adventurous developer exploring unexplored territory ;)

 

Ok, cool, but what’s new in this release?

Here are some highlights that we would like you to look at:

  • WCM:

  • Collaboration & Social:

    • Ability to @mention users from any portlet that uses a WYSIWYG editor

    • Applied portal notifications to the subscriptions of Blogs, Wiki, Message Boards, …

    • Ability to Geolocate Web Content and documents. Also a new template for Asset Publisher to show them in a map.

  • UI Infrastructure

    • Update to Bootstrap 3. Frontend devs rejoice!!

    • SPA Enabler: You really need to try this out. Thanks to this new cool technology (based on our own SennaJS and AlloyUI Surface) all portlets automatically become Single Page Applications and users can navigate through them without reloading the whole page. Expect huge gains in both speed and data transmitted (which is great for mobile access)

  • Platform Infrastructure

    • Replacement of Lucene with ElasticSearch as the default search engine

    • Support for testing plugins and OSGi modules using Arquillian

    • Exposing many of the extension points in portal.properties and all extensions of liferay-portlet.xml as OSGi components.

    • Exposing many new extension points like Portlet Filters

    • Ability to develop complete portlet as OSGi modules

    • Ability to create standard OSGi modules that invoke Liferay’s core services API easily (it’s no longer needed to create a web app to do this, simplifying the task significantly and reaching a wider Java dev audience).

    • Ability to use Service Builder in OSGi modules

    • Ability to expose any Java Service in an OSGi module as a JSON Web Service (even without using Service Builder!)

    • The prototype release of the new Eclipse Equinox Http Service implementing OSGi RCF 189 - Http Whiteboard

    • Support for JSPs in OSGi modules

    • Several smaller portlets extracted from the core

    • The work to extract Liferay’s large core apps as OSGi modules has started although none of them have not landed in master yet much of the infrastructure is already in place (Expect more news in M2)

 

There are also many more small improvements and technical changes, since we organize our work in the form of Stories we’ve prepared a page with a list of all stories organized by area in the following URL: https://issues.liferay.com/secure/StructureBoard.jspa?s=235 (Thanks Esther for setting this up!)

 

Where can I download it?

At the usual page in Sourceforge’s downloads page. If you prefer to get them from a Maven repo you can get it from Liferay’s maven repo. If you prefer to get it from GitHub you can use the 7.0.0-m1 tag.

 

That’s it, we look forward to hearing your FEEDBACK!

 

PS1: Big thanks to James Falkner, Julio Camarero, Nate Cavanaugh for proof reading and help make the entry more complete

PS2: The source for the cover image is https://www.flickr.com/photos/defenceimages/8329373315/in/photostream/

 
Update (Sept 1st), added link to the GitHub tag to the "Where can I download it" section and credits for Esther on the structure will all new tickets in the milestone.
Blogs
Hi Jorge,

Very nice compilation of the new set of features. Will definitely download, give a try and share the feedback. All the best for all your good work.

Thanks.
Ahamed Hasan
Author, Liferay Cookbook
Hi!
I am particulary interested by the SPA Enabler feature. I development a library on top of AUI that does the same. I have a quick look at your code on GitHub (docroot/html/js/liferay/surface.js and /docroot/html/js/liferay/surface_app.js). I can see potential issues :

1) No form submission support
2) For the form submission, you also have to handle AUI validation
3) How about pop-up created by the portlet? If they contains links? HTML forms? The HTML container for the popup is not the portlet but the DOM body element.
4) Same goes for the AUI overlay. For example those created by <liferay-ui:icon-menu />

My library is only use internally by my company for now, while it is almost 100% working, the code is not yet cleaner enough for public release.
Hello Darryl, first of all thanks for the feedback.

Answering your questions:
1) We intentionally didn't add form submission, which we have a, unofficial patch for that already.
2) On this patch it's handled correctly.
3) Popups are fine, once they load the popup window reloads the App and route it scoped inside the iframe.
4) For now we didn't see any issue with overlays.

I would love to take a look on what you have done, that could help us improve that.

Thanks again.
Hi Eduardo!

I tried the SPA on Liferay 7. it works pretty good. You implementation goes already further that what I did. Mine miss some features like dealing with the scrolling and caches.
I have a similar concept than yours. I call my surfaces ajax-container. I do not have a proper Screen object, I let AUI IO deal with it.
I use AUI event delegation to monitor my container. So only links and forms inside the container are monitored. This is why I had problem with overlay and popup. In your implementation as you monitor Paths, it is problem free. I also see a good use of it, a portlet can reload its content after a click on a link in another portlet on the same page. A kind of IPC.

Features I do not see in your implementation is a kind of embed surfaces. I can achieve this by using data attribute as I have data-ajax-container. A link also loads in its first ajax-container ancestor.
The final point Business makes me implement is to track change on forms when a user try to move away. But I guess this is not really part of SPA.

Great work!
Hey Jitendra, I noticed you posted a question but it's now gone :?

In case you are still looking for the answer, the new feature allows comparing article versions, not comparing different articles.