AdoptOS

Assistance with Open Source adoption

ECM

Setup liferay 6.2 on EC2 ubuntu instance with Apache2

Liferay - Sat, 09/20/2014 - 07:59

Introduction

Recently We are deployed our application named TOURFILLA(Travel social networking site, http://www.tourfilla.com ) on AWS EC2 instance. For doing that I refer a plenty of blogs and experiment on that , really J ., Finally we did that. So I decided to write a blog about the way which working for me.

In this blog, I am trying to explain how to install oracle JDK in Ubuntu environment , how to setup and run Liferay 6.2 Tomcat server, how to install and Liferay Tomcat with Apache2,  how to write re-direct rules and how to make apache to serve static files directly rather than having to go through Tomcat.

This blogs assumes that you have already setup amazon EC2 Ubuntu 14.04 LTS instance. It doesn't go through how to setup Ubuntu Server 14.04 LTS on a EC2.

Connect the amazon instance using ssh, once you are get access to the machine, you can start installing the required software.

1.       Installing Oracle JDK

  The Oracle JDK is the official JDK; however, it is no longer provided by Oracle as a default installation for Ubuntu.

To install any version, first execute the following commands:

 

sudo apt-get update

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

 

for install oracle jdk7 run,

sudo apt-get install oracle-java7-installer

 

When there are multiple Java installations on your instance, the Java version to use as default can be chosen. To do this, execute the following command:

 

sudo update-alternatives --config java

after running that command , if you have 2 installations it will show you, so you can choose one you prefer.

 

More details on how to install JDK on Ubuntu environment I personally recommend you to refer following url;

https://www.digitalocean.com/community/tutorials/how-to-install-java-on-ubuntu-with-apt-get

 

2.       Download the latest bundle of liferay from liferay.com or upload from your system.

 

To download the latest bundle of liferay from sourceforge, execute the following commands :

 

sudo wget http://softlayer-sng.dl.sourceforge.net/project/lportal/Liferay%20Portal/6.2.1%20GA2/liferay-portal-tomcat-6.2-ce-ga2-20140319114139101.zip

 

To unzip:

sudo unzip liferay-portal-tomcat-6.2-ce-ga2-20140319114139101.zip

 

Then navigate to inside bin directory and start liferay server using,

 

sudo ./startup.sh

 

After server starting process completed , you can access liferay tomcat on browser usin user instance public ip:running port number of the server. In my case  54.254.186.52 is my public ip,

through out this tutorial I will now consider that this the I.P address of your instance. So I can access it http:// 54.254.186.52:8080.

Now our prime focus is to make available our server by typing http:// 54.254.186.52 instead of http:// 54.254.186.52:8080 in the browser. For doing that we have two way.

 

  Way 1: We have to make your portal server running on port 80 by just modifying server.xml

  And  change the line <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

 

Connector port to 80.

 

And restart the server, now you can access liferay by using 54.254.186.52.     BUT IT IS NOT ADVISIBLE TO RUN TOMCAT ON PORT 80. INSTEAD YOU CAN RUN TOMCAT BEHIND APACHE2 SERVER. So our next step is to install Appache2. Now I assume that liferay server running in 8080 port.

 

Way :2 Fronting Liferay Tomcat with Apache2

 

 

3.       Download Apache2 and run

For downloading appach2 run command:

 

sudo apt-get install apache2

 

After successful installation you can access appache2 page by entering

http:// 54.254.186.52 . So far so good..

 

Our next step is to make Liferay tomcat server  front-ended with appache2. Which simply means if we access usin http:// 54.254.186.52 url we need to show our liferay portal page instead of apache2 landing page.

 

4.       Fronting Liferay Tomcat with Apache2

Install Mod Jk

sudo apt-get install libapache2-mod-jk

 

then restart the apache2

sudo service apache2 restart

Edit or create the /etc/apache2/workers.properties file

Add following line into /etc/apache2/workers.properties file,

                      worker.list=tomcat

                      worker.tomcat.type=ajp13

                      worker.tomcat.host:127.0.0.1

                      worker.tomcat.port=8009

 

apache2.conf file: Add the following in apache.conf in /etc/apache2

 

JkWorkersFile /etc/apache2/workers.properties

JkShmFile /var/log/apache2/mod_jk.shm

JkLogFile /var/log/apache2/mod_jk.log

JkLogLevel error

JkRequestLogFormat "%U %q "

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkMount /* tomcat

 

then restart the apache2

sudo service apache2 restart

# enable mod_proxy and mod_proxy_ajp for httpd

sudo a2enmod proxy proxy_ajp

sudo service apache2 restart

 

000-default file: Add the following in apache.conf in /etc/apache2/ sites-enabled/000-default

Before the end of VirtualHost tag, place the ProxyPass and ProxyPassReverse with the appropriate path to the target tomcat app.

 

      # this will forward the requests to /my-app to tomcat7

      ProxyPass /my-app ajp://localhost:8009/my-app 

      ProxyPassReverse /my-app ajp://localhost:8009/my-app 

 

      # this will pass all the requests from httpd to tomcat7

      ProxyPass / ajp://localhost:8009/

      ProxyPassReverse / ajp://localhost:8009/

 

   Then save and close the file.And restart the apache httpd server

   sudo service apache2 restart

 

Now you can access your liferay portal usin http:// 54.254.186.52 url instead of http:// 54.254.186.52:8080. Liferay tomcat is now front-ended with Apache!! Cheer up 

 

5.  Make Apache2 to serve static content

 

First copy the /opt/liferay/tomcat/webapps/ROOT/html directory to Apache's htdocs directory, /var/www/localhost/htdocs in my case. You should also copy all of the other webapps directories (all except for ROOT) to the htdocs directory. By copying all of these directories, any incoming requests for static content will be handled by Apache rather than Tomcat.

 

default_vhost.include file: Add the following in default_vhost.include in /etc/apache2/vhosts.d/default_vhost

<IfModule jk_module>

  JkMount /* ajp13

 

  JkUnmount /*.jpg ajp13

  JkUnmount /*.jpeg ajp13

  JkUnmount /*.gif ajp13

  JkUnmount /*.png ajp13

  JkUnmount /*.ico ajp13

  JkUnmount /*.css ajp13

  JkUnmount /*.js ajp13

</IfModule>

 

By using JkUnmount, you're indicating to Apache that it should handle requests with the given extension(s) rather than passing them through to Tomcat.

Then restart apache2 sudo service apache2 restart

DONE!!!

I hope my blog will help someone who struggles with EC2 lifery setup..

 


 My sincere thanks to My Ahamed Hasan , David H Nebinger and Muhammed Shakir for their blogs and forum post.

And I am strongly recommend to refer following links,

http://www.liferay.com/web/26526/blog/-/blogs/fronting-liferay-tomcat-with-apache-httpd-daemon

https://www.liferay.com/community/forums/-/message_boards/message/37825041

http://community.jaspersoft.com/wiki/connecting-apache-web-server-tomcat-and-writing-re-direct-rules

               http://www.liferayaddicts.net/blogs/-/blogs/11337

              https://help.ubuntu.com/10.04/serverguide/httpd.html

 

ThankYou,

Muhanned Shafeek

 

Muhammed Shafeek V 2014-09-20T12:59:02Z
Categories: CMS, ECM

The future of UI Development and AlloyUI in Liferay 7

Liferay - Wed, 09/17/2014 - 09:54

Since my last blog post, I have gotten quite a few emails and questions about what the future of front end engineering looks like now that Yahoo has ended new development on YUI.

What I'd like to cover here is a general overview of where we've decided to go and the reasoning behind the direction.

After much thought and discussion, we've decided that AlloyUI 3 will be our final release that is based upon YUI. However this does not mean the end of AlloyUI at all, but is in fact an exciting new chapter.

We have decided that we will be changing our underlying DOM/ajax/animation toolkit to using jQuery. For areas where jQuery doesn't have coverage, we will either leverage third-party libraries as much as possible, or when those are not sufficient, writing and maintaining our own components (about which, I'll go into a bit more detail later in this post). This set of UI components and utilities will be exposed as jQuery plugins, and will comprise AlloyUI 4.

Naturally, there are some questions, but the first one I'd like to address is:

What does this mean for code written with AlloyUI in Liferay 6.2?

For Liferay 7, we will be using AlloyUI 4 and also bundling Alloy UI 3 for backwards compatibility (which can be opted into by setting a property on your portlet, or if needed, included from your theme). This will behave as it has and the code you've invest time into now should work as it did previously. While AlloyUI 4 will not be backwards compatible with AlloyUI 3, they'll be able to safely co-exist within the same page.

What if I'm already using jQuery in Liferay 6.2?

You are also safe going forward, and in Liferay 7.0, you will have many benefits since AlloyUI's components will be exposed as jQuery plugins.

AlloyUI 4 Overview

From a high level, our goals and plans for AlloyUI 4 are to have a strong focus on the needs of modern web development, both in a portal context, and from a general web development context. Things such as mobile-first web development, single page applications and modular components.

There are also a lot of exciting things coming into JavaScript with the ECMAScript 6 specification coming closer to a reality, and we want to help enterprises leverage these new features as much as possible.

Some history (a.k.a. "Didn't you guys used to be based on jQuery?")

Eduardo Lundgren  and I started working on AlloyUI over 5 years ago. At that time, there were shortcomings that we bumped into within jQuery and jQueryUI, and there was a dearth of options for building enterprise applications within the jQuery space. Since then, jQuery has not only filled in many of the issues we had, but it has also become the de facto API of the web.

Even other DOM/ajax/animation micro-frameworks have implemented the jQuery API, and even many specialized libraries, such as d3.js or RaphaelJS have adopted jQuery-like APIs.

Also, the general front-end ecosystem has grown quite a bit since that time as well. Utilities such as LoDash, or Underscore have stepped in to provide common and useful functionality. There is a plethora of MVC/SPA frameworks (and while AngularJS sure has a lot of momentum, Backbone, Ember, and Knockout are still going strong). CSS frameworks such as Bootstrap (which we started leveraging in Liferay 6.2), Foundation, PureCSS, etc., have gotten a lot of traction and maturity, even in many cases including their own set of JavaScript components based on jQuery.

Basically, for a wide range of UI infrastructure pieces, there are a lot of options out there, far more than was the case back in 2009.

How does AlloyUI 4 fit into this ecosystem?

YUI was great because it provided multiple options under one library, with a consistent API and a shared set of foundational utilities and components.

What we want for AlloyUI is to leverage those best of breed options wherever possible, and focus on providing value to our Liferay customers where we feel we can contribute to most.

Not all of these third-party frameworks will fill our needs, or they may not be of the enterprise quality that we expect and our clients demand. We can provide value in these cases by either contributing fixes or enhancements to these libraries, or, if they're not interested in accepting those, in still providing those to the community at large.

There are also some areas that are not covered at all by current libraries. For example, while lazy-loading of JavaScript has become quite popular, there is still nothing at all like YUI's Combo Loader, which dynamically lazy-loads modules. These sorts of enhancements we can write, and provide them as plugins that work with third-party libraries, rather than re-inventing the wheel.

We also want to provide the components we create in a much more modular way, so that people can leverage them individually as well.

Overall, while there are still a lot of details that we need work out, and a LOT of work to be done, we are quite excited about this direction.

As we flesh things out, my aim is for the team and I to blog as much as we can about the decisions and how they may affect you and get feedback from you.

So with that, I'd like to thank you all for your support and passion. If there's anything we can do, or think we should do, please let us know.

Nate Cavanaugh 2014-09-17T14:54:59Z
Categories: CMS, ECM

Recommend Sales Enablement Content that Performs

KnowledgTree - Tue, 09/16/2014 - 10:04

If you’re like most sales enablement and marketing organizations you produce a lot of content. And you’ve likely seen the – sobering – statistic that 70% of content never gets used. In previous posts I looked into the 70% from the perspective of ensuring that sales people can discover relevant content. But a feature from KnowledgeTree lets us take a look at sales enablement content from a different perspective.

If 70% of your content is never used, then think about what sales people are using. If they have to search for content, it’s never sure what they’ll find. Let’s say a sales person searches for “case study”. A typical sales portal will return content that most frequently uses the term “case study”. But that’s not enough, you want sales people to access not only relevant content – you want content that performs.

Sales Enablement and Marketing Content Performance

Content that performs? That’s right. As we know thanks to marketing automation technology, not all content is equally effective. Some will generate a lot of interest and shares among colleagues. Other content will be ignored or quickly forgotten.

Content is recommended based on sales information — including what content performs best in this sales situation.

KnowledgeTree helps sales teams not only discover relevant content but also winning content. How? We’ve developed our content recommendation algorithm to sort content based on its performance. So every time a sales person opens a Contact, Lead, Opportunity, or other record in Salesforce.com, they discover effective content. Let’s look at the algorithm in more detail:

How Does Content Recommendation Work?

Step into any record in Salesforce and sales people discover the right content at the right time:

1. First, we filter out the noise. Only the most recommended content for a given sales situation will appear on a record. Not every presentation, video, and datasheet. Sales people don’t have time to filter through search results. The best match for a sales situation is more effective.

2. New content is particularly important. A new datasheet or blog post can help sales people communicate fresh-thinking and new information to prospects. So new content takes priority.

3. Content that wins is recommended next. Content is only as good as its results. So if one content piece consistently is linked to winning deals and advancing leads, you’d want sales people to use it more frequently. KnowledgeTree’s Data Science works behind the scenes to predict which content will engage different prospects. That means winning content gets used by sales teams.

4. Content that’s used by internal sales people gets recommended too. There’s another important usage statistic you need to know. That is whether your sales people themselves are using your content. Content that sales teams are constantly using is doing something right. So KnowledgeTree recommends it more highly to sales teams.

Content analytics let marketing see which sales enablement content performs

Sales enablement and marketing content that’s proven to work in the field is the kind of content you want sales teams to use. See how KnowledgeTree can help you get that recommended content to your sales teams.

Want to see a demonstration now? We’d be glad to show you best practices around recommended content to your sales teams.

 

The post Recommend Sales Enablement
Content that Performs
appeared first on KnowledgeTree.

Categories: ECM

Announcement: Social Office 3.1 Enterprise Edition Released

Liferay - Thu, 09/11/2014 - 17:30

Our most recent update to Social Office EE for Liferay Portal 6.2 was uploaded to Liferay Marketplace today.

Social Office 3.1 EE provides several improvements over version 3.0 EE, released earlier in the year. You can view the changelog here to get a complete list of fixes and enhancements, but here’s a few of my favorite:

 

Improved Dockbar Notifications:

 

3.0 introduced the new, extensible notifications framework, allowing developers to add their own notifications. In 3.1 we’ve added several more options out of the box, so that you can configure and receive dockbar notifications for many of the assets you subscribe to (blogs, wikis, web content, etc). Additionally we’ve separated out Requests (actionable notifications) from Passive Notifications. This means you can quickly dismiss Passive Notifications in bulk while still retaining access to Requests from the drop-down until you chose to action them. Here’s what that looks like:

 

 

 

More control over Site Creation:

 

As part of our efforts to simplify administration for Social Office, we expanded our Social Office Configurations to include options for restricting site creation through the dockbar. Currently, by default, all Social Office users can create sites. Now we’ve provided an easy way to  remove this permission from the Configurations menu, allowing admin to halt the creation of sites temporarily, or delegate the permission to create sites to a subset of users. Additionally, we have provided configurations to restrict the site options available for creation through the dockbar. Here’s another picture to help explain:

 

Mobile Responsive Theme

 

We’ve continued to work on optimizing the Social Office experience on small devices. I’ve been playing around with it on my phone for a few days and its just looks great!

 



We’re already lining up the improvements we’d like to make for our next version so please upgrade or try our Enterprise Edition trial here and give us your feedback, so we can continue building the things you need.

 

Enjoy!

 

Vicki Lea Tsang 2014-09-11T22:30:54Z
Categories: CMS, ECM

5 Keys to a Successful Product Launch Most Marketers Forget

KnowledgTree - Thu, 09/11/2014 - 14:45

You’ve prepared your product launch for weeks. Careful market analysis led to a great business plan. The business plan was put into effect with a ready-to-ship product. Your marketing plan took shape, and you’re ready to unleash your marketing and tell the world!

Press release? Check. Social strategy? Tweet. Marketing content update? Check.

But if you run marketing for a B2B company, there’s a key element for any product launch. That’s sales enablement. Your sales team is not only a primary revenue driver, they are also often the number one channel for marketing communications. So, it’s critical that you equip them with sales enablement tools that make them effective.

2014 is the year of Sales Enablement. So many marketers and sales leaders are hearing the call. But there is so much more than just alerting the sales team that a new product is ready to launch. Let’s walk through the 5 most overlooked elements:

1. Sales Training

Your sales team will be in customer meetings talking about your new product. Do they know how to respond to competitive threats? Do they know what messages will resonate?

Effective sales enablement depends on helping sales teams engage with prospects under tight timelines and pressure. And that requires good sales training. But as studies have shown, most sales training is not retained mere days after a training session.

Focus on the key elements in your training — value propositions and where to access supporting materials. That way even though training gets forgotten, they’ll know where they can access refresher materials.

2. Content to Support Selling

You know that content is important to the sales process. And new or revised content is generally part of your product launch program. But the challenge with helping sales teams message correctly is to make sure they have access to the materials.

So, don’t just produce a great datasheet and put in on the sales portal. Make sure that it is easily accessible to sales people. Or better yet, put in place tools that push great content to your sales team at the right time based on their sales situations.

3. Internal Guidance

Effective sales people know how to message correctly in any sales situation. They have the right sales enablement information to confront competitive threats. They know key value propositions to use in different scenarios with prospects. And they know who to call on for product expertise.

But as your sales process gets more complex — say as new products get added (!) it becomes more difficult for sales people to know how to respond on the fly. Give your sales team quick access to cheat sheets, scripts, and other techniques and guidance that help them to sell your new offer more effectively.

4. Follow-On Case Studies

You’ve got your product launched and you’ve produced case studies with early customers as part of your launch. But those case studies are likely more of the “why did we choose this product” variety rather than hard-core ROI.

Now that your product is out in the market and being used by customers, make sure to step up your case study game. As long as I’ve been in marketing few things are more welcomed by sales people from marketing than a good case study. And the best kind shows real-world ROI.

So set a calendar reminder after the launch is done to produce new data-driven case studies. And make sure your sales team can quickly access them as part of the sales process.

5. Always-Learning Materials

Sales people are most effective at selling products that they’re comfortable with. If your training and sales enablement materials aren’t caught by sales people they’ll become progressively less comfortable with messaging your new product. That means fewer meetings with prospects about the product — and less sales.

Sales people are most effective at selling products that they’re comfortable with.

Help sales out by pushing relevant training materials and supporting content to the team. When a new prospect emerges that has characteristics that match your product’s sweet spot (say, right persona and organization type) you should push relevant content to them. That way there’s no need to know what to search for — you’re giving them relevant materials to use.

Effective Product Launch = Sales Enablement

A great product launch is for nothing if there’s no selling. Look to get a great sales enablement program off the ground so your new product launch gets the revenue you’ve planned for.

The post 5 Keys to a Successful Product Launch Most Marketers Forget appeared first on KnowledgeTree.

Categories: ECM

Can You Identify Your Company’s Content Marketing Gaps?

KnowledgTree - Wed, 09/10/2014 - 16:53

When MarketingProfs and the Content Marketing Institute released its “B2B Content Marketing: 2014 Budgets, Benchmarks, and Trends” report, the survey revealed an incredible – if not totally unsurprising – statistic: Currently, more than 93 percent of B2B companies are using content marketing. A recent eMarketer report published similar data, but also found that nearly two-thirds of those marketers publish at least one piece of content per week.

The problem? According to the MarketingProfs and CMI report, 46 percent of marketers are creating that content without any real strategy. In other words, they’re creating content at random – focusing on a handful of topics, subjects, or pain points, and with no true understanding of how that content maps to the key steps in the buyer journey.

That’s a big issue. As Content4Demand Content Director Matthew McKenzie recently pointed out in a post for Demand Gen Report, that approach typically leads to businesses creating a lot of product-focused content that does little to encourage a dialogue with buyers. After all, if you’re only creating top-of-funnel content for one type of buyer persona, the likelihood is that you’re missing an enormous opportunity to engage a much wider audience with more relevant, stage and pain point-specific content.

Formulating a Content Strategy by Determining Content Gaps

Content marketing strategy isn’t about writing blogs, creating ebooks, and publishing the occasional white paper with the hope that customers will find it useful and, thus, organically engage your brand.

Yes, that is the byproduct of content marketing. But true content strategy is about purposefully creating and distributing resources and thought leadership that blankets every stage of the buyer journey and leads prospects toward some sort of predefined goal.

In order to do that, you have to understand where your – and your buyers’ – knowledge gaps exist. What aren’t you publishing content that could help buyers better understand their situation and make more educated decisions? What pain points aren’t your buyers aware of? Are you too focused on one subject, topic, or segment? Is your content addressing each step of the buyer journey? Is your competitors’ content addressing issues that your content isn’t?

Content Marketing is Hard – But You Can Make it More Effective

The simple truth is that feeding the content beast is a full-time job. To do it right, marketers need to invest time into creating buyer personas and conducting a gap analysis, and executing a content marketing strategy designed around both of those things.

The key point to remember, however, is that creating content will only get you so far. For that content to be effective, it must be supported and supplemented by a well-designed, well-thought-out content strategy that enables your sales team to deliver highly relevant resources to the right buyers at the right stage of their journey.

If your content program isn’t doing that, then it’s likely that your content marketing efforts will devolve into a game of blindfolded darts. And in that game, no one wins.

The post Can You Identify Your Company’s Content Marketing Gaps? appeared first on KnowledgeTree.

Categories: ECM

Three Keys to the Start-up Revolution

Liferay - Wed, 09/10/2014 - 12:36
You've got a good idea. In fact, it's brilliant. The market is currently lacking XYZ, and you've got just the right product or service that is going to be the first or best to address it.    So, you and a bunch of your hired-hand friends who are equally brilliant start this thing from scratch in your basement. After several months of coding, calls to strangers and branding meetings, you win your first customer. Finally, there is a customer who is forward-thinking enough to see the glory of our offering, you think to yourself.    Now, you have the attention of venture capitalists and you're garnering a little buzz inside some circles. This could be the next big thing. You're reaching for the stars.

But then comes a decisive time in every start-up where it's make it or break it. How do you take your company to that next level?   As an avid consumer and observer of industry trends, with four years of experience working for a company that grew exponentially from its start-up days, I've caught onto a few patterns of successful companies. Here, I want to share three essential points that will help you to make the jump over to the mainstream.    1) Define your value proposition and keep it simple   Your product could be the best in the market. Or it could be the first in the market. Perhaps your product does not offer as many features or tools as the top competitor, but you're selling the fact that it's much more affordable. Whatever your company's vision or mission, this needs to be clear and well-defined or chances are you won't go far. This principle applies to both internal and external communications. Make sure everyone within the organization is on the same page so that hiring decisions, product development and budgets are all aligned with the expressed purpose. For the consumers, develop a simple yet catchy motto so that it's easy to pick up quickly and remember within a crowded marketplace.    2) Ensure a good-quality product that can roll out to the public   When you initially create a product or service, you have the freedom and ability to customize it according to the vision of your first customers, catering to their every whim and fancy. However, once you set your sights on the mass market, you have to standardize your product offering. The challenge is to shift your focus from the demands of visionaries to the expectations of pragmatists (early majority) who will become the main revenue stream for your company. This is a delicate balance as you work with your internal developers and product team to separate the core features from the non-essential. Nevertheless, this step is fundamental in crossing over to the mainstream.   3) Capture the interest of one specific vertical or segment   There is a temptation to be everything to everyone. This is a surefire way to fail or, at best, remain middle of the pack. In order to make a name for yourself, you have to rally a group of loyal and supportive fans within a certain segment or base. Once you establish a stronghold, you can use it as the hub from which to branch out and reach other shores. For example, say you are creating portal software to solve issues such as accessibility and employee engagement within the HR sector. The product takes off and after a few years, you have gained a strong share of the HR market. The recognition you would have amassed for your work with HR (or any particular group) will now give you the credibility to expand into another sector or product offering. In essence, you are leveraging the merit from previous work to help establish ground in new territory.   It should go without saying that mastering these steps do not necessarily guarantee your start-up will be the next tech titan. But these principles should help push you closer to the next level of growth and success. In any case, remember the marketplace is crowded and cutthroat—if you are wise, diligent and resourceful, you just might rise above. Martin Yan 2014-09-10T17:36:45Z
Categories: CMS, ECM

Managing case files and My Cousin Vinny – both will bring you to tears for different reasons.

Alfresco - Wed, 09/10/2014 - 03:00

“I’d sure like to get a look at those files…” Vinny Gambini

Every lawyer knows two things – every line of the movie My Cousin Vinny and that managing files for case work gets more difficult every day. In the movie, Vinny Gambini works his magic to get access to the case files for his nephew – access that he legally has right to. The files come to him in a well-organized file box in nice folders. Today, sharing and accessing those files isn’t so easy – with the varied file types, issues in sharing content and legacy case management systems.

In May, The American Bar Association had a webinar discussing the Top 10 Technology Trends Shaping the Legal Industry.  A few of their findings would help Vinny manage his case – but given that the movie came out in the 1990′s, much of this technology wasn’t even on the horizon (as a reminder, Google was founded in 1998).  A few findings include:

  • Security is Lacking – 25% of firms have no security policy at all!  With the rise of bring  your own device (BYOD) and the opening of cloud based systems, security policy is more important than ever.  Encryption, device management, and access control are all topics that should be addressed.
  • Cloud is growing fast – from the 2012 survey, 4% of law firms were using cloud storage and collaboration tools.  One year later, 58% were using.  The need for secure cloud solutions is a big need.
  • Electronic Filing.  Federal courts have had electronic case filing for years – it is a growing area for other jurisdictions.  40% require electronic filing with more states requiring it.  Sharing and transferring digital case files is much more efficient.

Highlighting all of these, the Minnesota Public Defenders is transitioning to an All-Online client file system to better manage the handling of client files and integrate them into their case management system. Key to their strategy is updating their case management system and integrating it into a centralized content hub that can manage all of the files associated with cases. With this system, they will realize a better way to input, access and share content.

Learn more about Micro Strategies Legal solutions here.  Learn more about case management with Alfresco here or take a test drive here.

 

Categories: ECM

5 on 5 things to do in Boston

Liferay - Mon, 09/08/2014 - 16:59
Welcome to Boston

Liferay is excited to be in Boston this October for the Liferay Symposium North America. This year’s Back Bay venue captures the historic beauty of Bean Town as well as reflecting its modern cityscape. 

Boston à l'heure bleue by Manu_H is licensed under CC BY 2.0. © 2010, E. Huybrechts.  

Even though you’re in town for business, there’s plenty of time for taking in the sights and sounds of Boston. Best of all, you don’t even need a car. If you’re staying at the Sheraton Boston (special Symposium rate until September 22), here’s a handy guide of things to do within walking distance and beyond.

 

 Copley Place Shopping Mall: 0.1 mile

 Prudential Tower Skywalk: 0.1 mile

 Boston Duck Tours: 0.3 mile

 Boston Pops: 0.3 mile

 Frog Pond: 0.3 mile

 Boston Public Library: 0.6 mile

 House of Blues: 0.7 mile

 Downtown Crossing: 1.0 mile

 Fenway Park: 1.0 mile

 Public Gardens/Swan Boats: 1.0 mile

  Isabella Stewart Gardner Museum: 1.1 miles

  Theatre District: 1.2 miles

  Harvard University: 2.0 miles

 Quincy Market/Faneuil Hall: 3.0 miles

Wicked Fun in the City

Top 10 lists about things to do in Boston are plentiful enough. The historic city is packed with sights, attractions, architecture, nature, entertainment, and nightlife. Where do you go and what do you skip when you have just a day or night to see the city? Here's our take on five things (more or less) to do and see.

1. Wicked Cheap

Boston Common (1 mile): Beyond history, Boston is filled with a beautiful landscape. Enjoy a brisk walk in the Public Garden and watch the Swan Boats nearby. And just outside the Sheraton is the breathtaking Charles River Esplanade. If you’re up at night, star gaze for free at the Coit Observatory (1.3 miles). 

2. Wicked Eats

Zagat’s Best Bites: Whatever you’re in the mood for, Boston won’t disappoint when it comes to local dining (0.6 mile). In addition to the tasty treats we'll be having at our Sunday Boston Bites and Beer Welcome Reception, you can also enjoy happy hourflour powercocktailspubs, and some food truck grub to get your fill. Of course, you can’t forget the chowda. For outdoor fare, check out the SoWa Farmers Market (1.5 miles) on Sundays.

  3. Wicked Fine (Arts)

Museum of Fine Arts (0.9 mile): With over 450,000 pieces of art, the MFA houses one of the best collections in the world. If you’re a Bank of America cardholder, get in for free during the first weekend of every month. Closer to Symposium, you’re just a stone’s throw away from art galleries (0.2 miles) on Newbury Street.

4. Wicked Historic

Freedom Trail (3.0 miles): The 2.5 mile walking path leads to 16 historical city attractions:  museums and meeting houses, churches, and burying grounds. The best part of the self-guided tour is that you can decide when and where to stop.

5. Wicked Weird

Offbeat Boston:  If you’re looking for something off the beaten path, Boston has its share of odd things to do not found anywhere else. While not quite odd, the Mapparium (0.2 mile) is sure to garner a few “awes” with its three-dimensional perspective of the world. If you’re getting weirded out by all of this, you may prefer just to learn about the odd ways of Boston.

  Before You Get There

If there’s one thing that you’re not leaving home without, it’s your smartphone. Be sure to download the Liferay Events app to stay up to date at the symposium. And even for Boston, there’s an app for that. Check out the cool apps to know while in town. 

And speaking of Boston, don’t totally give yourself away as a tourist - take a few notes about Boston English!

We look forward to seeing you in Boston!

Angela Wu 2014-09-08T21:59:13Z
Categories: CMS, ECM

4 reasons you might want to checkout tomorrow's dev.life session

Liferay - Mon, 09/08/2014 - 15:35

Tomorrow 4pm CEST I'm going to participate in the dev.life event series, and I give you 4 fine reasons to attend, or check out the recording later.

  1. You can learn how can you develop staging and export/import support for your plugin
  2. You can see how extremely easy it is to develop that
  3. You will see how can the staging UI be customized, how can it be more simple
  4. You can get answers to your questions on our IRC channel

So in case when watching Olaf creating a plugin your only question was: "But how do I enable staging for that?!" wait no more, and fear not join us tomorrow for a staging dev.life session.

Máté Thurzó 2014-09-08T20:35:12Z
Categories: CMS, ECM

Lip Service or Core Strategy: Is Your Business Really Committed to Sales Enablement?

KnowledgTree - Fri, 09/05/2014 - 07:49

Despite many B2B companies beginning to buy into the modern belief that every team in an organization plays a role in revenue generation, many non-sales functions continue to scoff at the idea. To them, sales enablement is a buzzword – a trendy initiative being forced down their throats by management that, in time, will ultimately prove to be a passing fad.

Unfortunately, those folks are in for a rude awakening.

Sales enablement isn’t going away. In fact, if you pay attention to how some of the best B2B businesses are leveraging sales enablement to deliver more relevant and powerful information to prospects at exactly the right time, the likelihood is that this concept is likelier to evolve into a core business strategy.

After all, generating revenue is the primary objective of any for-profit business, regardless of the sector, segment, or industry that business operates in. For a company to function and grow, it needs revenue. And if marketers, customer service reps, product developers, and engineers want to keep their jobs, they should be focused on doing whatever they can to ensure that revenue grows year-over-year.

Of course, that’s not to suggest that sales enablement should be the only focus for non-sales teams. Marketing should still be focusing on building brand awareness, product developers must continue to build features and function that customers love, and customer service reps need to always ensure every customer is happy and successful. But the reality is that those activities are mostly meaningless if they aren’t helping the company generate sales.

Sales Enablement: A Cohesive Strategy to Improve Every Aspect of a Business

For marketers (and some sales teams), it’s time to shake any sort of preconceived notions you have about sales enablement.

At the end of the day, it’s really about creating a cohesive strategy that ensures every message, product feature, customer solution, or piece of content you create is focused around the goal of improving productivity, creating happier/more informed customers, and driving higher revenue. Who can’t get on board with that?

Think about it this way. As a marketer, you’re tasked with things like brand awareness, prospect engagement, and demand generation. And while those activities might seem more important than your responsibility to also create (and deliver) highly relevant, stage-specific content for the sales team, the reality is that each of those activities are interrelated and share a common goal.

Through sales enablement, marketers can bridge the gap between creation and application, and implement processes that ensure the content and messaging they spend so much time on is actionably and appropriately used. A robust sales enablement function can also foster stronger sales-marketing alignment, deeper insight into customer pain points and needs, and more efficient processes around data collection, measurement, and implementation.

Ultimately, that level of intelligence makes it far easier for marketers to do the “other” jobs on their plate – including brand building, demand gen, and prospect nurturing – and it improves the likelihood that prospects will receive the right content at the right time for the right reasons (also known as marketing’s Holy Grail).

How is Your Business Approaching Sales Enablement?

Studies have shown that modern B2B customers spend as much as 70 percent of their journey alone – conducting research, soliciting in-network advice, and consuming content before they ever reach out to a sales rep.

As a result, marketers and salespeople have to make the most of the time they have with those customers. And that means not wasting a prospect’s time by delivering irrelevant, untargeted content, or delivering the wrong collateral to the wrong contact at the wrong stage of the buyer’s journey.

If you equip your team with the right tools to create, organize, and deploy sales and marketing collateral, you’ll give them an immediate leg-up on competitors who have yet to fully embrace sales enablement. At the end of the day, that seemingly small advantage can mean a significant boost to the bottom line.

The post Lip Service or Core Strategy: Is Your Business Really Committed to Sales Enablement? appeared first on KnowledgeTree.

Categories: ECM

Liferay as SP and OpenAM as IDP

Liferay - Fri, 09/05/2014 - 01:20

In this blog we will configure OpenAM as Identity provider and Liferay as Service Provider using SAML 2.0.

Follow below steps :

 

 

  • Click on "Create default Configuration".

 

  • Provide password as shown in above diagram and click on create configuration.
  • After successfull completion page redirects to http://localhost:8081/OpenAM-11.0.0/UI/Login.
  • Provide username as amadmin and password as liferaypassword.
  • Now Open Liferay (I am using 6.2 which is running on port 8080).
  • Deploy SAML plugin.
  • Add below properties in portal-ext.properties :

saml.enabled=true

saml.role=sp  saml.entity.id=test saml.metadata.paths=http://localhost:8081/OpenAM-11.0.0/saml2/jsp/exportmetadata.jsp   # # Keystore # saml.keystore.type=jks  saml.keystore.path=/OpenAM-11.0.0/OpenAM-11.0.0/keystore.jks  saml.keystore.password=changeit  saml.keystore.credential.password[test]=changeit    # # Service Provider # saml.sp.default.idp.entity.id=http://localhost:8081/OpenAM-11.0.0 saml.sp.sign.authn.request=true  saml.sp.assertion.signature.required=false  saml.sp.clock.skew=3000    saml.sp.user.attribute.mappings=screenName=uid\nemailAddress=mail\nfirstName=givenname\nlastName=sn  
  • Restart Liferay server.
  • To configure OpenAM as IDP go to http://localhost:8081/OpenAM-11.0.0/task/Home
  • On the Common Tasks page, click on Create Hosted Identity Provider.

 

  • Now click on Register Remote Service Provider.

 

 

  • After registering Remote Service Provider, click on Federation tab , your screen should look like:

 

 

  • Now click on test link available under Entity Providers table and make sure following settings are checked, If not then mark it checked

 

  • Now go to Liferay Server and create a user with below details :

 

  • Now update the same user details in OpenAM, Go to Access Control tab.

  • Click the / (Top Level Realm) realm.

  • Select the Subjects tab.

  • Click on demo user.

  • Update first name as "demo" and emailaddress as "demo@liferay.com" and Save it.

 

  • Now Open a new browser clear all cache and hit http://localhost:8080/.

  • Click on SignIn link from Top right corner.

  • It will redirect you to OpenAM login page.

  • Fill username as demo and password as changeit.

  • It will be authenticated and redirected to Liferay successfully.

 

Thank You!!!

 

Mohit Soni 2014-09-05T06:20:10Z
Categories: CMS, ECM

Feature: Deliver the Right Marketing Content to the Right Team

KnowledgTree - Tue, 09/02/2014 - 13:30

Marketing and sales enablement pros are experts at segmenting content to speak to different audiences in their target markets. But what’s often overlooked is that the segmentation of audiences should also apply to internal teams. Let me give you a real-world sales enablement example.

Sales Enablement Requires Internal Segmentation

Your product marketing team has just produced a technical white paper that explores very detailed implementation steps for one of your products. Who should you be recommending that marketing content to in your sales organization?

Sales development reps and even account executives who are looking for marketing content related to that product may come across it and decide to share it with prospects. Not ideal. But for sales engineers, who may be more familiar with the technical nuance of the product and the information in the guide, it may be perfect.

If you don’t target content to roles in your organization, there’s a danger of a ‘content avalanche’. Long lists of marketing content overwhelm users and the pieces that should be used often get overlooked.

New Feature: Organize Content by Team

KnowledgeTree now makes it easy to solve that challenge. Our Teams feature lets you segment content based on groups in your organization. You can group together Salesforce profiles into teams of users — say Account Executives, Sales Engineers, and Account Managers.

Select which teams you want to group together so content can be assigned to each group.

Then marketing content can be matched based on these team profiles. So, call scripts, objection handling, and other sales enablement material gets matched to account executives. Technical papers and documentation gets matched to sales engineers. And upsell promotional materials and case studies get matched to account managers.

Grouping content is easy, and you can even quickly see which content is associated with different teams. Now you’ve got the right content — into the right team’s hands — at the right time.

Want more information? Check out this KnowledgeTree knowledge base article. And contact us to see a demonstration of it in action.

The post Feature: Deliver the Right Marketing Content to the Right Team appeared first on KnowledgeTree.

Categories: ECM

Vaadin 7.3 for Liferay released

Liferay - Tue, 09/02/2014 - 08:46

As you might know Liferay comes bundled with Vaadin. Now that Vaadin 7.3 is out as of today, it is perfect time to update your Vaadin portlet. Vaadin 7.3 is the largest release since Vaadin 7 in February 2013. Its largest enhancement is a parameter driven look and feel, powered by Sass and CSS3. With just a few parameters you can completely change the look and feel from iOS6 round to Windows8 flat or anything at all. 

In Valo one parameter, such as the background colour, not only changes the background, but also derived colours in drop shadows and text colors so that as high usability as possible is achieved. Finally you don't need to be a skilled UI designer to design applications that always look beautiful. And, even with its default values, Valo fits alsmot perfectly into the default Liferay 6.2 theme and thanks to stronger selectors it has less conflicts than the old “Reindeer” theme. Thus, I like to say that Vaadin 7.3 is built for Liferay.

To keep working with Sass based themes as easy as possible, we even built our own Java-based Sass compiler that we have open sourced. It compiles the new theme about twice as fast as the original Ruby based compiler.

Try out Vaadin 7.3 today by updating your version to 7.3.0 in pom.xml of your self-contained Vaadin project or by updating your shared vaadin libraries to 7.3.0.

Check out the release post and the Valo page itself.

  Matti Tahvonen 2014-09-02T13:46:21Z
Categories: CMS, ECM

Liferay 7 Milestone 1 - Only for the really adventurous

Liferay - Fri, 08/29/2014 - 16:44

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

 

So… is Liferay 7 close to being released?

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

 

What’s the goal of milestone releases?

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

 

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

 

What’s the quality of Milestone 1 like?

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

 

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

 

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

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

  • WCM:

  • Collaboration & Social:

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

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

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

  • UI Infrastructure

    • Update to Bootstrap 3. Frontend devs rejoice!!

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

  • Platform Infrastructure

    • Replacement of Lucene with ElasticSearch as the default search engine

    • Support for testing plugins and OSGi modules using Arquillian

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

    • Exposing many new extension points like Portlet Filters

    • Ability to develop complete portlet as OSGi modules

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

    • Ability to use Service Builder in OSGi modules

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

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

    • Support for JSPs in OSGi modules

    • Several smaller portlets extracted from the core

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

 

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

 

Where can I download it?

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

 

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

 

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

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

  Update (Sept 1st), added link to the GitHub tag to the "Where can I download it" section and credits for Esther on the structure will all new tickets in the milestone. Jorge Ferrer 2014-08-29T21:44:37Z
Categories: CMS, ECM

YUI, Liferay, and the future

Liferay - Fri, 08/29/2014 - 16:34

As many of you may have read, Yahoo is immediately stopping development on the YUI library.

This decision, while it will have a significant impact, is not news to us. Given our close relationship with the YUI team, we knew this was coming, and have been discussing for a couple of months different plans of action.

In the spirit of transparency, I do want to say that we don't yet have an official direction decided, but we are looking at all of our options, as well as discussing with our partners, and other companies/organizations with a vested interest in keeping YUI alive.

I'd like to address two things in this blog post: what this means for existing EE customers, and what options are we looking towards.

 

What does this mean for existing EE customers?

Nothing will change for our existing customers. We have long had a fork of YUI that we apply our patches and changes to, and we will continue to deliver bug fixes and needed changes for as long as that version of EE is supported.

 

What options are we looking towards?

I'd like to list off a few options that we're discussing, partially to reinforce that we are seriously thinking about it, but also to solicit feedback and ideas regarding your needs or concerns.

Of course, the most obvious possibility is to take over stewardship of YUI, whether that is us on our own, or with any number of the other large companies that leverage YUI heavily.

Another possibility is to of course migrate off of YUI, and while still keeping AlloyUI as the wrapping library, but move to some other library internally, and still keep the functionality as close as possible.

One more idea we've discussed is to possibly take our fork of YUI, and branch off a next generation version, like a YUI4, that cleans out the legacy code, streamlining and simplifying the library.

Ultimately, we want to take the path that best serves our community and clients, and helps deliver amazing experiences as quickly and easily as possible.

As we get more info, and have more info to provide, we'll make sure to keep you in the loop on the path we're going to go with.

If you have ideas, thoughts, concerns or questions, don't hesitate to let us know.

Nate Cavanaugh 2014-08-29T21:34:29Z
Categories: CMS, ECM

How Understanding Buyer Personas Closes the Sales and Marketing Gap

KnowledgTree - Fri, 08/29/2014 - 09:44

David Meerman Scott published a thought-provoking post on MarketingProfs this week. He looks into the ever-present sales and marketing gap and how to overcome it.

The gap between marketing and sales has long been a major problem. One that can dangerously disrupt go-to-market teams. What I enjoyed is David’s suggestion for reducing the gap. It’s to focus marketing teams not on product-expertise, but on making marketers experts on their buyers.

Understanding Buyer Personas Helps Shape Marketing Content

Marketers aim to generate awareness and interest among potential buyers, and move these contacts through the buying process. By understanding the needs, pains, and challenges of buyers better, marketers can more effectively craft programs and messaging to bring them on board.

David looks at the role of the buyer persona through the lens of content. He sees content as being an essential part of the sales process. That means not only in the top of the funnel for generating interest, but also in the bottom of the funnel when sales people are messaging in a personalized way.

When marketers apply learnings about the buyer persona to their content, they make marketing tools that more effectively convince buyers. David includes tips on how to make this a reality, and I’d like to propose two additional ways to operationalize the use of personas in marketing content as well.

1. Sales Enablement with Content Needs Discovery

A common friction point between sales and marketing is that sales people often feel that marketing’s content doesn’t speak to their buyers. To David’s point above, it needs to connect with a persona. But in many cases, Marketing already has produced content that matches a particular persona. But if sales can’t find it, they’ll use generalized or self-produced content.

Look to push-models that get relevant content that matches buyer personas surfaced into sales hands. So, if a sales person updates an opportunity to show that the primary buyer is a CIO, marketing’s content machine should push CIO-centric content to the sales person. Don’t wait for the sales person to search for relevant content, push it to them.

2. Measure Content Performance with Personas

Marketing has become ever-more driven by measurement. And David rightly suggests that Marketing teams test the effectiveness of their content by getting feedback on it directly from prospects. That’s a great approach.

Another data-driven path is to measure the impact of content on sales. Look into which content is used in different sales situations and what the results were. If one case study consistently is viewed and shared by one persona and not another, what can you learn? If a particular eBook leads to closed lost deals for one persona and wins for another, how should you redo or promote your account.

Measure and report on the success of your content in the sales process, just as marketers do at the top of the funnel.

When marketers focus on the buyer persona, they’re able to arm sales teams with exceptionally effective content that advances sales. That translates into more wins, and better collaboration between teams.

 

The post How Understanding Buyer Personas Closes the Sales and Marketing Gap appeared first on KnowledgeTree.

Categories: ECM

Sales Enablement with Content — What Our Customers Say

KnowledgTree - Tue, 08/26/2014 - 15:33

We love our customers. And we love what KnowledgeTree does for our customers too. It helps sales teams sell more effectively. How? By getting the right marketing and sales enablement content into sales people’s hands.

It’s fast to set-up, delivers value in minutes, gives marketing visibility into content ROI, and has sales teams raving about its value. But don’t take our word for it, here are some great quotes from our customers.

“KnowledgeTree makes it simple for both Marketing to distribute content to Sales, and for Sales to find the content they need at the exact moment they need it.”

Liz Shulof, Sr. Director of Marketing Communications, Bomgar

 

“KnowledgeTree helps us identify and use content with the highest ROI, and that’s generated millions in additional revenue for Software AG.”

Michael Durham, Director Pre-Sales Engineering, Software AG

 

“KnowledgeTree is exceptional in helping us manage and distribute our content.”

Dimitri Onistsuk, Director of Marketing, Shipwire

“[KnowledgeTree's] tracking metrics allow Sales Reps to identify which assets work best for them, and allow our Content team to understand what makes a piece of content successful. Simple to install; simple to configure; very powerful for Sales.”

Tucker Heiner, Manager, CRM Systems, RingCentral

“KnowledgeTree is straight-forward to use and allows me to use existing fields in Salesforce as the basis for the taxonomy to drive rules, which in turn expose the right content at the right time to the right sales rep.”

Brian Groth, Sales Enablement Manager, Xactly

 

 

The post Sales Enablement with Content — What Our Customers Say appeared first on KnowledgeTree.

Categories: ECM

Vaadin + Liferay: a recognized combination

Liferay - Tue, 08/26/2014 - 02:51

We were very happy to have received the Liferay Marketplace award for the best Free Opensource portlet for 2014 . This was a huge thing for us not only because Vaadin.com itself uses the Tori forum portlet as its main discussion board, but also because Tori has shown us how awesome a combination Vaadin and Liferay really are together!

With the help of Vaadin you're able to build real Business Applications (with a capital A) and Liferay gives a solid ground for Vaadin applications to lean on.

A while ago we had a joint webinar about Vaadin & Liferay together, but received lots of questions on a more detailed Vaadin introduction to those of you not familiar with Vaadin from before.

Good news: We're hosting an Introduction to Vaadin Webinar already next week that will make you familiar with Vaadin in 30 minutes. Join Vaadin founder Joonas Lehtinen for an introduction and with answers to your questions on Thursday September 4th  @ 10AM PT (1PM ET). Sign up now at https://docs.google.com/a/vaadin.com/forms/d/1A_sTdnB_xp-S3F4Y6i4EpHeORTuNJ-kiPUcBA4QE0lo/viewform and learn to make your own Tori or larger business apps with Liferay and Vaadin!

Matti Tahvonen 2014-08-26T07:51:37Z
Categories: CMS, ECM

Ridiculously Simple Plugins on dev.life

Liferay - Tue, 08/26/2014 - 01:15
pre { white-space: pre; }

This article accompanies the dev.life session "Ridiculously simple plugins" hosted today (26. Aug, 16:00 CEST, 14:00 UTC) by me. The session is broadcasted on youtube and recording will be available (and linked here) after the session.


The purpose of this session is to demonstrate that - given the proper architecture - you can extend Portal Applications within minutes. Well - the story is: Your developer estimates an hour (to do it properly), which means that you might want to round up to the next unit, e.g. 1 day - and this includes documentation, deployment, administration etc.

It's most likely harder to get your system administrator to update the production system yet again than to implement new functionality - given a proper architecture.

Quick start if you want to follow along:

Everything you need is available on www.olafkock.de/liferay/rsp/ and if you don't want to read through everything when we start, pick the instructions with the yellow markers below:

Customers project

During the session we're going to create 3 simple plugins. Two of them are extending a business layer that is generated with XMLPortletFactory. If you'd like, you can download & execute xmlportletfactory yourself with the customer&invoice definition file, but you can also use the shortcut and download this portlet project, unzip it in the portlets directory of your plugins sdk (yes, I'm using Ant, sorry Maveners) and open it in your development environment. For the session I'll use Liferay Developer Studio, but you're free to use whatever you'd like.

What does this project do? It's just what xmlportletfactory generates from the customer.xml script. Actually, I've cheated. It also contains a custom portlet as well that will provide some random data for you. However, it doesn't compile: Consider it to be just the xmlportletfactory output. To make it usable, you'll need to run Liferay's ServiceBuilder.

We'll explore the resulting code during this dev.life session. In short: Add all portlets from the new "Customer" section to a page, create a few customers and invoices and click the icon left of a customer to see the invoices updated.

If you examine the default xmlportletfactory-generated UI, it's not too obvious, which customer is currently selected. You can see it when the icon in a customer's row changes from a square to an arrow. Let's make the current customer more visible by hooking into the already established mechanism of Inter Portlet Communication. The first portlet we create is a CustomerDetailPortlet, showing the name and location of a customer. If we had more business data, we'd probably show more data in the details. (Solution to be linked after the session)

For the next portlet, assume you're using this system, with thousands of customers in the database. Whenever somebody calls, you'll have to search for them again. But when they're calling, they typically call multiple times, delivering more details for their issues. That's why we want to keep track of the latest 5 callers and we'll create a MostRecentlyUsedCustomerPortlet (MRU): This will make it easy to just click on their name, rather than searching for the record again. (Solution to be linked after the session)

What does this teach us? In a portlet environment you can easily compose your application from many different building blocks. If you introduce yet another portlet that interacts with the existing ones, it doesn't need to be big to add value. And it doesn't need to be high-risk to update the site: If your new portlet has a bug - just remove it again. The others will still continue to work, unaffected.

Here's the screenshot of what can be achieved within minutes: (Customer and Invoices Portlets are what xmlportletfactory generated)

Customizing Core Portlets vs. Adding ridiculously Simple Portlets

Time permitting, we'll have one more plugin that demonstrates how to simplify Liferay's UI through a ridiculously simple portlet. If you add WebContent, you'll find that the UI for adding a single article has quite a complex UI. You can translate, tag, expire, categorize your content, provide abstracts etc.

What if your authors are untrained, infrequent users of Liferay? Do you want to train them on the generic UI? They'll probably be annoyed because it's so complex and they don't need all of the features. So why not simplify the UI?

In the forums, this typically comes along as "How do I change the WebContent Editor (or other plugins) to use my defaults?". I'd like to suggest a different approach: Create your own, ridiculously simple plugin. It doesn't mess with Liferay's portlets, is easy to maintain and quick to write. And if the API that you use changes in the next version, you can easily identify the spot to upgrade. In fact, that's exactly what I did - I stole some code from James' 7cogs article and made it work on Liferay 6.2 because the API changed slightly.

So, we're creating a SimplifiedArticlePortlet, which takes an article's title, as well as english and german text through a really simple UI. Point your inexperienced authors to this portlet to add their new articles and you'll be able to take them from there (and you can edit them with the full-featured WebContent editor). Here's a screenshot of the result:

If you follow along (e.g. develop the portlets) during the session, this one is a bit harder to follow - after all it involves an API call with 39 parameters. That's why I've prepared the portlet for you to copy/paste portions as you like: http://www.olafkock.de/liferay/rsp/SimplifiedArticlePortlet.java and http://www.olafkock.de/liferay/rsp/SimplifiedArticlePortlet-view.jsp

What's more?

Given your own applications: Consider to make the best out of the portal environment and compose your big application from many small building blocks. The reward is an easy maintenance of each single component and easy extension of the whole system.

Liferay's API is easy to use (even given occasional 39-parameter methods) and sometimes it's a great option to just hardcode your own logic to a ridiculously simple plugin than to extend and tweak one of Liferay's very generic out-of-the-box portlets. There's a place for generic features, just as there's a place for specialized, narror, behaviour. Choose what makes sense to you and don't fear to write throwaway code: If it's well compartmented (e.g. in a single plugin) there's nothing bad in it.

Update

During the broadcast I didn't finish the MRUCustomerPortlet - here's what needs to be done. The code changes are marked in the solution download that will come up soon - portlet.xml is just updated as required, not marked:

  • Decorate the <li> content on view.jsp with a hyperlink that executes an action
  • Create an action handler in the portlet class, triggering the customerId event
  • Declare that our MRUCustomer portlet does also publish this event in portlet.xml
  • Declare that xmlportletfactory's CustomerPortlet now also processes this event in portlet.xml
  • Implement the eventhandler in CustomerPortlet to highlight the selected row.

And you're done. The full "solution" is now uploaded to customer-portlet-solution.zip.

Note that I do not consider the solution code (or the code presented in the presentation) "good style": When I refer to a "ridiculously simple" plugin, I am stating 1 hour of effort. With the plugins presented here, I took slightly more than 1 hour for 3 plugins. Naturally this means I'll need a few shortcuts that shouldn't actually go into production code. But you get the point.

Olaf Kock 2014-08-26T06:15:54Z
Categories: CMS, ECM
Syndicate content