Share

Liferay 7 Features

Some of the features highlighting here as of my sight.

  1. Inheritance of categories, vocabularies, application display templates and structures and templates from a parent site.
    Before 7.0 If we want to share structure or template between different sites than we need to put these in global scope.So it will be available to use in other sites also. 
    After 7.0 You will be able to use all the structures, templates, categories, application display templates... etc from any of your parent sites that allows for it (this can be disabled in Site Settings).

  2. Definition of category vocabularies specific to specific Web Content Types or Document Types.
    For example, you can restrict the folder "Sport" to only allow Web Content of type Sport or if you want you can inherit the restrictions of the parent folder:
    Also we can give different workflow for each folder.In this example we are restricting the content that can be added inside this folder to "Sports" and "Basic Web Content", also we are defining a "Single Approver" workflow for "Sports" and no workflow for "Basic Web Content".
  3. Support for Application Display Templates (ADT) to the Login, Language and the Breadcrumb portlets.
  4. Web Content Diffs for comparing web content versions, changes when approving them or receiving an email of the latest changes.
  5. Ability to configure mail notification templates in multiple languages.
    A new liferay-ui:email-notification-setting taglib has been created that should help everyone localize their emails easily by using:
  6. Ability to edit the basic web content structure like any other structure
  7. A cool new quick keyboard navigation to any place in a page.
  8. Update to Bootstrap 3.
  9. SPA Enabler:Build on top of SeenaJs(Liferay Native Library) and AlloyUI Surface
  10. Ability to develop complete portlet as OSGi modules
  11. Ability to use Service Builder in OSGi modules
  12. Ability to expose any Java Service in an OSGi module as a JSON Web Service (even without using Service Builder!)
  13. Support for testing plugins and OSGi modules using Arquillian
  14. Support for JSPs in OSGi modules
  15. Ability to Geolocate Web Content and documents. Also a new template for Asset Publisher to show them in a map.
  16. Improved portal intelligence to predict what user is looking for.They wrote one plugin for CKEditor.You can see in the below image
    The following are considering as of my knowledge
    Autocomplete of users based on screenName
    Autocomplete of friendly urls to site pages
    Autocomplete of related (by site or author) blog entries
    Autocomplete of assets in the document library

Courtesy going to Liferay7 devs and their Blogs

Liferay 7 API changes

The following are some of the things i found out in Liferay7 instance when i installed in my local instance and while using. Here are some of the types of changes
  • Functionality that is removed or replaced
  • API incompatibilities: Changes to public Java or JavaScript APIs
  • Changes to context variables available to templates
  • Changes in CSS classes available to Liferay themes and portlets
  • Configuration changes: Changes in configuration files, like portal.properties, system.properties, etc.
  • Execution requirements: Java version, J2EE Version, browser versions, etc.
  • Deprecations or end of support: For example, warning that a certain feature or API will be dropped in an upcoming version.
  • Recommendations: For example, recommending using a newly introduced API that replaces an old API, in spite of the old API being kept in Liferay Portal for backwards compatibility.


  1. Removed the liferay-ui:journal-article Tag
    Old Code:
    
    
    New Code:
    
    

  2. Removed render Method from AssetRenderer API and WorkflowHandler API
    This affects any Java code calling the method render on an AssetRenderer or WorkflowHandler class, or Java classes overriding the render method of these classes.
  3. Removed Vaadin 6 from Liferay Core.Upgrade to Vaddin 7
  4. Removed Support for runtime-portlet Tag in Body of Web Content Articles
  5. Removed the liferay-ui:control-panel-site-selector Tag instaed of that use liferay-ui:my-sites tag
  6. Changed Exception Thrown by Documents and Media Services When Duplicate Files are Found
    DuplicateFileException changed to DuplicateFileEntryException
    The DuplicateFileException exception was used in two different contexts:
    When creating a new file through D&M and a row in the database already existed for a file entry with the same title.
    When the stores tried to save a file and the underlying storage unit (a file in the case of FileSystemStore) already existed.
  7. The liferay-ui:logo-selector Tag have parameters changes
    Old way :
    
        
        
        
        
    
    
    
    
    New way :
    
    

    Observations:
    Removal of parameter editLogoURL.
    Including (if neccessary) new parameters currentLogoURL, hasUpdateLogoPermission, maxFileSize, and/or tempImageFileName.

  8. Removed get and format Methods which are using PortletConfig as Parameter
    Old way :
    LanguageUtil.get(portletConfig, locale, key);
    
    New way :
    LanguageUtil.get(portletConfig.getResourceBundle(locale), key);
    

  9. Changed the AssetRenderer and Indexer APIs to Include the PortletRequest and PortletResponse Parameters
    The getSummary() method of AssetRenderer and doGetSummary() method of indexer API must include these two parameters as part of method parameters.
    AssetRenderer
    Old way :
    protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletURL portletURL)
    
    New way :
    protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest, PortletResponse portletResponse)
    
    Indexer API
    Old way :
    public String getSummary(Locale locale)
    
    New way:
    public String getSummary(PortletRequest portletRequest, PortletResponse portletResponse)
    

  10. The aui:input Tag for Type checkbox No Longer Creates a Hidden Input
    Whenever the aui:input tag is used to generate an input of type checkbox, only an input tag will be generated, instead of the checkbox and hidden field it was generating before.

  11. Changes in Exceptions Thrown by User Services
    Converted into inner classes
    DuplicateUserScreenNameException → UserScreenNameException.MustNotBeDuplicate
    DuplicateUserEmailAddressException → UserEmailAddressException.MustNotBeDuplicate
    ReservedUserScreenNameException → UserScreenNameException.MustNotBeReserved
    ReservedUserEmailAddressException → UserEmailAddressException.MustNotUseCompanyMx, UserEmailAddressException.MustNotBePOP3User, and UserEmailAddressException.MustNotBeReserved
    ReservedUserIdException → UserIdException.MustNotBeReserved
    ContactFirstNameException, ContactFullNameException, and ContactLastNameException → ContactNameException.MustHaveFirstName, ContactNameException.MustHaveFullName and ContactNameException.MustHaveFullName

  12. Removed Trash Logic from DLAppHelperLocalService Methods
    The deleteFileEntry() and deleteFolder() methods in DLAppHelperLocalService deleted the corresponding trash entry in the database. This logic has been removed from these methods.
    Note : The deleteFileEntry() and deleteFolder() methods in TrashCapability not only remove the trash entry, but also remove the folder or file entry itself, and any associated data, such as assets, previews, etc.

  13. Removed Sync Logic from DLAppHelperLocalService Methods
    The moveFileEntry() and moveFolder() methods in DLAppHelperLocalService methods have been removed.These are methods related to Sync events(Liferay Sync).

  14. Removed the .aui name space from bootstrap and upgrading bootstrap to 3.0
    AS we know the pepole who worked in Liferay6.2 they are aware of this thing, this .aui namespace is conflicting with other third party libraries like it exists in Alloy UI also.Which leads to breaking of other functionalities.
  15. Added New Methods in the ScreenNameValidator Interface
    getDescription(Locale): returns a description of what the screen name validator validates.
    getJSValidation(): returns the JavaScript input validator on the client side.
  16. Added Required Parameter groupId for Adding Tags, Categories, and Vocabularies
    addTag in AssetTagService or AssetTagLocalService
    addCategory in AssetCategoryService or AssetCategoryLocalService
    addVocabulary in AssetVocabularyService or AssetVocabularyLocalService
    updateFolder in JournalFolderService or JournalFolderLocalService
  17. Removed the Tags that Start with portlet:icon-
    • portlet:icon-close
    • portlet:icon-configuration
    • portlet:icon-edit
    • portlet:icon-edit-defaults
    • portlet:icon-edit-guest
    • portlet:icon-export-import
    • portlet:icon-help
    • portlet:icon-maximize
    • portlet:icon-minimize
    • portlet:icon-portlet-css
    • portlet:icon-print
    • portlet:icon-refresh
    • portlet:icon-staging

  18. Removed Portal Properties Used to Display Sections in Form Navigators
    • company.settings.form.configuration
    • company.settings.form.identification
    • company.settings.form.miscellaneous
    • company.settings.form.social
    • layout.form.add
    • layout.form.update
    • layout.set.form.update
    • organizations.form.add.identification
    • organizations.form.add.main
    • organizations.form.add.miscellaneous
    • organizations.form.update.identification
    • organizations.form.update.main
    • organizations.form.update.miscellaneous
    • sites.form.add.advanced
    • sites.form.add.main
    • sites.form.add.miscellaneous
    • sites.form.add.seo
    • sites.form.update.advanced
    • sites.form.update.main
    • sites.form.update.miscellaneous
    • sites.form.update.seo
    • users.form.add.identification
    • users.form.add.main
    • users.form.add.miscellaneous
    • users.form.my.account.identification
    • users.form.my.account.main
    • users.form.my.account.miscellaneous
    • users.form.update.identification
    • users.form.update.main
    • users.form.update.miscellaneous

  19. Removed Methods getGroupLocalRepositoryImpl and getLocalRepositoryImpl from RepositoryLocalService and RepositoryService
    Old Call :
    RepositoryLocalServiceUtil.getRepositoryImpl(0, fileEntryId, 0)
    New Call :
    RepositoryProviderUtil.getLocalRepositoryByFileEntryId(fileEntryId)

  20. Renamed ActionCommand Classes Used in the MVCPortlet Framework
    Old Classes
    BaseActionCommand
    BaseTransactionalActionCommand
    ActionCommand
    ActionCommandCache
    New Classes
    BaseMVCActionCommand
    BaseMVCTransactionalActionCommand
    MVCActionCommand
    MVCActionCommandCache
As of now i found these only.Soon i will try to do a post on Liferay 7 Features. Enjoy!!!