[opencms-dev] Survey: How do you develop and deploy OpenCms modules?

Schliemann, Kai K.Schliemann at comundus.com
Thu Aug 28 19:14:41 CEST 2014


Hi Kai,
this are my or better the comundus answers:
- What IDE do you use to edit your module resources (e.g. Eclipse, IntelliJ, NetBeans, Text Editor, ...)?
--Eclipse
- Would you prefer another IDE that you can't use because of any restrictions (e.g. missing OpenCms VFS sync capability)? If so, which IDE would you like to use?
--No.
- How do you sync your module resources from your IDE to the OpenCms VFS and vice versa (e.g. IDE plugin, OpenCms Synchronization, WebDav, Network Share, Cut & Paste)?
--we are using the OpenCms Maven-Plugin developed by ourselves which is Open Source and hosted on Github (https://github.com/comundus/vfs-maven-plugin). On http://opencms-maven.comundus.com/documentation/ is a very well written documentation on how to do the initial setup. So once you have done this, the main steps during the development process is the use of the maven goal mvn:sync. Usually you have one Eclipse project for each of your custom OpenCms modules.
This goal does almost the same as the built in OpenCms syncronisation. Here are some details:
+All files from the VFS are written / updated from / to the real file system (RFS).
+the metadata like properties, create date, modification date, permissions are written to a separate folder tree (vfs-metadata). This tree contains exactly the same file and folder structure as the vfs tree. All files have an additional suffix .xml (because they are xml files).
+ so you can change files in OpenCms or in Eclipse. When calling mvn:sync, the files and folders are syncronised. We are using this mechanism since OpenCms 7 and we are happy with it. Especially what the versioning of the VFS resources is concerned.
- Do you use a version control system and if yes, which (eg. Git, svn, CVS, ...)?
-- we use SVN. But for the OpenCms Maven plugin it doesn't matter, which one you use.
- How do you build module classes (e.g. javac, integrated IDE build system, Maven, Gradle, ...)?
--Maven
- How do you package your modules to module zips (e.g. manual module export from OpenCms, IDE plugin, Maven,  Gradle, ...)?
--A combination of Maven, Ant and OpenCms Shell. We have Maven profile which gets the information it needs from an Ant script. The Ant script executes a cms shell script file. In the end, we have release package, which can be (manually) deployed to test or production environments. We do NOT need this for every development. There is no need to create a module zip, every time you changed code in your JSP, XML schema or CSS file.
- How do you deploy modules to integration and/or production environments (e.g. manual import of module zips in OpenCms, copy & paste of changed resources, automated deployment using CI, ...)?
--A combination of Maven, Ant and OpenCms Shell. We have Maven profile which gets the information it needs from an Ant script. The Ant script executes a cms shell script file. In the end, we have release package, which can be (manually) deployed to integration or production environments. For our internal test environment we use Jenkins. It does a complete build after each checkin.
- Do you use Continuous Integration for OpenCms modules and if yes, what tools do you use (e.g. Jenkins, Hudson, Bamboo, ...)?
--Yes, as written above. But we are not using it just for the modules. The complete OpenCms is built by Jenkins.

Additional info:
-We thought about doing automatic deployment to integration or production servers, but didn't go into detail, because we think we are losing too much control. But this is surely discussable. Currently our release package is good enough for us. It includes an installation guide, which even allows us to give the package to our customer and let them do the installation. That is the case, when we do not have remote access to their system.
-We are using the /org/opencms/main/version.properties file to write our release version into it. So we can check the version when calling the workspace login page (.../system/login/). The version comes from the pom of the maven parent.

I hope this helps you.

Looking forward to seeing you and hearing your talk at the OpenCms Days.

Best regards
________________________________________

Kai Schliemann
Dipl.-Wirtschaftsingenieur (FH)
Teamleiter Softwareentwicklung

comundus GmbH
Schüttelgrabenring 3, D-71332 Waiblingen
Zentrale      +49 7151-94421-10
Durchwahl  +49 7151-94421-20
Fax             +49 7151-94421-39
E-Mail k.schliemann at comundus.com<mailto:k.schliemann at comundus.com>
Internet www.comundus.com<http://www.comundus.com/>

Geschäftsführer Klaus Hillemeier
Amtsgericht Stuttgart, HRB 264290

comundus ist ein Unternehmen der IT EXCELLENCE Group
________________________________________

[facebook]<http://www.facebook.com/pages/Comundus-GmbH/163398933697079?v=wall> comundus bei Facebook



Von: opencms-dev-bounces at opencms.org [mailto:opencms-dev-bounces at opencms.org] Im Auftrag von Kai Widmann
Gesendet: Donnerstag, 28. August 2014 13:26
An: opencms-dev at opencms.org
Betreff: [opencms-dev] Survey: How do you develop and deploy OpenCms modules?

Hello to all OpenCms developers,

at the OpenCms Days 2014 we'll be holding a session that outlines how we at mediaworx do OpenCms module development and deployment using IntelliJ, Maven and Jenkins.
In preparation I would like to find out how other OpenCms developers are approaching that task, so I've assembled some questions I'd like to ask you all. Every reply would be of great value to us (and probably to other developers) and everyone sharing his answers will be mentioned in the "Thank You" section of our slides.

So let's head straight to the questions.

- What IDE do you use to edit your module resources (e.g. Eclipse, IntelliJ, NetBeans, Text Editor, ...)?
- Would you prefer another IDE that you can't use because of any restrictions (e.g. missing OpenCms VFS sync capability)? If so, which IDE would you like to use?
- How do you sync your module resources from your IDE to the OpenCms VFS and vice versa (e.g. IDE plugin, OpenCms Synchronization, WebDav, Network Share, Cut & Paste)?
- Do you use a version control system and if yes, which (eg. Git, svn, CVS, ...)?
- How do you build module classes (e.g. javac, integrated IDE build system, Maven, Gradle, ...)?
- How do you package your modules to module zips (e.g. manual module export from OpenCms, IDE plugin, Maven,  Gradle, ...)?
- How do you deploy modules to integration and/or production environments (e.g. manual import of module zips in OpenCms, copy & paste of changed resources, automated deployment using CI, ...)?
- Do you use Continuous Integration for OpenCms modules and if yes, what tools do you use (e.g. Jenkins, Hudson, Bamboo, ...)?

A big thank you in advance to everyone willing to reply!

Cheers

Kai Widmann

_______________________________________________

Kai Widmann
mediaworx berlin AG

Fon (0 30) 2 75 80 - 262
Fax (0 30) 2 75 80 - 200

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20140828/1bd894aa/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 725 bytes
Desc: image001.jpg
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20140828/1bd894aa/attachment.jpg>


More information about the opencms-dev mailing list