SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Michael Emmerich, Alkacon Software 
Workshop track Updating to OpenCms 9.5 
03.11.2014
●Update your current OpenCms installation to OpenCms 9.5 
●Update OpenCms with OCEE 
●API changes 
●Content Collectors 
●SOLR Postprocessor 
●Showcase: Enhancing your Application with OpenCms 9.5 features 
2 
Agenda
Update your current OpenCms installation to OpenCms 9.5 
3
Good news: Your existing OpenCms 8 or OpenCms 9 webapp will run in OpenCms 9.5 – without any changes  
(At least – in most cases….) 
4 
Update to OpenCms 9.5
How to upgrade: 
Use the OpenCms update wizard! 
5 
Update to OpenCms 9.5
Update OpenCms with OCEE 
6
●Updating OCEE within a major OpenCms version 
●Example: OpenCms 9.0.0 (OCEE 4.0.0) to OpenCms 9.0.1 (OCEE 4.0.1) 
-Very Easy 
●Simply install the new OCEE modules before updating the OpenCms core 
7 
Updating OpenCms with OCEE
●Updating OpenCms from one major version to another in a cluster 
●Requires more planning to reduce downtimes 
●Manual work on config files needed 
8 
Updating OpenCms with OCEE
9 
Updating OpenCms with OCEE 
Master 
MDB 
SDB 
Slave 1 
Slave 2 
●A typical OpenCms/OCEE update scenario 
●One master, two slaves, with DB replication 
●How to update OpenCms and OCEE? 
●Reduce downtime for delivery servers 
OCEE-Cluster 
OCEE-Cluster
10 
Updating OpenCms with OCEE 
Master 
MDB 
SDB 
Slave 1 
Slave 2 
Step 1 
●Content Freeze! 
●Disable Cluster & Replication 
Content delivery from Slave 1 and Slave 2
11 
Updating OpenCms with OCEE 
Master (9.5) 
MDB 
Step 2 
●Clone Slave DB 
●Connect each Slave to its own Database 
Content delivery from Slave 1 and Slave 2 
SDB 2 
Slave 1 
Slave 2 
SDB
12 
Updating OpenCms with OCEE 
Master (9.5) 
MDB 
Step 3 
●Direct all traffic to Slave 2 
●Shutdown Slave 1 
●Uninstall OCEE on master server 
●Run Update Wizard on Master Server 
●Test Master Server 
Content delivery Slave 2 
Master Server is updated to OpenCms 9.5 
SDB 2 
Slave 1 
Slave 2 
SDB
13 
Updating OpenCms with OCEE 
Master (9.5) 
MDB 
SDB 2 
Slave 1 
Slave 2 
Step 4 
●Install new OCEE on master 
Content delivery from Slave 2 
Master Server is updated to OpenCms 9.5 
SDB
14 
Updating OpenCms with OCEE 
Master (9.5) 
MDB 
SDB 2 
Slave 1 (9.5) 
Slave 2 
Step 5 
●Replace all .jar Files on Slave 1 
●Adjust configuration files on Slave 1 (if required) 
●Enable OCEE Cluster for Master and Slave 1 
●Replicate system folder (alternatively: replicate all) 
●Rebuild Searchindexes on Slave 1 
●Test combination Master and Slave 1 
Content delivery from Slave 2 
Master Server and Slave 1 are updated to OpenCms 9.5 
SDB
15 
Updating OpenCms with OCEE 
Master (9.5) 
MDB 
Slave 1 (9.5) 
Slave 2 (9.5) 
Step 6 
●Direct all traffic to Slave 1 
●Copy Webapplication from Slave 1 to Slave 2 
●Adjust configuration files on Slave 2 
●Enable OCEE Cluster for all Server 
●Reconnect Slave 2 to Slave DB 
●Rebuild Searchindexes on Slave 2 
●Test combination Master and Slave 2 
●Cancel content freeze 
Content delivery from Slave 1 
All servers are updated to OpenCms 9.5 
SDB
16 
Updating OpenCms with OCEE 
Master (9.5) 
MDB 
Slave 1 (9.5) 
Slave 2 (9.5) 
Step 7 
●Direct all traffic to both delivery servers 
DONE ! 
SDB
API Changes 
17
●Containerpages are now locale independend (like other configuration files) 
●Important when using localization & siblings of containerpages (which you should not have done !) 
18 
API changes
●A few plugable Interfaces have changed in OpenCms 9.5 
●But: Don’t panik! 
●Code-Changes are minimal and can be done in short time 
19 
API changes
●Content Collectors collect content items (e.g. News) to display them in a list view 
●New method added to Interface I_CmsResourceCollector 
●Why changes? Enhancements in the ADE Publish function 
20 
API changes – Content Collectors
●How to change my own collectors? 
●Add additional getResult Method: 
21 
API changes - Content Collectors 
List<CmsResource> 
getResults(CmsObject cms, 
String collectorName, 
String params, 
int numResults) 
throws CmsException;
●New function in Content Collectors since OpenCms 9.0 
●The problem so far: Collectors do not show expired or unreleased content items for editing 
●The solution: add the “excludeTimerange” as last value to the parameter string 
22 
API changes – Content Collectors 
param="${newspath}news_%(number).html|news|150|excludeTimerange"
23 
API changes – Content Collectors
●The Solr PostProcessor allows to manipulate Solr results 
●New method added to Interface I_CmsSolrPostSearchProcessor 
●Why changes? To allow new options in post-proccessing 
24 
API changes – Solr PostProcessor
25 
API changes – Solr PostProcessor 
SOLR Handler 
SOLR 
Post Processor (Access Check) 
Custom Post Processor 
Query 
Result 
Query 
Result
●How to change my own post processors? 
●Add additional init() method: 
●The method is called for each new Solr query 
26 
API changes – Solr PostProcessor 
void init();
●Example use-case: Do only display one sibling in search result 
27 
API changes – Solr PostProcessor 
private Set<CmsUUID> m_processedResources; 
public void init() { 
m_processedResources.clear(); 
} 
public SolrDocument process(CmsObject searchCms, CmsResource resource, SolrInputDocument document) { 
CmsUUID resourceId = resource.getResourceId(); 
if (!m_processedResources.contains(resourceId)) { 
m_processedResources.add(resourceId); 
return ClientUtils.toSolrDocument(document); 
} 
return null; 
} 
}
Extending your application with OpenCms 9.5 features 
28
●Element views and new roles 
●Content editors only see editpoints which they are allowed to see 
●PDF-Generation on the fly 
●Simple way to produce PDF files from News or other contents 
29 
Add OpenCms 9.5 features
Element views: 
●Assign Content Types to Element views 
●Assign Users to Element views 
Users can only use the Content Types supported by the selected view 
Different users have different edit points 
30 
Element views and roles
New OpenCms 9.5 roles: 
●So far: Editors had to be “Workplace User” 
●Now: Finer subdivision 
●Element author 
●Editor 
●Category Editor 
●Gallery Editor 
●Workplace user 
31 
Element views and roles
Sample use-case 
●2 Views: 
●Content View: Edit Articles and branding content 
●News View: Edit News 
●3 Editors with different views and roles 
●Jeb (Editor): Content View, News View 
●Bill (Element author): Content View 
●Bob (Element author): News View 
32 
Element views and roles
What to do? 
●Create the Views 
●/elementviews/ folder in Module 
●Set permission to views 
●Workplace permission dialog 
●Assign contents to views 
●Module configuration 
●Sitemap configuration 
33 
Element views and roles
●Live Demo 
34 
Element views and roles 
Demo 
Demo 
Demo 
Demo 
デモ
●Create PDF-Files from XmlContents 
●Write a special PDF template 
●Use HTML/CSS for formating the PDF layout 
●We need: 
●Configuration 
●PDF Template 
●Create the correct link to the PDF 
35 
PDF generation on the fly
Step 1: Configuration 
●ResourceInitHandler must be configured in opencms-system.xml 
36 
PDF generation on the fly 
[…] 
<resourceinit> 
<resourceinithandler class="org.opencms.pdftools.CmsPdfResourceHandler"/> 
[…] 
</resourceinit> 
[…]
Step 2: “PDF-Template 
●A complete HTML template, styled by CSS 
●Use <cms:contentload> and <cms:contentaccess> to access content 
●Like a Formatter or old-style detail JSP 
37 
PDF generation on the fly
Step 2: “PDF-Template 
38 
PDF generation on the fly 
<html> 
<cms:contentload collector="singleFile" param="%(opencms.uri)" > 
<cms:contentaccess var="content" /> 
<head> 
[...] 
<link rel="stylesheet" href="..." type="text/css" /> 
[...] 
</head> 
<body> 
[...] 
${content.value.myvalue} 
[...] 
</body> 
</cms:contentload> 
</html>
Step 3: Integration 
●Add a link by using the <cms:pdf> tag 
●format: Path to the PDF Template 
●content: Filename of the content (e.g. ${content.filename} 
●locale: Locale to be displayed 
39 
PDF generation on the fly 
<a href="<cms:pdf format='...' content='...' locale='...'/>" >PDF</a>
●Live Demo 
40 
PDF generation on the fly 
Demo 
Demo 
Demo 
Demo 
デモ
●Any Questions? 
41 
Any Questions? 
Fragen? 
Questions ? 
Questiones? 
¿Preguntas? 
質問
Michael Emmerich 
Alkacon Software GmbH 
http://www.alkacon.com 
http://www.opencms.org 
Thank you very much for your attention! 
42

Weitere ähnliche Inhalte

Was ist angesagt?

OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository Alkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntAlkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloadedOpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloadedAlkacon Software GmbH & Co. KG
 
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveAlkacon Software GmbH & Co. KG
 
OpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersOpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersAlkacon Software GmbH & Co. KG
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and moreAcquia
 
Front-end build tools - Webpack
Front-end build tools - WebpackFront-end build tools - Webpack
Front-end build tools - WebpackRazvan Rosu
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpackNodeXperts
 
Extending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayExtending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayrafaelliu
 
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo MarketplaceNuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo MarketplaceNuxeo
 
Cache in Chromium: Disk Cache
Cache in Chromium: Disk CacheCache in Chromium: Disk Cache
Cache in Chromium: Disk CacheChang W. Doh
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developermpaproductions
 
Nuxeo and JavaScript
Nuxeo and JavaScriptNuxeo and JavaScript
Nuxeo and JavaScriptNuxeo
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?nuppla
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 

Was ist angesagt? (20)

OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository
 
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
 
OpenCms Days 2016: Multilingual websites with OpenCms
OpenCms Days 2016:   Multilingual websites with OpenCmsOpenCms Days 2016:   Multilingual websites with OpenCms
OpenCms Days 2016: Multilingual websites with OpenCms
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
 
OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?
 
OpenCms Days 2013 - Bootstrap your templates
OpenCms Days 2013 - Bootstrap your templatesOpenCms Days 2013 - Bootstrap your templates
OpenCms Days 2013 - Bootstrap your templates
 
OpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloadedOpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloaded
 
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
 
OpenCms Days 2014 - Nested containers in action
OpenCms Days 2014 - Nested containers in actionOpenCms Days 2014 - Nested containers in action
OpenCms Days 2014 - Nested containers in action
 
OpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersOpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containers
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
 
Front-end build tools - Webpack
Front-end build tools - WebpackFront-end build tools - Webpack
Front-end build tools - Webpack
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpack
 
Extending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayExtending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your way
 
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo MarketplaceNuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
 
Cache in Chromium: Disk Cache
Cache in Chromium: Disk CacheCache in Chromium: Disk Cache
Cache in Chromium: Disk Cache
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developer
 
Nuxeo and JavaScript
Nuxeo and JavaScriptNuxeo and JavaScript
Nuxeo and JavaScript
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 

Ähnlich wie OpenCms Days 2014 - Updating to OpenCms 9.5

OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5
OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5
OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5Alkacon Software GmbH & Co. KG
 
MongoDB Server Provisioning - From 2 Months to 2 Minutes
MongoDB Server Provisioning - From 2 Months to 2 MinutesMongoDB Server Provisioning - From 2 Months to 2 Minutes
MongoDB Server Provisioning - From 2 Months to 2 MinutesMongoDB
 
February'16 SDG - Spring'16 new features
February'16 SDG - Spring'16 new featuresFebruary'16 SDG - Spring'16 new features
February'16 SDG - Spring'16 new featuresJosep Vall-llovera
 
Eko10 Workshop Opensource Database Auditing
Eko10  Workshop Opensource Database AuditingEko10  Workshop Opensource Database Auditing
Eko10 Workshop Opensource Database AuditingJuan Berner
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingStanislav Osipov
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
 
Eko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORINGEko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORINGPablo Garbossa
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018Antonios Giannopoulos
 
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)Issac Buenrostro
 
Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud Owain Perry
 
Upgrading to MongoDB 4.0 from older versions
Upgrading to MongoDB 4.0 from older versionsUpgrading to MongoDB 4.0 from older versions
Upgrading to MongoDB 4.0 from older versionsAntonios Giannopoulos
 
6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production 6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production Hung Lin
 
Ui5 con@Banglore - UI5 App with Offline Storage using PouchDB
Ui5 con@Banglore - UI5 App with Offline Storage using PouchDBUi5 con@Banglore - UI5 App with Offline Storage using PouchDB
Ui5 con@Banglore - UI5 App with Offline Storage using PouchDBGAURAV SHROFF
 
Python Automation With Gauge + Selenium + API + Jenkins
Python Automation With Gauge + Selenium + API + JenkinsPython Automation With Gauge + Selenium + API + Jenkins
Python Automation With Gauge + Selenium + API + JenkinsFagun Priyadarshi
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyJérémy Wimsingues
 
Testing Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockTesting Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockScyllaDB
 

Ähnlich wie OpenCms Days 2014 - Updating to OpenCms 9.5 (20)

OpenCms Days 2015 OpenCms X marks the spot
OpenCms Days 2015 OpenCms X marks the spotOpenCms Days 2015 OpenCms X marks the spot
OpenCms Days 2015 OpenCms X marks the spot
 
OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5
OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5
OpenCms Days 2012 - Conference Opening Keynote: Introducing OpenCms 8.5
 
MongoDB Server Provisioning - From 2 Months to 2 Minutes
MongoDB Server Provisioning - From 2 Months to 2 MinutesMongoDB Server Provisioning - From 2 Months to 2 Minutes
MongoDB Server Provisioning - From 2 Months to 2 Minutes
 
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
 
February'16 SDG - Spring'16 new features
February'16 SDG - Spring'16 new featuresFebruary'16 SDG - Spring'16 new features
February'16 SDG - Spring'16 new features
 
Eko10 Workshop Opensource Database Auditing
Eko10  Workshop Opensource Database AuditingEko10  Workshop Opensource Database Auditing
Eko10 Workshop Opensource Database Auditing
 
Apache ManifoldCF
Apache ManifoldCFApache ManifoldCF
Apache ManifoldCF
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
 
Eko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORINGEko10 workshop - OPEN SOURCE DATABASE MONITORING
Eko10 workshop - OPEN SOURCE DATABASE MONITORING
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018
 
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
 
Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud
 
Upgrading to MongoDB 4.0 from older versions
Upgrading to MongoDB 4.0 from older versionsUpgrading to MongoDB 4.0 from older versions
Upgrading to MongoDB 4.0 from older versions
 
6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production 6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production
 
Ui5 con@Banglore - UI5 App with Offline Storage using PouchDB
Ui5 con@Banglore - UI5 App with Offline Storage using PouchDBUi5 con@Banglore - UI5 App with Offline Storage using PouchDB
Ui5 con@Banglore - UI5 App with Offline Storage using PouchDB
 
Python Automation With Gauge + Selenium + API + Jenkins
Python Automation With Gauge + Selenium + API + JenkinsPython Automation With Gauge + Selenium + API + Jenkins
Python Automation With Gauge + Selenium + API + Jenkins
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success story
 
Let's serve your data
Let's serve your dataLet's serve your data
Let's serve your data
 
Testing Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockTesting Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with Sherlock
 

Mehr von Alkacon Software GmbH & Co. KG

OpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCmsOpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCmsAlkacon Software GmbH & Co. KG
 
OpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceOpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceAlkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsOpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsAlkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TSOpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TSAlkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5Alkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentationOpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentationAlkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensionsOpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensionsAlkacon Software GmbH & Co. KG
 

Mehr von Alkacon Software GmbH & Co. KG (16)

OpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCmsOpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCms
 
OpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceOpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological service
 
OpenCms Days 2015 Next generation repository
OpenCms Days 2015  Next generation repositoryOpenCms Days 2015  Next generation repository
OpenCms Days 2015 Next generation repository
 
OpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explainedOpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explained
 
OpenCms Days 2015 Advanced Solr Searching
OpenCms Days 2015 Advanced Solr SearchingOpenCms Days 2015 Advanced Solr Searching
OpenCms Days 2015 Advanced Solr Searching
 
OpenCms Days 2015 OpenGovernment
OpenCms Days 2015 OpenGovernmentOpenCms Days 2015 OpenGovernment
OpenCms Days 2015 OpenGovernment
 
OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta
 
OpenCms Days 2015 Arkema, a leading chemicals company
OpenCms Days 2015 Arkema, a leading chemicals companyOpenCms Days 2015 Arkema, a leading chemicals company
OpenCms Days 2015 Arkema, a leading chemicals company
 
OpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsOpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portals
 
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TSOpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
 
OpenCms Days 2014 - OpenCms 9 - A video tube?
OpenCms Days 2014 - OpenCms 9 - A video tube?OpenCms Days 2014 - OpenCms 9 - A video tube?
OpenCms Days 2014 - OpenCms 9 - A video tube?
 
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
 
OpenCms Days 2014 - Using the SOLR collector
OpenCms Days 2014 - Using the SOLR collectorOpenCms Days 2014 - Using the SOLR collector
OpenCms Days 2014 - Using the SOLR collector
 
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentationOpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
 
OpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensionsOpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensions
 
Open cms days 2013 - all dressed up_release
Open cms days 2013 - all dressed up_releaseOpen cms days 2013 - all dressed up_release
Open cms days 2013 - all dressed up_release
 

Kürzlich hochgeladen

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 

Kürzlich hochgeladen (20)

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 

OpenCms Days 2014 - Updating to OpenCms 9.5

  • 1. Michael Emmerich, Alkacon Software Workshop track Updating to OpenCms 9.5 03.11.2014
  • 2. ●Update your current OpenCms installation to OpenCms 9.5 ●Update OpenCms with OCEE ●API changes ●Content Collectors ●SOLR Postprocessor ●Showcase: Enhancing your Application with OpenCms 9.5 features 2 Agenda
  • 3. Update your current OpenCms installation to OpenCms 9.5 3
  • 4. Good news: Your existing OpenCms 8 or OpenCms 9 webapp will run in OpenCms 9.5 – without any changes  (At least – in most cases….) 4 Update to OpenCms 9.5
  • 5. How to upgrade: Use the OpenCms update wizard! 5 Update to OpenCms 9.5
  • 7. ●Updating OCEE within a major OpenCms version ●Example: OpenCms 9.0.0 (OCEE 4.0.0) to OpenCms 9.0.1 (OCEE 4.0.1) -Very Easy ●Simply install the new OCEE modules before updating the OpenCms core 7 Updating OpenCms with OCEE
  • 8. ●Updating OpenCms from one major version to another in a cluster ●Requires more planning to reduce downtimes ●Manual work on config files needed 8 Updating OpenCms with OCEE
  • 9. 9 Updating OpenCms with OCEE Master MDB SDB Slave 1 Slave 2 ●A typical OpenCms/OCEE update scenario ●One master, two slaves, with DB replication ●How to update OpenCms and OCEE? ●Reduce downtime for delivery servers OCEE-Cluster OCEE-Cluster
  • 10. 10 Updating OpenCms with OCEE Master MDB SDB Slave 1 Slave 2 Step 1 ●Content Freeze! ●Disable Cluster & Replication Content delivery from Slave 1 and Slave 2
  • 11. 11 Updating OpenCms with OCEE Master (9.5) MDB Step 2 ●Clone Slave DB ●Connect each Slave to its own Database Content delivery from Slave 1 and Slave 2 SDB 2 Slave 1 Slave 2 SDB
  • 12. 12 Updating OpenCms with OCEE Master (9.5) MDB Step 3 ●Direct all traffic to Slave 2 ●Shutdown Slave 1 ●Uninstall OCEE on master server ●Run Update Wizard on Master Server ●Test Master Server Content delivery Slave 2 Master Server is updated to OpenCms 9.5 SDB 2 Slave 1 Slave 2 SDB
  • 13. 13 Updating OpenCms with OCEE Master (9.5) MDB SDB 2 Slave 1 Slave 2 Step 4 ●Install new OCEE on master Content delivery from Slave 2 Master Server is updated to OpenCms 9.5 SDB
  • 14. 14 Updating OpenCms with OCEE Master (9.5) MDB SDB 2 Slave 1 (9.5) Slave 2 Step 5 ●Replace all .jar Files on Slave 1 ●Adjust configuration files on Slave 1 (if required) ●Enable OCEE Cluster for Master and Slave 1 ●Replicate system folder (alternatively: replicate all) ●Rebuild Searchindexes on Slave 1 ●Test combination Master and Slave 1 Content delivery from Slave 2 Master Server and Slave 1 are updated to OpenCms 9.5 SDB
  • 15. 15 Updating OpenCms with OCEE Master (9.5) MDB Slave 1 (9.5) Slave 2 (9.5) Step 6 ●Direct all traffic to Slave 1 ●Copy Webapplication from Slave 1 to Slave 2 ●Adjust configuration files on Slave 2 ●Enable OCEE Cluster for all Server ●Reconnect Slave 2 to Slave DB ●Rebuild Searchindexes on Slave 2 ●Test combination Master and Slave 2 ●Cancel content freeze Content delivery from Slave 1 All servers are updated to OpenCms 9.5 SDB
  • 16. 16 Updating OpenCms with OCEE Master (9.5) MDB Slave 1 (9.5) Slave 2 (9.5) Step 7 ●Direct all traffic to both delivery servers DONE ! SDB
  • 18. ●Containerpages are now locale independend (like other configuration files) ●Important when using localization & siblings of containerpages (which you should not have done !) 18 API changes
  • 19. ●A few plugable Interfaces have changed in OpenCms 9.5 ●But: Don’t panik! ●Code-Changes are minimal and can be done in short time 19 API changes
  • 20. ●Content Collectors collect content items (e.g. News) to display them in a list view ●New method added to Interface I_CmsResourceCollector ●Why changes? Enhancements in the ADE Publish function 20 API changes – Content Collectors
  • 21. ●How to change my own collectors? ●Add additional getResult Method: 21 API changes - Content Collectors List<CmsResource> getResults(CmsObject cms, String collectorName, String params, int numResults) throws CmsException;
  • 22. ●New function in Content Collectors since OpenCms 9.0 ●The problem so far: Collectors do not show expired or unreleased content items for editing ●The solution: add the “excludeTimerange” as last value to the parameter string 22 API changes – Content Collectors param="${newspath}news_%(number).html|news|150|excludeTimerange"
  • 23. 23 API changes – Content Collectors
  • 24. ●The Solr PostProcessor allows to manipulate Solr results ●New method added to Interface I_CmsSolrPostSearchProcessor ●Why changes? To allow new options in post-proccessing 24 API changes – Solr PostProcessor
  • 25. 25 API changes – Solr PostProcessor SOLR Handler SOLR Post Processor (Access Check) Custom Post Processor Query Result Query Result
  • 26. ●How to change my own post processors? ●Add additional init() method: ●The method is called for each new Solr query 26 API changes – Solr PostProcessor void init();
  • 27. ●Example use-case: Do only display one sibling in search result 27 API changes – Solr PostProcessor private Set<CmsUUID> m_processedResources; public void init() { m_processedResources.clear(); } public SolrDocument process(CmsObject searchCms, CmsResource resource, SolrInputDocument document) { CmsUUID resourceId = resource.getResourceId(); if (!m_processedResources.contains(resourceId)) { m_processedResources.add(resourceId); return ClientUtils.toSolrDocument(document); } return null; } }
  • 28. Extending your application with OpenCms 9.5 features 28
  • 29. ●Element views and new roles ●Content editors only see editpoints which they are allowed to see ●PDF-Generation on the fly ●Simple way to produce PDF files from News or other contents 29 Add OpenCms 9.5 features
  • 30. Element views: ●Assign Content Types to Element views ●Assign Users to Element views Users can only use the Content Types supported by the selected view Different users have different edit points 30 Element views and roles
  • 31. New OpenCms 9.5 roles: ●So far: Editors had to be “Workplace User” ●Now: Finer subdivision ●Element author ●Editor ●Category Editor ●Gallery Editor ●Workplace user 31 Element views and roles
  • 32. Sample use-case ●2 Views: ●Content View: Edit Articles and branding content ●News View: Edit News ●3 Editors with different views and roles ●Jeb (Editor): Content View, News View ●Bill (Element author): Content View ●Bob (Element author): News View 32 Element views and roles
  • 33. What to do? ●Create the Views ●/elementviews/ folder in Module ●Set permission to views ●Workplace permission dialog ●Assign contents to views ●Module configuration ●Sitemap configuration 33 Element views and roles
  • 34. ●Live Demo 34 Element views and roles Demo Demo Demo Demo デモ
  • 35. ●Create PDF-Files from XmlContents ●Write a special PDF template ●Use HTML/CSS for formating the PDF layout ●We need: ●Configuration ●PDF Template ●Create the correct link to the PDF 35 PDF generation on the fly
  • 36. Step 1: Configuration ●ResourceInitHandler must be configured in opencms-system.xml 36 PDF generation on the fly […] <resourceinit> <resourceinithandler class="org.opencms.pdftools.CmsPdfResourceHandler"/> […] </resourceinit> […]
  • 37. Step 2: “PDF-Template ●A complete HTML template, styled by CSS ●Use <cms:contentload> and <cms:contentaccess> to access content ●Like a Formatter or old-style detail JSP 37 PDF generation on the fly
  • 38. Step 2: “PDF-Template 38 PDF generation on the fly <html> <cms:contentload collector="singleFile" param="%(opencms.uri)" > <cms:contentaccess var="content" /> <head> [...] <link rel="stylesheet" href="..." type="text/css" /> [...] </head> <body> [...] ${content.value.myvalue} [...] </body> </cms:contentload> </html>
  • 39. Step 3: Integration ●Add a link by using the <cms:pdf> tag ●format: Path to the PDF Template ●content: Filename of the content (e.g. ${content.filename} ●locale: Locale to be displayed 39 PDF generation on the fly <a href="<cms:pdf format='...' content='...' locale='...'/>" >PDF</a>
  • 40. ●Live Demo 40 PDF generation on the fly Demo Demo Demo Demo デモ
  • 41. ●Any Questions? 41 Any Questions? Fragen? Questions ? Questiones? ¿Preguntas? 質問
  • 42. Michael Emmerich Alkacon Software GmbH http://www.alkacon.com http://www.opencms.org Thank you very much for your attention! 42