extending jboss epp and site publisher your way
DESCRIPTION
JBoss World 2012 Boston, 27/06/2012TRANSCRIPT
Extending JBoss EPP and
Site Publisher your way
Rafael LiuTechnical Account Manager, Red Hat06.27.12
Agenda● 5 minutes intro
● JBoss EPP● Customizing EPP
● Kernel● Portal Containers
● Demo● JBoss SP
● Customizing SP● Customization features
● Demo
A comprehensive portal solution● JBoss Enterprise Portal Platform
● Reusable drag & drop portlets● Authn/authz and user management● Use standards● Pluggable
● JBoss Site Publisher● Content Management System● All through GUI: no code, no file editing, no deploy● Content publishing, versioning, collaboration, etc.
Customizing EPP
● Services / components● Provide some functionality
● e.g.: JCR access, user management
● Configurable● Reusable● Built on top of a kernel
● Changing or creating Portal Containers
Kernel
● IoC container (PicoContainer)● Declare services● Plugin configurations● classpath:/conf/configuration.xml
● NOTE: restricted support
Kernel – Declaring new sevices<component> <key>org.exoplatform.container.definition.PortalContainerConfig</key> <type>o.e.c.d.PortalContainerConfigImpl</type> <init-params> <value-param> <name>default.portal.container</name> <value>portal</value> </value-param> <value-param> <name>default.rest.context</name> <value>rest</value> </value-param> <value-param> <name>default.realm.name</name> <value>gatein-domain</value> </value-param>... </init-params></component>
Kernel – Plugin configuration<external-component-plugins> <target-component>o.e.c.d.PortalContainerConfig</target-component> <component-plugin> <name>Change PortalContainer Definitions</name> <set-method>registerChangePlugin</set-method> <type>o.e.c.d.PortalContainerDefinitionChangePlugin</type> <init-params> <values-param> <name>apply.specific</name> <value>portal</value> </values-param> ... </init-params> </component-plugin></external-component-plugins>
Kernel – Using servicespublic class SimpleResourceBundleService extends BaseResourceBundleService{
public SimpleResourceBundleService( InitParams params, CacheService cService, LocaleConfigService localeService) throws Exception { log_ = ExoLogger.getLogger("org.exoplatform.services.resources"); localeService_ = localeService; cache_ = cService.getCacheInstance(ResourceBundleData.class); initParams(params); }...}
Kernel – Some EPP services● TemplateService
● SkinService
● RepositoryService
● UploadService
● LocaleConfigService
● ResourceBundleService
● GadgetRegistryService
● CatalogService
● UserPortalConfigService
● NavigationService
● ApplicationRegistryService
● PicketLinkIDMCacheService
● PicketLinkIDMService
● ApplicationStatisticService
● AccountService
● GateInService
● ...
What are Portal Containers?
● Servlet Context● http://localhost:8080/<portalcontainer>/<site>
● Rest context● http://localhost:8080/<restcontainer>
● Realm / Security Domain
What are Portal Containers really?
● EAR packages● Configuration (extension)● Libraries (services)● Web Content (files)
● Create Portal Containers● Resource overriding
● Extend Portal Containers● Different IoC container, isolated set of services
Demo EPP
Customizing SP
● A big extension!● A set o new Portlets & Services ● Reuses EPP's base services● A different Portal Container: /ecmdemo
● Configure services, import portlets and create pages
● All EPP customizations are here
● Customization features● Extension points
Customization features
● Administration● Nodetypes
● Inheritance, aggregation, mixins, properties
● Templates● Groovy● View & Edit
● Actions● Groovy● org.exoplatform.services.cms.scripts.CmsScript
Demo SP
Conclusion
● You can extend EPP & SP through Portal Extensions● ... or create whole new Portal Containers● Access core features using built-in services● Besides, SP lets you:
● Create new types of contents● Create or change how content is presented● Script actions to handle content lifecycle events
● Sources: github.com/rafaelliu
Stay connected through Red Hat Customer Portal
Site Publisher User Guide
How to install EPP and SitePublisher using a single Postgres database
access.redhat.com
Docs
Tech Brief