售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Liferay Portal Systems Development
Table of Contents
Liferay Portal Systems Development
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Liferay Enterprise Portal
Liferay functionalities
Document and media library—CMS
Web content management—WCM
Personalization and internalization
Workflow, staging, scheduling, and publishing
Social network and social office
Monitoring, auditing, and reporting
Tagging
Integration
Framework and architecture
Service Oriented Architecture
Enterprise Service Bus
Standards
Terminologies
Multi-tenancy
Role-based access control
Resource, role, and permission
User
Group
Systems development
Ext plugin
Hook plugin
Portlet, layout template, and web plugins
Theme plugin
Development strategies
Level I development
Level II development
Level III development
An example: Knowledge base management
More useful information
Summary
2. Service-Builder and Development Environment
Plugins SDK development environment
Required tools
JDK
Ant
Maven
Databases
MySQL
Application servers
Tomcat
IDE
Eclipse IDE
Workspace
Subclipse
Portal and plugins structure
Portal source code
Portal source code structure
Plugins SDK source code
Plugins SDK structure
Portal runtime structure
Ant target clean
Ant target start
Ant target deploy
What is happening?
Plugins runtime structure
Ant target clean
Ant target deploy
Portal service and implementation
Interface and implementation
JAR-based fix patch
Service-Builder
Ant target build-service
Database structure definition
Author, namespace, and exceptions
Entity
Attribute list declarations
Column
Finder
Reference
Order and tx-required
Reserved names
Reserved alias names
Reserved table names
Reserved column names
Reserved JSON types
Mappings
Data types
Models and services
SQL scripts, properties, and JSON JavaScript
Spring and Hibernate
Element convert-null
Service-Builder improvement
More services
Ant target build-db
Ant target build-lang
Ant target build-wsdd
Ant target build-client
Default data population
Release information
Data population
Database case-sensitive queries
Verifying processes
Default project creation and templates
Plugins default project creation—Ant targets
Plugins default project templates
Fast development
What is happening?
Summary
3. Generic MVC Portlets
Plugin portlet project
Naming conventions and filter mappings
Portlet project default template
Knowledge base portlet project
Basic MVC portlet
Project structure
Portlet definition
Liferay portlet registration
Liferay portlet display
Liferay plugin package
View specification
Portlet XSD and DTD
Portlet app XSD
Liferay portlet app DTD
Liferay display DTD
The Liferay plugin package DTD
What's happening?
MVC portlet bridge
MVC portlet extension
Portlet JSP/JavaScript/CSS loading
AJAX and render weight
Header JavaScript/CSS and footer JavaScript/CSS
Predefined objects
Direct JSP servlet
What's happening?
Advanced MVC portlet
Portlet bridge extension
Bringing portlets into the Control Panel
Portlet configuration and preferences
Portlet configuration
Portlet preferences
Portlet keys, title, and description
Message
Redirect
Render URL
Action URL
Interacting with the database
Rebuilding services
What's happening?
Model hints
Other databases in plugins
What's happening?
Dynamic query API
Queries in plugins
Dynamic query factory
Dynamic query operations
SQL joins
Joining tables inside a plugin
Joining tables from different plugins
Joining tables from plugins and portal core
Custom query
What's happening?
Security and permissions
Adding resources
What's happening?
Registering permission
Permission algorithm
Permission actions registration
Assigning permissions
Checking permission
What's happening?
Summary
4. Ext Plugin and Hooks
Ext plugin
Ext plugin project default template
Creating an Ext plugin project
Advanced customization
Advanced configuration
Advanced portal core API overwriting
Advanced portal web overwriting
Upgrading a legacy Ext environment
What's happening?
Deploy processes
What's happening?
Deployer
Sandbox deploy
Sandbox deploy listener
Auto deploy
Auto deploy listener
Auto deployer
Hot deploy
Hot deploy listener
Class loader proxy
Generating the class loader proxy
Sharing plugin services
Hooks
Hook plugin project default template
Liferay hook DTD
Portal properties hooks
Event handlers
Model listeners
What's happening?
Language properties hooks
Multiple languages
What's happening?
Custom JSP hooks
Custom JSP files and path mapping
What's happening?
Indexer post processor hooks
What's happening?
Service wrappers hooks
What's happening?
Servlet filter and servlet filter mappings hooks
What's happening?
Struts actions hooks
What's happening?
Summary
5. Enterprise Content Management
Image management
Models and services
Models
Base model
Services
Usage
Image processor
Image sprite processor
Permissions
Resource action mapping
Video management
Adding default document types
Video and audio processors
Antivirus scanner
Document management
Models and services
Models
Services
Attachments
Document versioning
Converting document
Comparing versions
Previewing a live document
Document check-in and check-out
Moving document
Document indexing
WebDAV
WebDAV storage
WebDAV models and services
Multiple repositories
Repository interface
Document hooks
Converting repositories
CMIS consumer and producer
SharePoint integration
Documentum integration
Alfresco integration
Records management
Records in Document Library
Record model
Records validation and classification
Records indexing
OCR engines
Building relationship
Model
Services
Portal-instance level relationship
Content authoring
Content archiving
Summary
6. DDL and WCM
Web content management
Models and services
Models
Services
Comparator services
Journal content services
Journal tokens
Retrieving structures, templates, and articles
Structure
Types
Value format
Template
Language types
Variables and values
Custom CSS
Custom JavaScript
Localization
Localized column
Value format
Localization interface
Indexer
XML security
Sanitizer
Antisamy
ClassName-classPK pattern
WYSIWYG editor
CKEditor integration
CKEditor structure
CKEditor diffs
CKEditor plugins
Custom plugins
Expando—custom attribute
Models and services
Models
Services
Taglib
Data types
Indexer
NoSQL adapter
Dynamic data lists and dynamic data mapping
Models and services
Models
Services
Storage adapter
Asset, tagging, and categorization
Models and services
Models
Services
View count
Tag
Services
Tags cloud
Category
Services
Categories cloud
Category tree
Asset query
Related content
Range query
Asset publishing
Asset renderer framework
Summary
7. Collaborative and Social API
Collaboration
Wiki
Wiki models
Wiki services
Wiki engines
Blogs
Shared calendar
Announcements
Message Boards
Models
Services
Bookmarks
Polls
Asset management
Software Catalog
Private messaging
Microblogs
Shopping cart
Advanced calendar
Tasks management
Online chat and mail
Chat
Asset management system
Human resource management
Marketplace
Assets collaboration
Asset ratings
UI taglib liferay-ui:ratings
Asset comments
Model
Service
UI taglib liferay-ui:discussion
Asset flags
UI taglib liferay-ui:flags
Assets subscription
E-mail notification
RSS feeds
Attached model
Social identity repository
Social networking
Models
Services
Social coding
Social office
Models
Services
Hooks
Contacts
Social activity
Models
Services
UI taglib liferay-ui:social-activities
Adding social activity tracking
Requests and activities
Social bookmarks
Social equity
Models
Services
Adding social equity services on custom assets
Social activity statistics and top users
OpenSocial
Gadget models
Gadget services
Shindig services extension
Gadget portlets
Summary
8. Staging, Scheduling, Publishing, and Cache Clustering
The pattern: Portal-Group-Page-Content
Portal
Base models
Model listener
Portal instance
Group
Services
System groups
User
Layout set
Layout
Layout template
Portlet
LAR export and import
Portlet data handler
Interface
Portlet data context
Portlet data context listener
Services
Portal core assets
Portlet exporter and importer
Setup archive
Configuration action
Portlet preferences and portlet item
Local staging and publishing
Activating staging
Local staging interface
Local staging services
Remote staging and publishing
Activating remote live
Remote staging services
Tunnel-web services
Copying remote layouts
HTTP services
Securing users' information
Scheduling and messaging
Scheduler
Interfaces
Services
Clustering scheduler
Messaging
Scheduling layouts publishing
Scheduling portal core assets and custom assets
Cache clustering
Portal cache interfaces
Ehcache
Replicated cache
Replicated caching with JGroups
Clustered caching via Terracotta
Memcached
Cache clustering
Clustering models and interfaces
Clustering settings
Summary
9. Indexing, Search, and Workflow
Webs plugins
Web plugin project
Web deployer and listener
Web applications integrator
What's happening?
Indexing and search
Overview
Indexer
Interface
Indexing core assets
Registering custom asset indexers in plugins
Lucene
Solr
Search engine
Interfaces
Search context
Faceted search
Query parser syntax
Look-ahead typing—auto complete
Models and services
AutoComplete
OpenSearch
Interface and services
Configuration
What's happening?
Applying OpenSearch on plugin portlets
Workflow
Kaleo-web models
Kaleo-web services
Custom SQL
Hooks
Web
Spring beans and messaging
Portal workflow services
Global models
Global services
Workflow permissions
Workflow definition
Workflow definition XSD
Kaleo workflow definition
Sample workflow
BPMN 2
Workflow designers
BPMN2 Visual Editor for Eclipse
jBPM and Drools
Activiti
Applying workflow to assets
Portal core assets
Plugin custom assets
Summary
10. Mobile Devices and Portlet Bridges
Layout template plugins
Layout template
Layout template DTD
Sample layout template
Layout template services
Theme plugins
Theme default template
Default themes
Building themes
look-and-feel DTD
What's happening after deploying themes?
Theme services
Theme factories
Template engines
Template engine services
Template services
Template variables
Alloy UI
Structure—HTML 5
Style—CSS 3
Behavior—YUI 3
Mobile device detectors
WURFL
WAP theme
WAP layout template
jQuery and UI
jQuery mobile
Building a WAP theme
Sample WAP page and page transitions
Portlet bridges
An overview of built-in portlet bridges
Alloy portlet
Base BSF portlet
Scripting portlet
Ruby portlet
Python portlet
Groovy portlet
JavaScript portlet
PHP portlet
MVC portlet
WAI portlet
Vaadin widgets
Sample portlets
OpenLaszlo
JSON
YUI
Ext JS
Dojo Toolkit
DWR—Direct web remoting
jWebSocket
Apache Wicket
Struts 2 portlet
Struts 2 portlet-bridge
Sample Struts 2 portlet
JSF 2 portlet
Portlet faces bridge
JBoss portlet bridge
MyFaces portlet bridge
PortletFaces
Sample ICEfaces 2 portlet
Sample MyFaces 2 portlet
Sample RichFaces 4 portlet
Spring 3 MVC portlet
Spring MVC portlet bridge
Sample Spring 3 MVC portlet
Summary
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜