The Future of the Liferay Community

Company Blogs 2016年2月15日 按 James Falkner

Over the last 5 years if there's anything I've learned it's that the only thing that doesn't change is change itself. I've been blessed to have been a part of many exciting changes at Liferay and our community, seeing it grow from 80 to almost 600 employees, and from 20k to 150k community members, and being given the chance to:
  • Join an awesome company and work with some of the sharpest knives in the software drawer
  • Help move the company from a church attic to a giant building with a real parking lot
  • Watch open source Liferay evolve from this to this
  • Meet new people and make hundreds of new friends from different countries and cultures, learning how we're different and how we are alike, and discussing life and Liferay
  • Build apps, give demos, make videos, ramble on in blogs, forums, IRC, various social networks, emcee'ing events, almost breaking Oktoberfest
  • Represent the community in countless different places, internal and external
  • Most importantly, have tons of fun and look forward to each day at "work"
It's been a great ride, but the time has come for me to move on... So it is with mixed emotions that I've decided to close this chapter of my life and career at Liferay. My last day at Liferay is this Thursday, February 18th. Other than my Liferay email address, nothing else changes - @schtool, LinkedIn, schtool at gmail dot com and jhf on Freenode IRC will be good ways to keep in touch!
 
I want to give a hearty thanks to the countless people I've met and friends I've made both inside the company and in our larger open source community. There are way too many to name, and I'd inevitably miss a few from "back in the day" so I don't want to try to list them all :) I've always considered our community more like my extended family, and I will will definitely miss all of my Liferay friends.
 
I sat down with Eddy Dueck to record some thoughts about my time at Liferay:
 
 
I also recorded a podcast with Olaf Kock from Radio Liferay, whom many of you already know, to go into a bit more detail around the community going forward:
 
 
I've come to embrace change, and I'm looking forward to my next gig and the new challenges therein. I also look forward to seeing how fresh people, new energy, and new ideas can evolve the Liferay community going forward. We've come a long way these last several years, and I have no doubt that there's still much more to come from Liferay and its community!
 

So, what now?

Fortunately Liferay's internal community is just as strong as its external community. Several people at Liferay that you already know will be taking over my duties as community manager and helping to write the next chapter in the Liferay community. I've always wanted the community to be "run by" more than one person, because each has their own strengths and I think small teams can be more effective than a "one-man shop". And the internets mean I won't be too far and may be able to contribute in various ways even after I'm out! It will take some time for things to settle down, but the community drum beat continues and I'm am super thrilled to see what happens in 2016.
 
I will not be going far. I am still a big proponent of open source and will continue to "be in this space" in my next chapter. So we'll most likely meet again! Alas, for now, I'll close with some words by Neil Peart, lyricist and drummer for Canadian rock band Rush, from their 1991 song Ghost of a Chance:
 
Like a million little doorways
All the choices we made
All the stages we passed through
All the roles we played
 
For so many different directions
Our separate paths might have turned
With every door that we opened
Every bridge that we burned
 
Somehow we find each other
Through all that masquerade
Somehow we found each other
Somehow we have stayed
In a state of grace
 
I don't believe in destiny
Or the guiding hand of fate
I don't believe in forever
Or love as a mystical state
I don't believe in the stars or the planets
Or angels watching from above
But I believe there's a ghost of a chance we can find someone to love
And make it last...
 
And with that, sadly this means we must part. A wave of the hand now, and I am gone, until we meet again! See you on the internets and beyond!

Liferay 6.2 CE GA6 Now Available

Company Blogs 2016年1月15日 按 James Falkner

I'm very happy to announce the release of Liferay Portal 6.2 CE GA6! Download it now: [Tomcat Bundle] [JBoss Bundle] [GlassFish Bundle] [Source Code] [Other bundles and Files] [Quick Start] [Detailed Install Instructions].

This is a minor update to address a significant incompatibility discovered in our community with Liferay  Sync. As Liferay 7 is right around the corner, we wanted to do this release so that those of you staying on 6.2 will be able to use Sync (and other mobile apps that heavily rely on JSONWS). No new features are added, and only these 9 commits are included.

The release also includes the latest Sync Connector plugin, so that you do not need to update it separately.

Release Naming

Following Liferay's official versioning scheme, this release is Liferay Portal 6.2 CE GA6. The internal version number is 6.2.5.  See below for upgrade instructions from 6.2.x, 6.1.x, 6.0.x, and 5.x.

Downloads

You can find the 6.2 CE GA6 release on the usual liferay.com downloads page (it might take an extra day to get this page updated, so use the above download links in the meantime). If you need additional files (for example, upgrade SQL scripts or dependency libraries), you can find them at the bottom of the downloads page.

Maven Artifacts

Developers can (or should be able to in the next day or so) find this release in our Maven repository, and it should be showing up on Maven Central in the near future. As a reminder, you can also find Maven artifacts for Liferay 7 Preview & Beta Releases (here's one of them) in the liferay-previews repository!

Source Code

As Liferay is an open source project, many of you will want to get at its guts. The source is available as a zip archive on the downloads page, or in its source code repository on Github. The repository has also been tagged for the release (as a reminder, the liferay-plugins repo no longer gets tags for portal releases as the plugins are de-coupled from core). Many community contributions went into this release, and hopefully many more in future releases! If you're interested in contributing, take a look at our new participate page on the Liferay Developer Network.

What's New / Changed?

This update fixes a JSONWS incompatibility introduced in GA5. If you are experiencing issues with Sync with GA5, you'll need to update to this release. Even if you don't use Sync, you should update to this release, as the issue could affect other apps that use JSONWS. Part of the fix is in the sync-connector plugin, which is bundled with this release.

Documentation

The Liferay Documentation Team has been continuously adding and improving on the official documentation. This includes updated javadoc and related reference documentation, updated tutorials and learning paths, and a new home on the Liferay Developer Network.

Our community has been instrumental in identifying the areas of improvement, and we are constantly updating the documentation to fill in any gaps. Check out Rich's blog for more detail on how you can get involved.

Support Matrix

Liferay has published the official compatibility matrix for 6.1 and 6.2. This is the official support matrix for our Enterprise Subscription customers, but it's a pretty good reference for CE as well.

Liferay Marketplace

Most Liferay-authored Marketplace plugins were updated to support 6.2 GA1 when it was first released, and remain compatible with this updated GA6 release.

If you are a Marketplace Developer, and have authored a 6.2 CE GA1-GA5-compatible app, you should ensure your app continues to work with this 6.2 CE GA6 release. It is Liferay's aim to remain compatible within a given release family, so in the unlikely event that your app works with GA5 but NOT GA6, you will need to make any necessary changes and re-submit, and let the Marketplace team know about any incompatibilities you discovered. Chances are you will have nothing to do (since you declared compatibility with 6.2.0+, which includes 6.2.5).

Bug Reporting

As always, the project continues to use issues.liferay.com to report and manage bug and feature requests. If you believe you have encountered a bug in the new release (shocking, I know), please be cognizant of the bug reporting standards and report your issue on issues.liferay.com, selecting the 6.2.5 CE GA6 release as the value for the Affects Version/s field.

Upgrading

Good news for those of you on 6.0 or prior! Liferay introduced the seamless upgrade feature with Liferay 6.1. Seamless upgrades allow Liferay to be upgraded more easily. In most cases, pointing the latest version of Liferay to the database of the older version is enough. There are some caveats though, so be sure to check out the Upgrading Liferay information on the Liferay Developer Network for more detail on upgrading to this release.

Getting Support

Support for Liferay 6.2 CE comes from the wonderful and active community, from which Liferay itself was nurtured into the enterprise offering it is today. Please visit the community pages to find out more about the myriad avenues through which you can get your questions answered, and check out the new Liferay Developer Network for technical resources during your Liferay journey.

Liferay and its worldwide partner network also provides services, support, training, and consulting around Liferay via its Enterprise Subscription.

What's Next

Of course we in the Liferay Community are interested in your take on the new features in Liferay 6.2 and the updates in this GA5 release. We've been working on the next evolution of Liferay, based on user feedback and community ideas, and work is nearing completion. If you are interested in learning more, join our expedition team and see what's under the hood of Liferay 7!

As I mentioned earlier, we do regular open source releases of Liferay Portal every 6 months, until the next major release. So if you find bugs in this or previous releases, and want to up their priority to get them fixed, be sure to use JIRA and vote for your favorite issues! The next CE release will most likely be based on Liferay 7.

Kudos!

This release was produced by Liferay's worldwide portal engineering team, and involved many hours of development, testing, writing documentation, translating, testing some more, and working with the wider Liferay community of customers, partners, and open source developers to incorporate all sorts of contributions, both big and small. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!

In addition to Liferay's engineering staff, a special thanks goes to the many open source developers who volunteered their time and energy to help with the release, whether it was bugfixing, idea generation, documentation, translations, testing, or other contribution that helped to improve this release. Check out the Community Contributor Hall of Fame and be sure to thank them if you run across them in the community (or add your name if you have contributed and are not listed).

2015 Q3-Q4 Top Contributors and What Comes Next

Company Blogs 2016年1月14日 按 James Falkner

Back in 2012 we began a quarterly program to recognize those of you who have over the years contributed more to Liferay than your average open source enthusiast. Each quarter we recognize the top contributors and the last 2 quarters are no different. These individuals have contributed code, blogs, helped out on the forums, and generally improved the Liferay community during the second half of last year!
 

2015 Q3 Top Contributors

Meera Prince
Liferay & Java Sr. Technical Consultant, IAMSURAJ
 
Denis Signoretto
Project Manager & Java Developer, Intesys S.r.l.
 
Lauri Hiltunen
Software developer, Ambientia
 

2015 Q4 Top Contributors

Matti Tahvonen
Sr. Vaadin Expert, Vaadin
 
Abhishek Kumar
Sr. Liferay Developer, Albero Technology
 
More details about each of these individuals can be found on the Liferay Developer Network's Contributors page!
 

Coming Soon: Liferay 7 and the Ultimate Challenge

As you all know, Liferay 7 is right around the corner. If you've been participating in the Community Expedition, you'll be very familiar with the awesome changes in architecture, tools, and possibilities that are introduced with the new release, which is almost upon us. If you're not, sign up today!
 
Those changes I hope will also have a profound impact on our open source community, and I believe we can and should take advantage of it as much as possible. As I discussed during my community talk @ DevCon, we are working on a new program for recognizing rockstars in our community. This will essentially be a much more realtime and fine-grained way to recognize those who continue to do what they do - give a little back to the community through a variety of methods.
 
We'll have much more detail on this as we get closer to the release, but it will be effectively taking the place of our quarterly top contributors going forward. Participation, contribution, and the awesome feeling one gets when they share knowledge is what I believe drives our community, and we will crank it way up in the very near future. Exciting times ahead!

Liferay 6.2 CE GA5 Now Available

Company Blogs 2015年11月30日 按 James Falkner

I'm very happy to announce the release of Liferay Portal 6.2 CE GA5! Download it now: [Tomcat Bundle] [JBoss Bundle] [GlassFish Bundle] [Source Code] [Other bundles and Files] [Quick Start] [Detailed Install Instructions].

Once again, this release is particularly noteworthy. Why is that? It's most likely the final release of 6.2 CE as we are quickly approaching the next major release (Liferay 7 - currently at Alpha 3). We've come a long way in the 6.2 family, listening to and fixing many of the issues you've found the last couple of years. It's been a fun ride, and I hope this release meets or exceeds your expectations. Read on for more detail of what's inside.

Release Naming

Following Liferay's official versioning scheme, this release is Liferay Portal 6.2 CE GA5. The internal version number is 6.2.4.  See below for upgrade instructions from 6.2.x, 6.1.x, 6.0.x, and 5.x.

Downloads

You can find the 6.2 CE GA5 release on the usual liferay.com downloads page (it might take an extra day to get this page updated, so use the above download links in the meantime). If you need additional files (for example, upgrade SQL scripts or dependency libraries), you can find them at the bottom of the downloads page.

Maven Artifacts

Developers can (or should be able to in the next day or so) find this release in our Maven repository, and it should be showing up on Maven Central in the near future. As a reminder, you can also find Maven artifacts for Liferay 7 Preview Releases (here's one of them) in the liferay-previews repository!

Source Code

As Liferay is an open source project, many of you will want to get at its guts. The source is available as a zip archive on the downloads page, or in its source code repository on Github. The repository has also been tagged for the release (as a reminder, the liferay-plugins repo no longer gets tags for portal releases as the plugins are de-coupled from core). Many community contributions went into this release, and hopefully many more in future releases! If you're interested in contributing, take a look at our new participate page on the Liferay Developer Network.

What's New / Changed?

This update fixes many issues [full list here], but here are some of the more important and/or popular ones that you may be interested in:

Known Issues

These are issues that were found during testing, but deemed not a showstopper (usually things are left as-is because they aren't severe (data loss/security breach), don't affect very many people, and there is a convenient workaround - luckily our 6 month cadence means you don't have to wait more than 6 months!). For details on workarounds, see the bug reports.

  • Changes in resource-related permissions for Site or Organization roles are not being applied to current created resources for Calendar & Bookmarks. Workaround is available. (LPS-59265
  • Localized redirects don't happen when language removed from Available Languages (LPS-59345).
  • Testing revealed startup issues with the JOnAS bundle (LPS-54391). Since this bundle has fallen in popularity and only gets a handful of downloads per month, the release team decided not to hold the release (after all, we did promise a November release - and it's the last day of November!). As soon as the issue is resolved we will release a JOnAS bundle.

Documentation

The Liferay Documentation Team has been continuously adding and improving on the official documentation. This includes updated javadoc and related reference documentation, updated tutorials and learning paths, and a new home on the Liferay Developer Network.

Our community has been instrumental in identifying the areas of improvement, and we are constantly updating the documentation to fill in any gaps. Check out Rich's blog for more detail on how you can get involved.

Support Matrix

Liferay has published the official compatibility matrix for 6.1 and 6.2. This is the official support matrix for our Enterprise Subscription customers, but it's a pretty good reference for CE as well.

Liferay Marketplace

Most Liferay-authored Marketplace plugins were updated to support 6.2 GA1 when it was first released, and remain compatible with this updated GA5 release.

If you are a Marketplace Developer, and have authored a 6.2 CE GA1-GA4-compatible app, you should ensure your app continues to work with this 6.2 CE GA5 release. It is Liferay's aim to remain compatible within a given release family, so in the unlikely event that your app works with GA4 but NOT GA5, you will need to make any necessary changes and re-submit, and let the Marketplace team know about any incompatibilities you discovered. Chances are you will have nothing to do (since you declared compatibility with 6.2.0+, which includes 6.2.4).

Bug Reporting

As always, the project continues to use issues.liferay.com to report and manage bug and feature requests. If you believe you have encountered a bug in the new release (shocking, I know), please be cognizant of the bug reporting standards and report your issue on issues.liferay.com, selecting the 6.2.4 CE GA5 release as the value for the Affects Version/s field.

Upgrading

Good news for those of you on 6.0 or prior! Liferay introduced the seamless upgrade feature with Liferay 6.1. Seamless upgrades allow Liferay to be upgraded more easily. In most cases, pointing the latest version of Liferay to the database of the older version is enough. There are some caveats though, so be sure to check out the Upgrading Liferay information on the Liferay Developer Network for more detail on upgrading to this release.

Getting Support

Support for Liferay 6.2 CE comes from the wonderful and active community, from which Liferay itself was nurtured into the enterprise offering it is today. Please visit the community pages to find out more about the myriad avenues through which you can get your questions answered, and check out the new Liferay Developer Network for technical resources during your Liferay journey.

Liferay and its worldwide partner network also provides services, support, training, and consulting around Liferay via its Enterprise Subscription.

What's Next

Of course we in the Liferay Community are interested in your take on the new features in Liferay 6.2 and the updates in this GA5 release. We've been working on the next evolution of Liferay, based on user feedback and community ideas, and work is nearing completion. If you are interested in learning more, join our expedition team and see what's under the hood of Liferay 7!

As I mentioned earlier, we will start doing regular open source releases of Liferay Portal every 6 months, until the next major release. So if you find bugs in this or previous releases, and want to up their priority to get them fixed, be sure to use JIRA and vote for your favorite issues! The next CE release will most likely be based on Liferay 7.

Kudos!

This release was produced by Liferay's worldwide portal engineering team, and involved many hours of development, testing, writing documentation, translating, testing some more, and working with the wider Liferay community of customers, partners, and open source developers to incorporate all sorts of contributions, both big and small. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!

In addition to Liferay's engineering staff, a special thanks goes to the many open source developers who volunteered their time and energy to help with the release, whether it was bugfixing, idea generation, documentation, translations, testing, or other contribution that helped to improve this release. Check out the Community Contributor Hall of Fame and be sure to thank them if you run across them in the community (or add your name if you have contributed and are not listed).

The Magic Template Variable Dumper Script for Liferay 7

Company Blogs 2015年11月24日 按 James Falkner

You may recall back in February 2014 I published a FreeMarker script that would dump variables from WCM and ADT Templates in Liferay 6.2. Well, it's back, this time for Liferay 7! I tweaked it a bit to show the hierarchy of the request object a bit better and added a recursion depth variable to control how deep down the rabbit hole you go (if you are feeling a bit cold during winter, feel free to set that value up above 5 and gather around your CPU to get warm).

How to use

Just create a web content structure and template, paste this code into the template, then publish an article using that structure and template.

Here's what it looks like:

 

And here's the request variable expansion (from the themeDisplay map)

 

Note it expands almost everything, so you can see embedded portlets, layouts, OSGi services, etc. It's quite interesting to see what one can get at :)

Show me the code!

Find the code below. I'm just waiting for someone to make this look awesome (looking at you, frontend people).

Happy hacking!

9 Highlights from DevCon

General Blogs 2015年10月23日 按 James Falkner

Earlier this month Liferay held it's 3rd annual developer conference in Darmstadt, and I was grateful to be able to attend and see old friends, meet new ones, share some of my experiences, and learn a lot from the experts in attendance. We're all stuck behind keyboards and monitors, mobiles and tablets, so it is also nice to get some facetime with those I interact with virtually throughout the year.

Before the exitement fades (and you forget what happened at Oktoberfest) I wanted to share my top 9 highlights (and use it to remind me of the things I've promised you all for next year!)

Talks

I really like to see the non-Liferay talks, and this year was no different. The opening keynote was Tim Ward, CTO from Paremus, and it really drove home for me the benefits to modularity, clearly a big theme in Liferay 7. But there were others. Jens from Prodyna talked at length about scripting, one of my favorite Liferay pastimes. Jan from ACA-IT talked about AngularJS and knocked his first ever talk out of the Darmstadtium. Willem on SAML. Peter on mass Sharepoint migration, Aleš on portal frameworks we all know and love (most of the time). See the recap site for videos and slides!

Eduardo's talk and the official launch of Launchpad made my SMS/Liferay digital transformation demo look like those BASIC programs I used to type in from Byte Magazine. Launchpad is a perfect solution to the complexities of a secure, fast, and reliable web API with which to drive all sorts of devices. Although Liferay's Expando and Service Builder features have served me (and many others) well, Launchpad is a huge step forward for integration of apps, devices, and pretty much any place your users interact with your business. And it's super easy to create new services. Sign up for the dev preview. You know you want to!

Live Polling

One of the new features we added this year in the event app was "Live Polling" - the ability for presenters to ask the audience to answer questions related to their talk, to really engage the audience (I've seen this at other events and am always very interested in what others think - especially when the results do not match what the presenter was expecting :)). Anabel and I got to sit in the Darmstadtium control room high above the audience to control the polling from behind the scenes during LPSF. That was quite fascinating and the app+live results worked really well. So if you want to use this in your upcoming presentation at a Liferay event, let me know!

Community Meetup

The community meetup was once again held at Braustüb'l, and once again proved to have some very interesting moments. Chris had this to say. And I even got to wear the unofficial Liferay DevCon Community Meetup coat while hanging out with a room full of happy Liferay experts doing everything except talking about Liferay projects!

Spam

The morning of my Community Update talk, I awoke to find about 300 spam posts on our forum. I was like "Umm, slide 5 in my talk was where I talked about how we solved the Spam Crisis back in July". So I spent the morning clicking and cleaning, and the rest of the week discussing with the moderator team how best to prevent it in the future. I think we have it under control now, and I see it as a positive thing - not only is our community so popular that spammers want in on the fun, we are also learning what works and does not work in spam prevention. So it's a win-win!

Oktoberfest

Unquestionably the thing that will stick in my mind was the opening ceremony of DevCon Oktoberfest in the traditional Bavarian way. I was honored to be chosen to partake in this important historical event! So I get up on stage, don the apron, and am handed a giant hulk-like wooden hammer and wooden tap and am told where to start smashing. About 15 hulk smashes later, there's no beer, and on the 16th the entire tap explodes in shards of oak splinters much to the surprise of Olaf, the beermeister, and the audience! We both stood there and had no idea what to do - did I break Oktoberfest? Will this go down as the worst performance ever? (No, it won't). Then, from offstage, another tap suspiciously appeared and then success! Oktoberfest was on!

Although I didn't win any of the Oktoberfest games (and in fact I am particularly terrible at Sjoelen), I did do rather well at Ancud IT's hammer and nails challenge!

Unconference

I was a little sad I only made it half of the unconference due to other duties at the event - it's one of my favorite parts of DevCon, because it's unscripted and really tells you what people are thinking, face to face. I'm gonna try to avoid that next time!

I was still able to attend a few sessions, most notably the "how to use IntelliJ better" discussion, the "Command Line Tools" discussion, and proposed a community workflows discussion which ended up focusing on our community localizations, which are going to be changing along with the modularity changes in Liferay 7. More on this later.

My EU Credit Card Excitement

As an American, I am usually handicapped when it comes to using credit cards in Europe. This year, I intended to put a stop to it, because I hate carrying cash. After 3 applications and a $25 fee (and having to fax something... I know, yuck, right?), I joined the United Nations Federal Credit Union, and was able to obtain their chipped Visa Azure credit card. Big deal, everyone has them now, right?

No, not right. There are three different kinds of EMV chip situations - "Chip and Signature", "Chip and PIN (online)", and "Chip and PIN (offline)". Only one of these methods works at automated kiosks (e.g. train station ticket machines). And most if not all of the US banks issuing new cards these days are only issuing "Chip and Signature" - meaning, it requires your signature (like anyone actually verifies it), and it won't work at automated kiosks since there is no PIN. So while I am happily dipping-and-PINning, my American friends are busy staring at a handful of weird coins.

I ended up not getting a chance to use it in Germany, but was finally rewarded in Spain by insisting I pay for lunch! There was a moment where we weren't sure it would go - the waiter was staring at the machine for an unusually long time. But finally, éxito!!! It could have been 1000€ and I would have not noticed until the end of the month :)

Olaf's agenda hack

Last year I mentioned that the data that the mobile event app uses was open to everyone for hacks. This year, Olaf as emcee and official German DevCon Rule Enforcer wanted an automated way to keep speakers within their alotted time. Instead of the usual person in the back of the room with colored cards showing time left, Olaf hacked up one of the most useful elements of all of DevCon - an automated countdown clock on stage that showed you exactly how much time you had left, in big bold lettering, driven and automated by the same official agenda that drives the website and mobile app. I've seen events that go off the rails in terms of schedule, and it's not pretty, so I thought this was a great way to keep everyone on schedule. I hope all our events use it in the future!

The spirit of community is alive and well

Being a remote employee, normally my day-to-day consists of a mix of heads-down work and interacting with a handful of people inside and outside of Liferay, whether it's on forums, blogs, IRC, skype, slack, hangouts, or other channels. But at DevCon I get to meet the "long tail" - those that I don't talk to on a regular basis, those that are working on and around Liferay making cool stuff. And what I saw this year was different than before - less "will it work" and more "it's working and I want to do more now". I was also approached by (instead of having to beg) people that wanted to contribute back - code, forum staff, and more. If you want to get involved, check out the Activities page for more options on how you can get involved!

I look forward to DevCon 2016! And now for the flight home...

(@_pier and @MariuzzoMauro - What are they dreaming of?)

Liferay Spain Symposium and Community Meetup

General Blogs 2015年10月13日 按 James Falkner

Next week Liferay España will hold its annual Liferay Symposium in beautiful Madrid. I'm grateful to be able to attend once again, but this year will be especially awesome because of the momentum we've built over the last year in Liferay, not only due to Liferay 7, but because of the many other projects that have come together to create a true user experience platform, not just another portal. I know it might sound a little buzz-wordy, but if you attended DevCon (or are attending other events later this year), you will undoubtely notice a shift in the way Liferay is being described, developed, and deployed. Portals are evolving, and Liferay is leading the way.

Last week at DevCon I personally felt a renewed sense of excitement in the community and saw the same in many others, especially in the live session speakers, the honest feedback we got from the community, and in talking with many about the projects and apps they've built or are planning to build on Liferay 7. The best part: DevCon was merely a "warm-up" for Spain, so next week it will only get better! Lots of technical talks on what's possible today and tomorrow, and more business-focused talks describing the real benefit of the awesome tech.

If you're in the Madrid area, come meet the leaders in our community who will talk more specifically about what's happening (I could list all the stuff I am looking forward to, but it would be a copy/paste of the agenda). Also, the Liferay Spain User Group will once again hold an informal meetup on Day 1 (October 21) - if you're interested in attending, be sure to register (it's free) and share your experiences, learn from others, and meet folks from around the world and see what they're doing with Liferay. See you next week!

2015 Liferay Screens App Contest Winners

Company Blogs 2015年9月28日 按 James Falkner

The summer is over and it's time to crown the winners of the 2015 Liferay Screens App Contest! We had some awesome entries in the first ever contest of its kind, but two of them really stood out as great examples of the power of Screens and Liferay as a Mobile App Development Platform. So, I am honored to reveal the winners:

My WiFi Directory - Sébastien Le Marchand

With My WiFi Directory you can store and retrieve your WiFi networks credentials, across all your Android devices. And the cherry on top: you can share some of theme smoothly with your contacts. This app got high marks for using several screenlets, including: WesterosViewSet, SignupScreenlet (with autlogin), LoginScreenlet, ForgotPasswordScreenlet, DDLListScreenlet, DDLFormScreenlet, UserPortraitScreenlet and implemented a "send SMS" Android feature (via an Intent). Moreover, there is a custom hook (my-wifi-directory-hook) deployed server-side.

 

Quick Message Board App - Jitesh Dadlani

The Quick Message Board App is designed to easily access Liferay Portal Message Boards from your Android Device. Easily sign up and scan through default categories. You can use this app to add, view and receive all the messages, category-wise from Liferay Portal Message Boards. Functionalities include: Sign Up, View Categories, View Threads/Messages, Add New Message and Reply Quick Message (Text only), and Add categories. 

Both apps are listed on the Screens Contest results page. Sébastien is also a former Marketplace app contest winner, and Jitesh has been super helpful with feedback to the Screens team about his experience in developing apps. But everyone who entered the contest deserves kudos for taking the time not only to learn Screens but also go through the process of submitting and getting approved for public app stores. So we're sending a small gift to everyone that participated, and want to encourage all entrants to a) make their app open source, so everyone can learn, and b) leave feedback to the Screens team about their experience.

Thanks and let's see if we can do this again next year!

Liferay Sync 3 Now Available!

General Blogs 2015年9月8日 按 James Falkner


My Documents View

New Liferay Sync UI

Today Liferay released Liferay Sync 3, the latest version of its popular document sharing add-on for Liferay. Download it from the Downloads page, read the official documentation, and see below for more details on this release!

Downloads

You can get Liferay Sync (server and Desktop clients) from the Downloads page. Mobile users can download Sync clients from Google Play or Apple Appstore. Note that the final iOS version of Sync 3 is pending app store approval. Also note that for Liferay Portal 6.2 you will need to update your Liferay installation by installing the Sync Connector Web plugin from the Liferay Marketplace (for CE or EE), and then update your desktop and/or mobile clients with the new release.

What's New?

  • A completely revamped, modern and intuitive UI for both Mobile and Desktop.
  • Sync Desktop allows connections with multiple portal instances.
  • Administrators can decide which Sites can be sync'd and which cannot.
  • Administrators can pause / resume syncing, configure max connection counts, and more.
  • Smart differencing (Desktop Only) - Sync only sends and receives minimal differences when files are updated - not the whole file - no matter the file type
  • Enhanced Security Mode (Mobile Only) - encrypts on-device files and integrates with device security (e.g. Touch ID for iOS).

Upgrading

If you are already using Liferay Sync and want to upgrade, you first upgrade your server-side Sync Connector plugin by downloading either the CE or EE connector from the Liferay Marketplace. No data migration is necessary.

To update your clients, simply install the new versions to replace the old versions. If you are upgrading from Sync 1, you will need to re-configure your connection settings after upgrade. If you're upgrading from Sync 3 Beta releases, your settings will be maintained.

Compatibility

See the downloads page for details, but basically:

  • Sync 3 (Desktop) requires Liferay Portal 6.2 with an updated Sync Connector plugin
  • Sync 3 for Mobile requires Liferay Portal 6.1+ (with no plugin required) or Liferay Portal 6.2+ with the updated Sync Connector plugin.

Documentation

The Liferay Documentation Team has been continuously adding and improving on the official documentation, based on customer and community feedback.
 

Differences between Desktop and Mobile

There are a few differences between Mobile and Desktop that you should be aware of.
  • Liferay Sync Mobile can only connect to one Liferay instance (but does support multiple Sites within that instance). Liferay Sync Desktop can connect to multiple instances.
  • Liferay Sync Mobile will only download file contents on demand (when you select the files) to conserve network bandwidth and limited storage on most devices.

Bug Reporting and Feedback

Sync Mobile users will find a Send Feedback button on the app's configuration screen. Alternatively, for Sync Desktop and Mobile users, you can post a message in the Liferay Sync forum describing the issue along with any relevant screenshots, stack traces from log files, environmental descriptions, etc. it's also a good place to start discussions about features you desire in future releases and provide feedback in general.

What's Next

Of course we in the Liferay Community are interested in your take on the new features in Liferay Sync 3. Work has already begun on the next major release, based on user feedback and community ideas (e.g. SSO Compatibility, White Labelling). 
 

Kudos!

This release was produced by Liferay's worldwide engineering team, and involved many hours of development, testing, writing documentation, translating, testing some more, and working with the wider Liferay community of customers, partners, and developers to incorporate all sorts of contributions, both big and small. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!

2015 Liferay Screens App Contest

General Blogs 2015年7月15日 按 James Falkner

Here we go again with another crazy summer app contest! This year, to celebrate the release of Liferay Screens, we are holding another community app building contest with some sweet, sweet prizes! I am happy to announce the opening of the 2015 Liferay Screens App Contest! Build a cool app using Liferay Screens and win!

What is Liferay Screens? I'm glad you asked!

Liferay Screens is a collection of fully native mobile components, using all the power of your Liferay Portal as an enterprise grade mobile back-end.

With Liferay Screens, building native apps is super simple - you get a set of fully customizable and extensible components (screenlets) that are pre-wired to talk to your Liferay Portal backend. Drop them in place, wire them together, and you're done. Oh, and of course it's 100% open source! Check out the intro video on the Screens project page for an even better intro:

The App Contest

This summer we invite you to get down and nerdy with Liferay Screens. The mobile revolution arrived a few years ago, so what are you waiting for? The contest begins today! Read details about the contest, including the judging criteria, deadlines, and official rules.

Contest Timeline

  • July 15: Contest Opens
  • September 1: Last day for submitting apps
  • September 15: Winners announced

That gives you around 6 weeks to complete and submit apps for the contest. Note this time includes the time needed for app approval by Google or Apple.

What can I win?

This year, up to 3 apps will be Grand Prize Winners. Each Grand Prize winner will choose one of two super cool wearables (see contest rules on the contest page for details):

All entrants will receive a gift from Liferay simply for building an app and entering the contest. We don't want anyone going home empty-handed!

Why should I enter the contest?

Besides the great prizes offered, your apps will be listed in various places (in our social media streams, contest follow-up material, and at future events) which has historically been shown to greatly increase your apps visibility and subsequent downloads and activity. Not only that, you will forever be recorded in the annals of Liferay history as an awesome app contest winner! Finally, you will have gained valuable knowledge and experience in the entire developer workflow of building mobile apps with Liferay and witness just how easy it is. Woo!

Ok, I want in! What do I do?

It's easy:

  1. Develop a native mobile app using Liferay Screens
  2. Submit App to either the iOS App Store or Google Play
  3. Fill out contest entry form (near bottom of page)
  4. Win! (Maybe)

Remember, you have until September 1, 2015 at 11:59pm US/Pacific to enter, so be sure to check out the Liferay Developer Network for everything you need to get started building apps with Liferay Screens. Don't forget, even after you submit the app itself to an app store, you still need to fill out the contest entry form so we know about it!

What if I need help?

No worries! The Liferay community is here for you. The Screens team and other experienced developers in our community can help you get started, answer technical questions, and help you get into the contest. If you have questions, you can post them to the Screens forum, tweet them with #LiferayScreens, or post to Facebook/Google+.

Tutorials, Resources, and more!

We have tons of material for you. Check them out:

Good luck, and we can't wait to see what you come up with!

Liferay Events: An Open Source Mobile App

General Blogs 2015年4月23日 按 James Falkner

If you've attended any Liferay Symposium, Solutions Forum, or Developer Conference in the last few years you've undoubtedly seen the companion mobile app that attendees can use to see up-to-date agendas, speaker info, session data, and a bunch of other features that enhance the attendee experience.

I'm happy to announce that the source code to this app (and its two server-side components here and here) is now available at GitHub and is waiting for you to check out (and developers to contribute!). The app is an example that showcases the real-world use of Liferay as a mobile data provider to a rich native app experience. It has been used at many of our events with thousands of attendees, speakers, sponsors, sessions, and more. Check out its documentation for details on how it works and how you as a mobile developer can also use it.

It takes advantage of several mobile features of the Liferay Platform, and there are many more for you to check out regardless of your mobile strategy (mobile developers and strategists won't want to miss next week's Developing Awesome Android Applications with Liferay Screens webcast!).

This app is not officially supported by Liferay, there is no official "release" and there is no one you can call to complain :) But you can contribute fixes, translations, or improvements! See the README for details.

Kudos

This project began as a re-purposed version of an app developed and demoed at WCS 2011 by LEVEL Studios (now Rosetta). The app was an early pioneering example of using Liferay to serve rich content to a mobile platform. Rosetta graciously agreed to donate the base app to Liferay and since then we have been adding new features in support of Liferay's worldwide events.
 
We wish to thank LEVEL Studios and Rosetta for their donation and commitment to the Liferay open source community!

Liferay 6.2 CE GA4 Now Available

Company Blogs 2015年4月15日 按 James Falkner

I'm very happy to announce the release of Liferay Portal 6.2 CE GA4! Download it now: [Tomcat Bundle] [JBoss Bundle] [GlassFish Bundle] [Source Code] [Other bundles and Files] [Quick Start] [Detailed Install Instructions].

Once again, this release is particularly noteworthy. Why is that? Well, if you attended DevCon in Germany last year, you probably don't remember it, but I promised you a regular 6-month community maintenance release cadence, starting with the 6.2 CE GA3 release on January 15th. And on January 15th, we did it: we released GA3.

And then guess what? You discovered a fatal flaw in GA3 that was particularly annoying and impactful, especially on the "first impression" of Liferay. After some discussion in the community we all agreed a new release was needed rather than wait the usual 6 months, so here we are 3 months later with a new release that includes your most requested fixes, along with many others. It's great to see such cooperation! You spoke, we listened (and you spoke and we listened again), you helped us fix it up, and now we release a GA4 that we hope will meet your needs better than ever!

Release Naming

Following Liferay's official versioning scheme, this release is Liferay Portal 6.2 CE GA4. The internal version number is 6.2.3. Future CE releases of 6.2 will be designated GA5, GA6, .. and so on. See below for upgrade instructions from 6.2.x, 6.1.x, 6.0.x, and 5.x.

Downloads

You can find the 6.2 CE GA4 release on the usual liferay.com downloads page. If you need additional files (for example, upgrade SQL scripts or dependency libraries), you can find them at the bottom of the downloads page.

Maven Artifacts

Developers can find this release in our Maven repository, and it should be showing up on Maven Central in the near future. As a reminder, you can also find Maven artifacts for Liferay 7 Milestone Releases (here's one of them) in the liferay-previews repository!

Source Code

As Liferay is an open source project, many of you will want to get at its guts. The source is available as a zip archive on the downloads page, or in its source code repository on Github. The repository has also been tagged for the release (as a reminder, the liferay-plugins repo no longer gets tags for portal releases as the plugins are de-coupled from core). Many community contributions went into this release, and hopefully many more in future releases! If you're interested in contributing, take a look at our new participate page on the Liferay Developer Network.

What's New / Changed?

This update fixes many issues [full list here], but here are some of the more important and/or popular ones that you may be interested in:

Known Issues

These are issues that were found during testing, but deemed not a showstopper (usually things are left as-is because they aren't severe (data loss/security breach), don't affect very many people, and there is a convenient workaround - luckily our 6 month cadence means you don't have to wait more than 6 months!). For details on workarounds, see the bug reports.

  • Writing to search index fails when Index Writer queue is full (LPS-54672
  • lucene/dump does not work when starting a node (LPS-54876)

Documentation

The Liferay Documentation Team has been continuously adding and improving on the official documentation. This includes updated javadoc and related reference documentation, updated tutorials and learning paths, and a new home on the Liferay Developer Network. While still in beta, this site will also become the new home of our developer and technical communities.

Our community has been instrumental in identifying the areas of improvement, and we are constantly updating the documentation to fill in any gaps. Check out Rich's blog for more detail on how you can get involved.

Support Matrix

Liferay has published the official compatibility matrix for 6.1 and 6.2. This is the official support matrix for our Enterprise Subscription customers, but it's a pretty good reference for CE as well. If you're wondering where Java 8 support is at, it's expected in the next release and has already been added as supported platform for EE.

Liferay Marketplace

Most Liferay-authored Marketplace plugins were updated to support 6.2 GA1 when it was first released, and remain compatible with this updated GA4 release.

If you are a Marketplace Developer, and have authored a 6.2 CE GA1, GA2, or GA3-compatible app, you should ensure your app continues to work with this 6.2 CE GA4 release. It is Liferay's aim to remain compatible within a given release family, so in the unlikely event that your app works with GA3 but NOT GA4, you will need to make any necessary changes and re-submit, and let the Marketplace team know about any incompatibilities you discovered. Chances are you will have nothing to do (since you declared compatibility with 6.2.0+, which includes 6.2.3).

Bug Reporting

As always, the project continues to use issues.liferay.com to report and manage bug and feature requests. If you believe you have encountered a bug in the new release (shocking, I know), please be cognizant of the bug reporting standards and report your issue on issues.liferay.com, selecting the 6.2.3 CE GA4 release as the value for the Affects Version/s field.

Upgrading

Good news for those of you on 6.0 or prior! Liferay introduced the seamless upgrade feature with Liferay 6.1. Seamless upgrades allow Liferay to be upgraded more easily. In most cases, pointing the latest version of Liferay to the database of the older version is enough. There are some caveats though, so be sure to check out the Upgrading Liferay information on the Liferay Developer Network for more detail on upgrading to this release.

Getting Support

Support for Liferay 6.2 CE comes from the wonderful and active community, from which Liferay itself was nurtured into the enterprise offering it is today. Please visit the community pages to find out more about the myriad avenues through which you can get your questions answered, and check out the new Liferay Developer Network for technical resources during your Liferay journey.

Liferay and its worldwide partner network also provides services, support, training, and consulting around Liferay via its Enterprise Subscription.

Also note that customers on existing releases such as 6.0 and 6.1 continue to be professionally supported, and the documentation, source, and other ancillary data about these releases will remain in place.

What's Next

Of course we in the Liferay Community are interested in your take on the new features in Liferay 6.2 and the updates in this GA4 release. Work has already begun on the next evolution of Liferay, based on user feedback and community ideas. If you are interested in learning more, join our expedition team and see what's under the hood of Liferay 7!

As I mentioned earlier, we will start doing regular open source releases of Liferay Portal every 6 months, until the next major release. So if you find bugs in this or previous releases, and want to up their priority to get them fixed, be sure to use JIRA and vote for your favorite issues!

Kudos!

This release was produced by Liferay's worldwide portal engineering team, and involved many hours of development, testing, writing documentation, translating, testing some more, and working with the wider Liferay community of customers, partners, and open source developers to incorporate all sorts of contributions, both big and small. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!

In addition to Liferay's engineering staff, a special thanks goes to the many open source developers who volunteered their time and energy to help with the release, whether it was bugfixing, idea generation, documentation, translations, testing, or other contribution that helped to improve this release. Check out the Community Contributor Hall of Fame and be sure to thank them if you run across them in the community (or add your name if you have contributed and are not listed).

Liferay 7 Community Expedition: 1 Month Later

Company Blogs 2015年4月2日 按 James Falkner

It's been about 1 month since we launched the Liferay 7 Community Expedition! I first want to thank all of you that have spent your valuable time and brain cycles to help with Liferay 7 exploration, and for collaborating with the rest of our open source community to respond to feedback they have given. I wanted to share some statistics and also remind you of what will happen in the next month as we continue our march toward the next major Liferay release.

165 community members signed up.

208 feedback forum posts (from 40 members)

1733 downloads of Milestone 3

2240 downloads of Milestone 4

6 cross-functional team wiki pages for M4

Where are the explorers?

Size? Large, apparently

Type? Developers, yay!

Interests and Goals?

The 6 teams (WCM, Staging, IDE, Collab & DM, Business Productivity, Front-end Infra) have received a lot of great feedback so far, and I hope it keeps coming! I fully expect a lot of activity around the time each Milestone is released, so it's really great to see the regular Milestones coming from the engineering and release teams, giving us a continuous view onto how Liferay 7 is evolving (and an awesome chance for you to help shape it). I also expect more teams to come online in the expedition as we get farther along. We've gotten a lot of positive feedback and social media traffic regarding this effort, so kudos again to everyone that has taken the time to participate, let's keep it going and make Liferay 7 the best EVAR!!!!!

Liferay Portal 6.3a Released!

Company Blogs 2015年4月1日 按 James Falkner

I'm very happy to announce the release of Liferay Portal 6.3a! Download it now: [Tomcat Bundle] [JBoss Bundle] [GlassFish Bundle] [Source Code] [Other bundles and Files] [Quick Start] [Detailed Install Instructions].

This release is particularly noteworthy as it represents a new direction for Liferay. Due to the cost involved in producing CE releases we've decided to make this and future community releases ad-supported. What does this mean? It means you'll start seeing advertisements from our sponsors and related products within Liferay and on websites built with Liferay (see screenshots below). And best of all, this is a completely free service for you. Ad revenue will go directly to Liferay and used for improving Liferay, and occasionally used for important executives on important business meetings using a new corporate jet we've leased. The "a" in 6.3a? Why, ads of course!

Control Panel Ads

Here is an example of the new Control Panel:

As you can see the ads are tastefully placed throughout. This is a great way to find deals on cars, or fix your PC (clearly mine has important problems that need to be fixed - I just clicked!). 

This release also corrects many issues found by our open source community and customers since the last release (and might introduce a few new issues -- sorry about that!). Want to know more? Read on!

Release Naming

Following Liferay's official versioning scheme, this release is Liferay Portal 6.3 CE GA1 (Codename: "Loki"). The internal version number is 6.3.0. Future CE releases will be designated GA2, GA3, .. and so on. Of course, it is unlikely this release will need an update. It's probably already perfect.

Downloads

You can find this release on the usual liferay.com downloads page. If you need additional files you'll need to visit the additional files page and possibly enter your credit card details, or make cheques payable to James Falkner.

Source Code

Unfortunately for this release we cannot release the source code, as it contains sensitive code related to the new advertisement feature. Also, there are some bugs we are particularly ashamed of but would rather not tell you about. It's more fun to find them! 

What's New / Changed?

This update fixes many bugs [full list here], but here are some of the more important and/or popular ones that you may be interested in:

  • A valid credit card is now required to activate your installation. We may share this information with our advertising "partners".
  • The use of ad-blocking software (hereafter referred to as "you meanie!") will render Liferay inoperable. Looking away or turning down your speakers during advertisements will cause NullPointerExceptions.

Kaleo Workflow

Users of Liferay's workflow engine will also appreciate the opportunity for great deals on Jewelry and cruises in an inconspicuous way that does not alter the usability at all. For example:

Known Issues

One of the things you get with a regular release cycle is the peace of mind of knowing that releases don't have to be held up by minor issues - it can get fixed in the next release, and no one should have to suffer delays because of really minor issues. There are a couple of items we found during testing that were deemed not to be "showstoppers" and will likely be fixed in the next release.

  • Occasionally, Liferay will not start properly. It only happens on Tuesdays, and only during low tides. We are investigating.
  • Please do not affix stickers from other portal software vendors to your laptops. Only Liferay stickers are permitted. Other stickers may cause your machine to run slower, and could potentially cause a lot of other things to go wrong.

Audience Targeting Updates

You probably saw the audience targeting plugin released last year. We are now "targeting" you, the Liefray user, more effectively. As a power Liferay admin, you've come to depend on the ability to configure Liferay. Now, with our embedded advertising, we're able to target you more effectively - every time you want to check the portal settings or update configuration (e.g. changing the virtual host, adding users, or even creating web content) you'll need to watch a short video ad, as shown below:

Not watching this ad will render Liferay inoperable until the ad is watched. You will require an internet connection and may need to enter credit card details to continue!

Documentation

The Liferay Documentation Team has been super-busy and has not yet had a chance to document this release. They send their regards!

Support Matrix

Liferay recently published the official compatibility matrix for 6.1 and 6.2. For this release, you can either use Tomcat, or you can use Tomcat. Tomcat users should also be OK.

Liferay Marketplace

Marketplace plugins are really superb, so you should go download some today!

If you are a Marketplace Developer, and have authored a 6.2 CE GA1- or GA2-compatible app, you should be aware that this release is not compatible with any other Liferay release. As such, your plugins will most likely not work. There's not much you can do -- again, sorry about that!

Bug Reporting

With this release we are pretty sure we've fixed all bugs, so there's no more need to report bugs. How awesome is that?

Upgrading

Good news for you! Because this release is completely incompatible, there is no need to Upgrade! You can simply install this release and delete your old one. Done!  There are some caveats though, so be sure to check out the Upgrading Liferay information on the Liferay Developer Network for more detail on upgrading to this release.

What's Next

It depends! On the amount of ad revenue we get. So keep watchin' those ads, folks!

Liferay Sync 3 Beta

Company Blogs 2015年3月3日 按 James Falkner


My Documents View

New Liferay Sync UI

Liferay has released a beta of the new version of Liferay Sync, the popular document sharing add-on for Liferay. Download it from the Downloads page, read the official documentation, and see below for more details on this release!

Downloads

You can get Liferay Sync (server and clients) from the Downloads page. Note that for Liferay Portal 6.2 you will need to update your Liferay installation by installing the the beta 3 version of the Sync Connector Web plugin (sync-web) and (optionally) the Sync Admin plugin (sync-admin-portlet), and then update your desktop and/or mobile clients with the beta release.

What's New?

  • A completely revamped, modern and intuitive UI for both Mobile and Desktop.
  • Sync Desktop allows connections with multiple portal instances.
  • Administrators can decide which Sites can be sync'd and which cannot.
  • Administrators can pause / resume syncing, configure max connection counts, and more.
  • Smart differencing - Sync only sends and receives minimal differences when files are updated - not the whole file - no matter the file type..
  • For more details, and a free demo, don't miss tomorrow's Sync 3.0 Liferay LIVE Webinar with the Sync team.

Upgrading

If you are already using Liferay Sync and want to upgrade your environment to try out Sync 3 Beta, you first upgrade your server-side Sync Connector Web (sync-web) plugin by downloading the new beta version from the downloads page and dropping it into Liferay's hot deploy folder (see the Installing Plugins Manually section of the Plugin Management documentation for more details if you are not familiar with deploying plugins). Same for the Sync Admin (sync-admin-portlet) plugin, if you want to try that too. No data migration is necessary.

To update your clients, simply install the new versions to replace the old versions. You will need to re-configure your connection settings after installing the Beta (but your old settings won't be deleted in case you want to downgrade later).

This release is a Beta release, and you are encouraged to try it out and give feedback to Liferay. However, it is not a supported release and is therefore unsuitable for use in production environments!

Compatibility

See the downloads page for details, but basically:

  • Sync 3 (Desktop) requires Liferay Portal 6.2 with an updated Sync Connector Web (sync-web) plugin
  • Sync 3 for Mobile requires Liferay Portal 6.1+ (with no plugin required) or Liferay Portal 6.2+ with the updated Sync Connector Web (sync-web) plugin.

If you're on 6.2 you can also use the Sync Admin plugin (sync-admin-portlet) for additional server-side config options.

Documentation

The Liferay Documentation Team has been continuously adding and improving on the official documentation, based on customer and community feedback. Liferay Sync 3 Beta users can access the most recent Liferay Sync 3 Beta documentation updates on the Liferay Developer Network!
 

Known issues

There are a few differences between Mobile and Desktop that you should be aware of.
  • Liferay Sync Mobile can only connect to one Liferay instance (but does support multiple Sites within that instance). Liferay Sync Desktop can connect to multiple instances.
  • Liferay Sync Mobile will only download file contents on demand (when you select the files) to conserve network bandwidth and limited storage on most devices.

Bug Reporting and Feedback

Sync Mobile users will find a Send Feedback button on the app's configuration screen. Alternatively, for Sync Desktop and Mobile users, you can post a message in the Liferay Sync forum describing the issue along with any relevant screenshots, stack traces from log files, environmental descriptions, etc. it's also a good place to start discussions about features you desire in future releases and provide feedback in general.

What's Next

Of course we in the Liferay Community are interested in your take on the new features in Liferay Sync 3 Beta. Work has already begun on the next major release, based on user feedback and community ideas (e.g. SSO Compatibility, White Labelling). Find out more at tomorrow's free webinar.
 

Kudos!

This release was produced by Liferay's worldwide engineering team, and involved many hours of development, testing, writing documentation, translating, testing some more, and working with the wider Liferay community of customers, partners, and developers to incorporate all sorts of contributions, both big and small. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!Webinar

Liferay 7 Community Expedition

General Blogs 2015年2月11日 按 James Falkner


Liferay Explorers
Miguel Ángel Pau & Moisés Belda
Liferay Spain User Group

During the Liferay 6.2 development cycle many of you participated in BugSquad and the Community Beta programs in order to provide valuable feedback and bug reports. This worked really well and we got a lot of positive feedback from over 70 participants in the program - so guess what - we're doing it again for Liferay 7!

Liferay 7 Community Expedition

In keeping with Jorge's adventuring theme, let me be the first to introduce you to the Liferay 7 Community Expedition! The goal is to make sure Liferay 7 meets your needs, and the rest of the community, with the quality and consistency you'd expect. This time around the program will be hosted on the Liferay Developer Network which should give us a great-looking site, better coordination and better personalization. This expedition, should you accept the challenge, will take you on a journey from our current Milestones through the final release of Liferay 7 and possibly beyond. You'll experience firsthand the awesomeness going into Liferay and see why everyone is so pumped up for this major release. We will focus on major feature areas like Web Content Management, Staging, Collab & Doc Management, Business Productivity, UI Infrastructure, Administration, Dev Tooling, and much more! Check out the signup form when joining for more information about what we'll focus on for the next Milestone.
 

Joining the Expedition

By this point I know what you are thinking: "How can I help!". I'm glad you asked! As you know, we are doing a preview/milestone release of Liferay 7 every 2 months. We need your help to review the development of Liferay 7, try out the new features, hunt for bugs, and give your feedback on which Liferay relies so heavily. So here's what to do:

  1. Sign up for the expedition. This lets us know who you are and more importantly lets us know what your interests are so we can customize your experience and get to know you better. Once you sign up, we'll send you more details.
  2. When the Milestone is released, expedition organizers (new recruit but experienced Liferay guy Jamie Sammons and myself) will send a detailed list of what's new in the Milestone, and what to focus on, along with specific instructions about how to use the Milestone. Download the Milestone and read the instructions.
  3. After trying out the Milestone, provide feedback on the Expedition Site (more information on this site after you sign up!).
  4. If you run into problems, or have questions, don't despair! Expedition leaders (many of our community and engineering experts) will be identified for each release that will be more than happy to assist.
All participants that contribute to the release will receive a small gift for contributing (that's me over there --> modelling the 6.2 shirt!), to proudly show you were part of the Liferay 7 release. You'll also learn a lot about the release, and get to know many core developers in the community, establish lasting relationships with others in the community, learn a little, and perhaps share a little. It's going to be a lot of fun! And best of all, we are starting the expedition NOW! Liferay 7 Milestone 4 is out soon (this week or next) so there is no time to waste. Sign up for the Expedition and keep watching your Inbox, and thank you for helping to make Liferay 7 an amazing and revolutionary platform for our entire community! We look forward to your involvement in Milestone 4 and beyond!

Liferay 6.2 CE GA3 Now Available

Technical Blogs 2015年1月15日 按 James Falkner

I'm very happy to announce the release of Liferay Portal 6.2 CE GA3! Download it now: [Tomcat Bundle] [JBoss Bundle] [GlassFish Bundle] [Source Code] [Other bundles and Files] [Quick Start] [Detailed Install Instructions].

This release is particularly noteworthy. Why is that? Well, if you attended DevCon in Germany last year, you probably don't remember it, but I promised you a regular 6-month community maintenance release cadence, starting with the 6.2 CE GA3 release on January 15th. Mind you, this presentation was over 2 months ago. Guess what today is! Yep, it's January 15th. We actually hit the promised date (pause here for applause). And you can expect another 6.2 CE release this summer, in mid-July. This will continue until the next major release (Liferay 7). This year we're going to do some really fun things in the community around the 7 release, so stay tuned for more info on that (or watch the video in its entirety).

Now, back to the topic of this post. This update corrects many issues found by our open source community and customers since the GA2 release (10 months ago). Our community and Liferay's continuous testing teams contributed to finding and fixing these bugs. Want to know more? Read on!

Release Naming

Following Liferay's official versioning scheme, this release is Liferay Portal 6.2 CE GA3. The internal version number is 6.2.2. Future CE releases of 6.2 will be designated GA4, GA5, .. and so on (assuming they are needed to fix issues, which is not always the case). See below for upgrade instructions from 6.2.x, 6.1.x, 6.0.x, and 5.x.

Downloads

You can find the 6.2 CE GA3 release on the usual liferay.com downloads page. If you need additional files (for example, the source code, or dependency libraries), you can find them on SourceForge as well.

Maven Artifacts

Developers can find this release in our Maven repository, and it should be showing up on Maven Central in the near future. As a reminder, you can also find SNAPSHOT releases of Liferay 7!

Source Code

As Liferay is an open source project, many of you will want to get at its guts. The source is available as a zip archive on the downloads page, or in its source code repository on Github. The repository has also been tagged for the release (as a reminder, the liferay-plugins repo no longer gets tags for portal releases as the plugins are de-coupled from core). Many community contributions went into this release, and hopefully many more in future releases! If you're interested in contributing, take a look at our new participate page on the Liferay Developer Network.

What's New / Changed?

This update fixes many issues [full list here], but here are some of the more important and/or popular ones that you may be interested in:

  • All known security vulnerabilities since GA2 was released
  • Ability to define model listeners for models that are defined in plugins (LPS-15144)
  • Categories not selected from Asset Publisher (LPS-48904)
  • Liferay startup very slow with windows 8.1 (LPS-47215)
  • Friendly URLs with locales names (LPS-27075)
  • Previewing a forum post edit causes it to become Draft Status and invisible to other users (LPS-31730 -- hurray! for me! and you!)
  • Side panels should addapt to fit the phone screen size (LPS-40938)
  • Other minor issues discovered in GA2

Known Issues

One of the things you get with a regular release cycle is the peace of mind of knowing that releases don't have to be held up by minor issues - it can get fixed in the next release, and no one should have to suffer delays because of really minor issues. There are a couple of items we found during testing that were deemed not to be "showstoppers" and will likely be fixed in the next release.

Documentation

The Liferay Documentation Team has been continuously adding and improving on the official documentation. This includes updated javadoc and related reference documentation, updated tutorials and learning paths, and a new home on the Liferay Developer Network. While still in beta, this site will also become the new home of our developer and technical communities.

Our community has been instrumental in identifying the areas of improvement, and we are constantly updating the documentation to fill in any gaps. Check out Rich's blog for more detail on how you can get involved.

Also note that the liferay-ui taglib reference documentation has is now included in the reference docs! The reference docs are available for browsing at http://docs.liferay.com/portal/6.2/ and for downloading as an archive.

Support Matrix

Liferay recently published the official compatibility matrix for 6.1 and 6.2. This is the official support matrix for our Enterprise Subscription customers, but it's a pretty good reference for CE as well. If you're wondering where Java 8 support is at, it's expected in the next release (we don't typically add new supported platform software in a maintenance release, and Java 8 wasn't ready when 6.2 was).

Liferay Marketplace

Most Liferay-authored Marketplace plugins were updated to support 6.2 GA1 when it was first released, and remain compatible with this updated GA3 release.

If you are a Marketplace Developer, and have authored a 6.2 CE GA1- or GA2-compatible app, you should ensure your app continues to work with this 6.2 CE GA3 release. It is Liferay's aim to remain compatible within a given release family, so in the unlikely event that your app works with GA2 but NOT GA3, you will need to make any necessary changes and re-submit, and let the Marketplace team know about any incompatibilities you discovered. Chances are you will have nothing to do (since you declared compatibility with 6.2.0+, which includes 6.2.2).

Bug Reporting

As always, the project continues to use issues.liferay.com to report and manage bug and feature requests. If you believe you have encountered a bug in the new release (shocking, I know), please be cognizant of the bug reporting standards and report your issue on issues.liferay.com, selecting the 6.2.2 CE GA3 release as the value for the Affects Version/s field.

Upgrading

Good news for those of you on 6.0 or prior! Liferay introduced the seamless upgrade feature with Liferay 6.1. Seamless upgrades allow Liferay to be upgraded more easily. In most cases, pointing the latest version of Liferay to the database of the older version is enough. There are some caveats though, so be sure to check out the Upgrading Liferay information on the Liferay Developer Network for more detail on upgrading to this release.

Getting Support

Support for Liferay 6.2 CE comes from the wonderful and active community, from which Liferay itself was nurtured into the enterprise offering it is today. Please visit the community pages to find out more about the myriad avenues through which you can get your questions answered, and check out the new Liferay Developer Network for technical resources during your Liferay journey.

Liferay and its worldwide partner network also provides services, support, training, and consulting around Liferay via its Enterprise Subscription.

Also note that customers on existing releases such as 6.0 and 6.1 continue to be professionally supported, and the documentation, source, and other ancillary data about these releases will remain in place.

What's Next

Of course we in the Liferay Community are interested in your take on the new features in Liferay 6.2 and the updates in this GA3 release. Work has already begun on the next evolution of Liferay, based on user feedback and community ideas. If you are interested in learning more about how you can get involved, put on your participation hat and dig in.

As I mentioned earlier, we will start doing regular open source releases of Liferay Portal every 6 months, until the next major release. So if you find bugs in this or previous releases, and want to up their priority to get them fixed, be sure to use JIRA and vote for your favorite issues!

Kudos!

This release was produced by Liferay's worldwide portal engineering team, and involved many hours of development, testing, writing documentation, translating, testing some more, and working with the wider Liferay community of customers, partners, and open source developers to incorporate all sorts of contributions, both big and small. We are glad you have chosen to use Liferay, and hope that it meets or exceeds your expectations!

In addition to Liferay's engineering staff, a special thanks goes to the many open source developers who volunteered their time and energy to help with the release, whether it was bugfixing, idea generation, documentation, translations, testing, or other contribution that helped to improve this release. Check out the Community Contributor Hall of Fame and be sure to thank them if you run across them in the community (or add your name if you have contributed and are not listed).

Liferay Cloud Services Open Beta

Company Blogs 2014年12月2日 按 James Falkner

UPDATE: Liferay Cloud Services has a new name! See this blog post for details on Liferay Connected Services!

Today Liferay Cloud Services enters a new phase of its beta program - and now invites all of our community to participate in the Liferay Cloud Services Beta. If you'd like to try it out (and promise to give your feedback!), visit liferay.com/cloud-services and click "Get Started" to sign up (it's super easy!), install the agent on one or more servers, and see what LCS can do for you.

What is Liferay Cloud Services?

Liferay Cloud Services is a new online platform that offers tools and services that will help our customers suceed on Liferay projects. Specifically, LCS allows you to set up projects that represent your Liferay deployment(s), add and manage users and their roles, manage fix packs on EE, and monitor your Liferay deployment's health via metrics dashboards. The best part: we can easily add new services without impacting existing services. It's all on the cloud!

What's New

Since launching the first LCS limited beta, the team has been busy listening to your feedback and making several improvements including:

  • Show each individual portlet load time
  • Ability to sort pages and portlets by average load time to easily find the slowest ones
  • Ability to download all available fix packs with a single click
  • Ability to configure/modify proxy connection settings
  • More robust client and better error management
  • Ability to invite (and reject) users to your projects
  • Ability to update project names
  • Fixed many issues reported by our awesome beta testers

Compatibility

Liferay Cloud Services is compatible with Liferay Portal 6.2 CE+EE and 6.1 GA3 CE+EE. It also works with on-premesis or cloud deployments, so we can target the maximum number of kinds of deployments.

Providing Feedback

Joining the beta program and providing feedback is the best way to steer the product direction to best suit your needs. The LCS team values all feedback, and it's easy to give: just click on "Feedback" within the dashboard. Easy!

What's Next

Currently LCS offers health services: per-portlet statistics, JVM analytics, and patch management. The team is investigating adding more services based on customer and community feedback! So get involved in the Beta today and see what it can do for your Liferay deployments and let us know what you want to see using the Feedback link! Just visit the landing page and click "Get Started"!

 

2014 Liferay Community Pulse Awards

Company Blogs 2014年11月20日 按 James Falkner

Wow. Just.. WOW. It's Liferay's 10th anniversary, and I've been blessed to be able to be a part of it the last several years, including this year. A big round of applause goes to you and our entire community for your work and achievements this year! It's been an interesting year for us, both in terms of technology and community. If you attended any online or in-person events this year and heard our community leaders talk, you have a head start on witnessing some of the cool stuff we are doing as we transition Liferay to an even more ultra-cool and modern web platform.

And the best part? Not only is it happening in open source, it's becoming even more accessible to you via our community and is right there in front of you waiting for you to dig in and help complete the journey with us! It's really easy to sit back, watch, and consume, but it's much more rewarding personally and professionally when you get involved. One of those rewards is one I strongly believe in, which is recognition amongst peers that you are helping to make a difference. So, to that end I was honored to be able to present this year's 2014 Community Pulse Awards to those organizations and individuals that are helping shape Liferay for the future!

Liferay Pulse Award: Community Contributors of the Year

This award is given to individuals (not employed by Liferay or its partners) that volunteer their time and effort to make Liferay and its community better. This year, extra marks were given for well-rounded participation and contribution in different areas, as well as for value given through non-liferay.com venues (e.g. personal blogs, stackoverflow.com, and others).

In no particular order, I present to you our Liferay Community Contributors of the Year for 2014!

Bijan Vakili (USA)

Bijan is the de facto IRC channel maintainer and longtime community member - setting up a very useful log, and also developed a very cool set of open source Marketplace apps which connect Liferay admins directly to IRC to get questions answered from right inside Liferay!

Dave Nebinger (USA)

If you hang out on our forums at all, you probably know Dave - one of the most prolific contributors to our forums, with an impressive 1700+ posts this year alone and 56 solutions (as voted by those who asked!). He's also a 2-time winner of the quarterly Top Contributor award and is in the chase to become top poster of all time.

Nagul Meera (India)

Nagul is also a heavy contributor to our forums and wiki, with over 600 posts and comes in 3rd place in the answer-to-post ratio, and maintains a great blog on technical tips and tricks for Liferay.

Denis Signoretto (Italy)

Denis had a well-rounded contribution track this year, with contributions across many areas including the forums and wiki, as well as contributing an good amount of bug reports, 25% for which he contribution code solutions!

Krzysztof Gołębiowski (Poland)

Krzysztof is our #2 answer-to-post ratio (308/14) and also contributes around the community, including bug reporting and code contributions, and is active in the Poland user group, and unknowingly contributes in other ways (making sure Liferay supports his name!).

If you see these folks in our community, be sure to congratulate them on a job very well done this year!

Liferay Pulse Award: Community Excellence

Liferay's growth and success over the last several years has be in no small part due to our awesome worldwide network of partners. The Community Excellence Award is given to those in our partner community who demonstrate a unique and valuable dedication to our open source community. Companies here have spent their own time and resources to make our community better, which of course benefits everyone, so we recognize them here and thank them for their dedication to growing Liferay and its community.

EMEA

ACA-IT (Belgium)

ACA has been a big supporter of our community this year, sponsoring (and contributing to!) events and has begun to document their Liferay chops in an excellent series of blogs on Liferay and other technologies in which they have expertise. ACA has also contributed 2 very useful apps to the Marketplace, heads up the Belgium User Group, and we value their continued presence in our community!

Arcusys (Finland)

Arcusys is probably best known for their 2 award-winning open source apps on the Marketplace, but also are active on our community forums, blogs, and the Finland user group. Arcusys is a big champion of Liferay throughout Finland's healthy open source ecosystem, recently achieved Platinum status, and their spirit aligns nicely with our open source community.

Componence (Netherlands)

Once again we find Componence on our list, due to their continued support of our Dutch Liferay community - including actively managing the Netherlands user group, sponsoring events (as well as organizing events within events), active contributors to our forums and Liferay Dutch translations and several utility apps on the Marketplace.

SMC (Italy)

SMC founded and continues to lead the Italy User Group, and was one of the first Liferay partners ever, so it is no surprise they are committed to our community. SMC also contributed to our Italian and English forums, and is the organizing sponsor of this year's Italy Symposium which begins today in Rome! They also developed a liferay.com forums app for iOS/Android for you to participate in our forums, several outstanding Marketplace apps, and contribute to the Liferay Calendar feature and Mobile SDK.

Americas / APAC

Cignex Datamatics (USA)

Cignex is a long time contributor and repeat winner of Community Excellence. They have "doubled down" on their community contribution and it shows - several individuals have been recognized as quarterly top contributors and they are heavy participants on our forums, blogs, and sponsor Liferay events worldwide.

Permeance Technologies (Australia)

Permeance continues to be a big open source contributor, authoring a set of 8 really useful apps on the Marketplace (I use the Log Viewer on a daily basis in our cloud infrastructure), and graciously contributing their source code to our community and showing us how to do apps right. They also routinely break Liferay as part of their training and support roles, file bugs, and work with Liferay to fix it so you don't have to!

Rivet Logic (USA)

This is Rivet Logic's first win for Community Excellence - the entire team has stepped up their game this year through road shows, event sponsorship, and they have also authored the most number of apps by a single company across the entire Marketplace - 18 of them - all free and open source. Their track record in our community helps all of you - and helps them as well, which is what community is all about. Hear their story.

Savoir-faire Linux (Canada)

I had some details on Savoir-faire but instead want you to watch this video - it says everything I'd put here. They are awesome contributors and really understand open source and community.

XTIVIA (USA)

XTIVIA is ever present in our community, and has shown their passion for it through their contributions to our forums and community meetups (both offline and in person), spreading not only their passion but their knowledge of Liferay through these efforts. They lead the Austin, SoCal, and Denver user groups, sponsor events, and have contributed a handful of unique and useful Marketplace apps. Their recognition as Liferay's North America Partner of the Year I hope was in part due to their community excellence, and we look forward to 2015 with the team!

Please join me in congratulating all of these individual contributors and partners. They, along with the rest of our community, are what make my job so rewarding and what I believe makes Liferay stand out above all as an example of open source and community at its best. Great job everyone! I am very happy to see all the enthusiasm and passion for open source and for Liferay, and I look forward to seeing what we can accomplish in 2015 and beyond.

---

Note: Pulse Awards were also given to "Best" Liferay implementations as well.

DIY: Liferay Events Hacks: Part 2

Technical Blogs 2014年10月21日 按 James Falkner

A community challenge for you

Liferay's worldwide conferences generate quite a bit of data, and I am challenging the community: Take this data, and do something more interesting than a boring list of speakers and rooms. Get creative with the data (it's super-easy to digest, see the example code from my first post). Have some fun and show us how creative you can get!

What's In It For Me?

You'll win one of these:

  • Gratitude from our community and recognition from your peers that you are indeed a rockstar hacker (and a small gift from Liferay), or
  • A Tesla1

Not sure which one will be given away yet. We're still working out the details.

The Details

Liferay holds many events throughout the year, and there is a lot of data associated with them. Hundreds of speakers, sessions, and activities across global venues means a lot of data, and in a previous blog post I challenged you to take our open data stream and do something interesting with it. In that post, I documented the data related to sessions, speakers, rooms, maps, activities, sponsors, etc, and gave some example JavaScript you can copy/paste into your browser's developer console to see just how easy it is. And it's all available to you and your creative minds!

Now it's time to look at some even more interesting data: iBeacons!

If you've attended some of our recent Liferay conferences (or you're planning on attending future events), you've probably heard of iBeacons. We've been using them in several events to showcase Liferay as a mobile engagement platform and to provide value to attendees by engaging them with location and time-sensitive notifications (e.g. when walking out of a breakout session, you'll receive helpful followup information about related sessions, and a plea to provide feedback).

The way it works is pretty simple: the Liferay Events mobile app knows about these little Bluetooth transmitters we hide throughout venues (if you look around, you might spot them!). When you walk into or out of range of each beacon, or linger in a given area, the app knows what you're doing and will provide interactive notifications to you based on your movement.

But there's more -- the app also periodically records (anonymous) data regarding how many devices are within range of each beacon. Although this makes Olaf's tinfoil hat buzz with doubt and uncertainty, you (and Olaf) can rest assured we do not record anything private or identifying - it's totally anonymous.

And the best part -- the data is open for you to browse, process, and have fun with. And therein lies this challenge: channel your inner analytic/visualization geek, hook up to the data, and show everyone something interesting! It doesn't have to be enterprise-grade, bulletproof, fully cooked, or ready for deployment into production. But if it's interesting and fun, I'll do my best to show off your creation in our community.

Don't forget, the agenda/speakers/sessions/rooms data is already documented. What follows a description of the iBeacon data.

The iBeacon Data

iBeacon data can be retrieved using a JSON endpoint and specifying the event for which you want data (and optionally a time of day filter to reduce how much data you want or do realtime monitoring). You can also retrieve data for a past event or a current event (e.g. for a realtime dashboard). The event specifiers for 2014 that might have data:

  • lpsf-benelux-2014 (Benelux Solutions Forum)
  • lrfs2014 (France Symposium)
  • lr-nas-2014 (North America Symposium)
  • spain2014 (Spain Symposium)
  • lpsf-uk-2014 (UK Solutions Forum)
  • lpsf-de-2014 (Germany Solutions Forum)
  • devcon-2014 (Liferay Developer Conference)
  • brazil2014 (Brazil Symposium)
  • italy2014 (Italy Symposium)

Example URLs

1. Get all the iBeacon data for the Benelux Solutions Forum:

http://mdata.liferay.com/html/mdata-public/liferay-beacons-service-get.jsp?event=lrfs2014

2. Get all the iBeacon data for the France Symposium, but only starting at 1402583699000 (which is Thu, 12 Jun 2014 14:34:59 GMT)

http://mdata.liferay.com/html/mdata-public/liferay-beacons-service-get.jsp?event=lrfs2014&from=1402583699000

3. Get all the iBeacon data from the France Symposium between 1402583699000 and 1402583799000 (i.e. from Thu, 12 Jun 2014 14:34:59 GMT through Thu, 12 Jun 2014 14:36:39 GMT, about 2 seconds worth):

http://mdata.liferay.com/html/mdata-public/liferay-beacons-service-get.jsp?event=lrfs2014&from=1402583699000&to=1402583799000

The first example should give you 3239 results, the second about 600, and the third about 6 results. Note that some events do not yet have any data, because the event has not yet taken place. But you can use prior events for testing purposes!

The result object is always a JSON object that has a status code (stat) to indicate success or not. The code is either ok (meaning success), or something else (indicating failure). So check the stat code before doing anything else. E.g. here's an error:

{
  "stat": "error: something is horribly wrong"
}

And here's what success looks like:

{
  "stat" : "ok",
  "size" : <size of result set>,
  "from": <earliest timestamp of result set, or specific "from" time if you gave one>,
  "to": <last timestamp, or specific "to" time if you gave one>,
  "resultSet": <JSON ARRAY OF RESULTS>
}

The resultSet is itself a JSON Array.. of results. It looks like:


[
    {
        "id": "8f6ac3d0f22afa59",
        "date": 1402583703156,
        "beacons": [
            {
                "proximity": "far",
                "beacon_name": "Mystery Object 4"
            },
            {
                "proximity": "immediate",
                "beacon_name": "Mystery Object 1"
            },
            {
                "proximity": "far",
                "beacon_name": "Mystery Object 3"
            },
            {
                "proximity": "near",
                "beacon_name": "Mystery Object 2"
            }
        ],
        "regions": ["Venue", "Salon Bonaparte"]
    },
    <more results>,...
]

The entries in each array element of the resultSet:

  • id: A unique id (corresponding to a unique install of the app; if you reinstall the app you get a new id)
  • date: The timestamp of the ping
  • regions: a JSON Array of regions that the device was "in" at the time of the ping
  • beacons: a JSON Array of individual beacons that the device could "see" at the time of the ping. A proximity to each beacon is also included (immediate, near, or far)

To understand what a beacon region vs. individual beacon is, read this blog post!

So there you have it - what are you going to do with it?

----

1Tesla joke shamelessly stolen from Henry Nakamura

 

显示 117 结果中的 1 - 20。
Items 20
的 6