How do you develop for OpenCms?
Thomas Pinkowski
componio GmbH
Why another plugin?
nbDriva
Featured functionalities
● Create module
● Sync module via CmsShell or CMIS
● Import module
● Export module
● Create resource type
● Reverse sync of single files or directories via CmsShell
● Current support for OpenCms 8.5.0 up to 9.5.2
Past development process
(initial configuration)
11 - steps
Advantages of nbDriva
(initial configuration)
5 - steps
Past development process
(forward sync)
16 - steps
Advantages of nbDriva
(forward sync)
9 - steps
Past development process
(reverse sync)
7 - Steps
Advantages of nbDriva
(reverse sync)
5 - Steps
old vs. new sync
● 4 clicks per minute old (synchronization time included)
● 2 clicks per minute new (synchronization time included)
old vs. new sync
clicks per day(8 hours) clicks per month(20 days) clicks per year
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
old
new
nbDriva
(projectstructure)
nbDriva
(usage)
nbDriva
(configuration I)
scriptDir directory of CmsShell scripts
modulepath VFS path to the module
module.version version of the module
cmsSync synchronization folder
syncOverCMIS false
packagePath path of the exported module
username Admin
password admin
classpath-compile.jar packed jar with the resolved
libraries
cmsWebInfDir path to OpenCms WEB-INF
moduleDir ${cmsWebInfDir}/packages/modules
module.action.class action class for the module
cmsRepoURL URL for CMIS
nbDriva
(configuration II)
modulename name of the module
ivy.jar.dir for internal use
ivy.jar.file for internal use
cmsRepoId CMIS repository ID
ivy.resolved.libs.dir path of resolved libraries
exclusionFile path to exclusion file
ivy.install.version for internal usage
useExclusionFile false
includedSyncFolders list of folders to sync
cmsServletMapping servlet mapping for OpenCms
importModules for internal use
opencms.version version of OpenCms (relevant for
which library is used)
nbDriva
(usage)
nbDriva
(usage)
nbDriva
(usage)
Future Releases
(additional functionalities)
● Generate Schema over GUI Dialog
● Generate Formatter out of Schema
● Faster Performance during Sync
● JUNIT tests for modules
● Support for Metadata / Properties
● Tutorials
● Support for OpenCms 10
Development Process
(overview)
Short Summary
● usability improvement during development process
for opencms modules, reduced distraction, no
copy&paste
● Creation/Export/Import/Synchronization of modules,
Creation of resource types
● Further releases will follow!
How do you develop?
nbDriva
● Get nbDriva on www.github.com/componio/nbDriva
● Visit us on www.nbdriva.com

OpenCms Days 2015 How do you develop for OpenCms?