Presentation from OpenCms Days 2014.
Every developer beginning to work on OpenCms modules has to find a way to get his resources into the OpenCms VFS. If you're just adding some XSDs and JSPs then cut & paste seems like a viable option. But as soon as websites get more complex and serious programming with custom classes begins, it is time to find a solution that's more efficient and less error prone. If staging and production environments come into the mix, an automated deployment in a version controlled environment seems to be in order.
When we started coding for OpenCms there was no solution we could use out of the box for the CMS team’s IDE of choice, IntelliJ. So we developed our own set of tools that we want to introduce in this session:
- The OpenCms plugin for IntelliJ and its accompanying IDE connector module enable syncing of resources and meta data as well as publishing right from IntelliJ.
- The ModuleManifestGenerator can be used to generate OpenCms module manifests.
- The OpenCms plugin for Maven automates the build, packaging and deployment of OpenCms modules and may be used for continuous integration.
All our tools are Open Source and can be found at GitHub.
The technology stack for typical OpenCms environments is rather complex: JEE, application servers, modules, VFS, RFS, CMIS, Sass, responsive frameworks and IDEs to master them all.
This session is intended to give you an idea as how componio and Software AG develop solutions for OpenCms: from round-trip coding with componio's open source plugin for Netbeans (nbDriva) to mature development, administration and management of skins with componio's open source engine skinnDriva.
We will also ask you some questions: How do you master everyday development tasks for OpenCms? Do you walk different paths such as IntelliJ and Eclipse? We hope to have a lively, fruitful and constructive discussion in the end with great insights for all participants.
Updating existing OpenCms installations to version 9.5 is straightforward using the provided update wizard.
OpenCms 9.5 provides several new tools in the “Advanced Direct Edit” (ADE) view, allowing content creators to work exclusively in that mode without the need to access the traditional workplace. In addition to this, new user roles have been added to OpenCms that allow more fine grained tuning of content manager permissions.
Michael shows how to introduce these new, optional roles in existing OpenCms installations after an update to version 9.5. Moreover, he explains how to integrate new features such as nested containers or on-the-fly PDF creation. Michael also points out potential pitfalls in the update process, related to changes in the core API that may require adjustments in your code.
In this session, it is demonstrated a development and deployment workflow used at Alkacon to maintain various OpenCms sites, currently with version 9.5 and in the future with OpenCms 10. Steps in this workflow include working directly in the OpenCms VFS through a network share, exporting modules automatically and committing the changed modules in a Git repository. The modules from the Git repository are then used in an automated setup with Jenkins and Docker to instantly deploy the site on a different server.
There are also shown enhancements in OpenCms 10 that will make such module deployment workflows easier. These include the option to install / update / export and delete modules directly through a network share. OpenCms 10 also improves the export format to reduce merge conflicts in revision control systems such as Git. Moreover, it will be possible to provide a local change set file for the configuration, which allows to distribute global XML configuration that is adjusted locally.
Now that was quick: After just 12 months of development, Alkacon will release OpenCms 9 during this conference.
OpenCms 9 will extend the user interface introduced in the 8.x versions with carefully selected evolutionary enhancements, while being fully backward compatible.
In his conference opening keynote, Alexander will present the new features of OpenCms 9.
The OpenCms Workplace in Version 10 will be rewritten using the popular Vaadin Framework. This new implementation also brings an improved interface to create Workplace extensions or “Apps” in OpenCms.
Apps in OpenCms 10 can be used for all kind of graphical Workplace extensions, for example to add use case specific management functions or to provide custom views on external data sources. By providing apps in OpenCms, developers can easily create Workplace dialogs and provide the content manager with a consistent user experience.
In this session, it is explained how to write apps for OpenCms 10. It is show what kind of configuration and extension points the new Workplace provides and how modules are created that extend the OpenCms user interface. It is also show how to migrate existing Workplace extensions to OpenCms 10.
All OpenCms versions so far have relied on a relational SQL database as the backbone of the content repository. However, new requirements are emerging, such as distributed repositories with automatic installation in the cloud, which are difficult to meet using the existing database infrastructure.
Alkacon has been investigating the possibility to switch to a new repository technology for future OpenCms versions that come after 10.5 for about a year now. The new repository should be based on state-of-the-art open source components and provide much better cloud and clustering support. In recent months, Alkacon has started with the implementation of this next generation repository. First results are in, and they look promising.
Alkacon is advancing OpenCms usability further with version 10.5.
This version features major improvements for managing multilingual sites by adding new tools that help content managers to translate and maintain templates, pages and sitemaps in different languages.
The technology stack for typical OpenCms environments is rather complex: JEE, application servers, modules, VFS, RFS, CMIS, Sass, responsive frameworks and IDEs to master them all.
This session is intended to give you an idea as how componio and Software AG develop solutions for OpenCms: from round-trip coding with componio's open source plugin for Netbeans (nbDriva) to mature development, administration and management of skins with componio's open source engine skinnDriva.
We will also ask you some questions: How do you master everyday development tasks for OpenCms? Do you walk different paths such as IntelliJ and Eclipse? We hope to have a lively, fruitful and constructive discussion in the end with great insights for all participants.
Updating existing OpenCms installations to version 9.5 is straightforward using the provided update wizard.
OpenCms 9.5 provides several new tools in the “Advanced Direct Edit” (ADE) view, allowing content creators to work exclusively in that mode without the need to access the traditional workplace. In addition to this, new user roles have been added to OpenCms that allow more fine grained tuning of content manager permissions.
Michael shows how to introduce these new, optional roles in existing OpenCms installations after an update to version 9.5. Moreover, he explains how to integrate new features such as nested containers or on-the-fly PDF creation. Michael also points out potential pitfalls in the update process, related to changes in the core API that may require adjustments in your code.
In this session, it is demonstrated a development and deployment workflow used at Alkacon to maintain various OpenCms sites, currently with version 9.5 and in the future with OpenCms 10. Steps in this workflow include working directly in the OpenCms VFS through a network share, exporting modules automatically and committing the changed modules in a Git repository. The modules from the Git repository are then used in an automated setup with Jenkins and Docker to instantly deploy the site on a different server.
There are also shown enhancements in OpenCms 10 that will make such module deployment workflows easier. These include the option to install / update / export and delete modules directly through a network share. OpenCms 10 also improves the export format to reduce merge conflicts in revision control systems such as Git. Moreover, it will be possible to provide a local change set file for the configuration, which allows to distribute global XML configuration that is adjusted locally.
Now that was quick: After just 12 months of development, Alkacon will release OpenCms 9 during this conference.
OpenCms 9 will extend the user interface introduced in the 8.x versions with carefully selected evolutionary enhancements, while being fully backward compatible.
In his conference opening keynote, Alexander will present the new features of OpenCms 9.
The OpenCms Workplace in Version 10 will be rewritten using the popular Vaadin Framework. This new implementation also brings an improved interface to create Workplace extensions or “Apps” in OpenCms.
Apps in OpenCms 10 can be used for all kind of graphical Workplace extensions, for example to add use case specific management functions or to provide custom views on external data sources. By providing apps in OpenCms, developers can easily create Workplace dialogs and provide the content manager with a consistent user experience.
In this session, it is explained how to write apps for OpenCms 10. It is show what kind of configuration and extension points the new Workplace provides and how modules are created that extend the OpenCms user interface. It is also show how to migrate existing Workplace extensions to OpenCms 10.
All OpenCms versions so far have relied on a relational SQL database as the backbone of the content repository. However, new requirements are emerging, such as distributed repositories with automatic installation in the cloud, which are difficult to meet using the existing database infrastructure.
Alkacon has been investigating the possibility to switch to a new repository technology for future OpenCms versions that come after 10.5 for about a year now. The new repository should be based on state-of-the-art open source components and provide much better cloud and clustering support. In recent months, Alkacon has started with the implementation of this next generation repository. First results are in, and they look promising.
Alkacon is advancing OpenCms usability further with version 10.5.
This version features major improvements for managing multilingual sites by adding new tools that help content managers to translate and maintain templates, pages and sitemaps in different languages.
OpenCms 9 provides great new features that build on the success of the “Advanced Direct Edit” (ADE) concept introduced with version 8. Updating from OpenCms 8 to version 9 is easy and straightforward. Updating from OpenCms 7 to 9 is also easy, but you won’t be able to use the ADE features without modifying your existing templates .
In this workshop, Michael will share over 2 years of project experience updating OpenCms 7 installations to the ADE template standard. He will show how to create templates that work with version 7 and version 9 content, using shared layout and code. Using this approach, he will explain a step by step method to update a version 7 website, so that it uses all the ADE features of version 9 in the end.
Michael will also show how to add features introduced in version 9 such as individual detail containers to your existing OpenCms 8 installation.
Adding new sites or domains to an OpenCms installation used to be a tedious task that required editing the OpenCms XML configuration as well as configuring the webserver to recognize the new site URL.
OpenCms 9 features the new site manager tool, which allows Administrators to create new and manage existing sites with a simple GUI based interface. This new tool will automatically update the OpenCms configuration as well as the webserver configuration, without the need to restart OpenCms.
In this workshop session, Rüdiger will start with a default OpenCms installation and use the site manager to remove the /opencms/opencms path prefix from the URL. He will then add some new sites and domains to the server configuration. He will also explain how to adopt the standard scripts shipped with the site manager for other webserver configurations.
OpenCms 8.5 added the CMIS interface that allows standardized access to the contents located in the OpenCms repository. OpenCms 9 takes the concept of standardized access to the repository one step further by allowing OpenCms folders to be mounted as Windows (or Samba) shared network drives.
With OpenCms 9 shared folders, content managers can manage images and documents in the OpenCms repository simply on their local desktop. This is especially appealing if OpenCms is used in the Intranet.
In this workshop, Georg will show how to set up OpenCms folders so that they can be shared with Windows. He will also explain how to access and manage resources in an OpenCms module directly from an IDE such as Eclipse.
The challenge of serving real time information about ongoing seismic crises.
The Swiss Seismological Service (SED) at ETH Zurich is the official Swiss federal agency for seismic monitoring and earthquake information.
Real-time information about earthquakes is a challenge for a web content management system:
While typically few people are interested in seismic information, this changes fundamentally after a widely felt earthquake. Within 1-2 minutes after the event, several 100.000 people may want to get an official explanation of their perceptions, triggering huge and steep load peaks on the CMS.
At the same time automatic analysis results become available and are continuously updated over the next minutes. The challenge here is to setup cache updates, link persistence, and versioning.
Earthquakes can be damaging, also for server infrastructures and communication lines. This calls for off-site redundancy in both information generation and web publishing.
As Switzerland has multiple national languages, all content has to be presented in German, French, Italian and English.
Given these requirements for information platforms of seismic data centers, they are typically custom software.
Presentation from OpenCms Days 2014.
The rapid growth of internet access from mobile devices, together with the introduction of HTML5 and CSS3, has led to a number of complications in the development and maintenance of websites: responsive web design, delivering images for high pixel density displays, and compatibility of the new standards with older browsers still in use.
Fortunately, there are tons of frameworks, libraries, JavaScript, CSS preprocessors and polyfill techniques that help the web developer, but their proliferation in a project can be confusing; it is then essential to create a structured workflow to integrate and automate all processes and controls, particularly in a teamwork scenario.
In this workshop, Marco and Alessandro showcase an OpenCms based development environment that leverages Sass, Grunt, and the OpenCms Samba interface to streamline the workflow of designers and programmers alike.
Sass is a powerful stylesheet language that provides syntactic sugar for CSS; Grunt is a task runner that allows the automation of mundane development work.
Creating and maintaining multilingual websites with OpenCms is possible since the earliest versions. However, there has been room for improvement especially when it comes to synchronizing sitemaps for different languages.
When translating websites, two approaches are usually considered: Either every page is made available for each language (single tree approach), or the languages use different page structures (multi tree approach). Each approach has different requirements, and OpenCms 10.5 has new features to help with both.
OpenCms 9.5 (and soon version 10) has a great number of features that are included in the core distribution but are not well known and therefore often remain unused. These include:
- Many EL functions available for JSP templates
- XML schema based configuration of the content editor
- Individual content settings for sitemaps
- Advanced logging options in the workplace Administration
… and much more.
In this session, some of these valuable hidden features are presented.
Efficient development workflows with composernuppla
Composer is a great tool for managing a project's dependencies - however, as with many tools there are various ways to use it. That's why this session will provide you an overview of possible workflows and shows practical solutions for building and deploying composer-managed projects. It covers experiences with handling Drupal projects and focus on approaches that can be shared across projects and team members.
Topics:
- Introduction: What is composer and how to use it with Drupal
- Build & deployment workflows for composer-managed projects
- Composer & Drupal: Challenges & solutions
- Creating re-usable packages
The build process for OpenCms 9 is using Gradle ( www.gradle.org ) instead of Apache Ant. The great advantage of the Gradle build process is an integrated dependency management so that libraries required to build OpenCms are downloaded automatically.
Moreover, OpenCms 9 provides a script based setup in addition to the traditional web interface. This allows the installation of OpenCms directly from the command line.
In this 2 part workshop, Tobias will first demonstrate how the new Gradle based build process in OpenCms 9 works. He will explain how to configure popular IDEs such as Eclipse to build the OpenCms core as well as individual module extensions. Tobias will then present the automatic setup process and show how to configure various options for the OpenCms installation.
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Drupal 8 improvements for developer productivity php symfony and moreAcquia
This was a webinar hosted by Acquia. Ron Northcutt, a solutions architect at Acquia discussed improvements in Drupal 8 that will surely boost productivity for Drupal developers.
Nuxeo World Session: Building Packages for the Nuxeo MarketplaceNuxeo
Technical session on Nuxeo Marketplace during Nuxeo World conference 2010 (November 17-18, 2010). Presented by Alain Escaffre, Thierry Delprat, and Stefanescu Bogdan.
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
Docker es una tecnología que permite empaquetar el software de forma que se pueda ejecutar de forma sencilla y rápida, sin instalación y en cualquier sistema operativo. Es como tener cualquier programa instalado en su propia máquina virtual, pero arranca mucho más rápido y consume menos recursos. Docker está cambiando la forma en la que desplegamos software, pero también está afectando al propio proceso de desarrollo y particularmente al testing.
En este taller pondremos en práctica cómo usar Docker para facilitar la implementación de diferentes tipos de tests y su ejecución tanto en el portátil como en el entorno de integración continua. Aunque las técnicas que veremos se podrán aplicar en cualquier lenguaje de programación, los ejemplos estarán basados en Java y en JavaScript.
Improving build solutions dependency management with webpackNodeXperts
Do you know ? - " The fine art of Webpack "
Topics Covered :
- What are Build Tools ?
- What is a Dependency graph ?
- What is webpack & its impacts
- What is a webpack config file and how is it written ?
- Webpack VS Grunt/Gulp & Browserify
SwissJUG_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
OpenCms 9 provides great new features that build on the success of the “Advanced Direct Edit” (ADE) concept introduced with version 8. Updating from OpenCms 8 to version 9 is easy and straightforward. Updating from OpenCms 7 to 9 is also easy, but you won’t be able to use the ADE features without modifying your existing templates .
In this workshop, Michael will share over 2 years of project experience updating OpenCms 7 installations to the ADE template standard. He will show how to create templates that work with version 7 and version 9 content, using shared layout and code. Using this approach, he will explain a step by step method to update a version 7 website, so that it uses all the ADE features of version 9 in the end.
Michael will also show how to add features introduced in version 9 such as individual detail containers to your existing OpenCms 8 installation.
Adding new sites or domains to an OpenCms installation used to be a tedious task that required editing the OpenCms XML configuration as well as configuring the webserver to recognize the new site URL.
OpenCms 9 features the new site manager tool, which allows Administrators to create new and manage existing sites with a simple GUI based interface. This new tool will automatically update the OpenCms configuration as well as the webserver configuration, without the need to restart OpenCms.
In this workshop session, Rüdiger will start with a default OpenCms installation and use the site manager to remove the /opencms/opencms path prefix from the URL. He will then add some new sites and domains to the server configuration. He will also explain how to adopt the standard scripts shipped with the site manager for other webserver configurations.
OpenCms 8.5 added the CMIS interface that allows standardized access to the contents located in the OpenCms repository. OpenCms 9 takes the concept of standardized access to the repository one step further by allowing OpenCms folders to be mounted as Windows (or Samba) shared network drives.
With OpenCms 9 shared folders, content managers can manage images and documents in the OpenCms repository simply on their local desktop. This is especially appealing if OpenCms is used in the Intranet.
In this workshop, Georg will show how to set up OpenCms folders so that they can be shared with Windows. He will also explain how to access and manage resources in an OpenCms module directly from an IDE such as Eclipse.
The challenge of serving real time information about ongoing seismic crises.
The Swiss Seismological Service (SED) at ETH Zurich is the official Swiss federal agency for seismic monitoring and earthquake information.
Real-time information about earthquakes is a challenge for a web content management system:
While typically few people are interested in seismic information, this changes fundamentally after a widely felt earthquake. Within 1-2 minutes after the event, several 100.000 people may want to get an official explanation of their perceptions, triggering huge and steep load peaks on the CMS.
At the same time automatic analysis results become available and are continuously updated over the next minutes. The challenge here is to setup cache updates, link persistence, and versioning.
Earthquakes can be damaging, also for server infrastructures and communication lines. This calls for off-site redundancy in both information generation and web publishing.
As Switzerland has multiple national languages, all content has to be presented in German, French, Italian and English.
Given these requirements for information platforms of seismic data centers, they are typically custom software.
Presentation from OpenCms Days 2014.
The rapid growth of internet access from mobile devices, together with the introduction of HTML5 and CSS3, has led to a number of complications in the development and maintenance of websites: responsive web design, delivering images for high pixel density displays, and compatibility of the new standards with older browsers still in use.
Fortunately, there are tons of frameworks, libraries, JavaScript, CSS preprocessors and polyfill techniques that help the web developer, but their proliferation in a project can be confusing; it is then essential to create a structured workflow to integrate and automate all processes and controls, particularly in a teamwork scenario.
In this workshop, Marco and Alessandro showcase an OpenCms based development environment that leverages Sass, Grunt, and the OpenCms Samba interface to streamline the workflow of designers and programmers alike.
Sass is a powerful stylesheet language that provides syntactic sugar for CSS; Grunt is a task runner that allows the automation of mundane development work.
Creating and maintaining multilingual websites with OpenCms is possible since the earliest versions. However, there has been room for improvement especially when it comes to synchronizing sitemaps for different languages.
When translating websites, two approaches are usually considered: Either every page is made available for each language (single tree approach), or the languages use different page structures (multi tree approach). Each approach has different requirements, and OpenCms 10.5 has new features to help with both.
OpenCms 9.5 (and soon version 10) has a great number of features that are included in the core distribution but are not well known and therefore often remain unused. These include:
- Many EL functions available for JSP templates
- XML schema based configuration of the content editor
- Individual content settings for sitemaps
- Advanced logging options in the workplace Administration
… and much more.
In this session, some of these valuable hidden features are presented.
Efficient development workflows with composernuppla
Composer is a great tool for managing a project's dependencies - however, as with many tools there are various ways to use it. That's why this session will provide you an overview of possible workflows and shows practical solutions for building and deploying composer-managed projects. It covers experiences with handling Drupal projects and focus on approaches that can be shared across projects and team members.
Topics:
- Introduction: What is composer and how to use it with Drupal
- Build & deployment workflows for composer-managed projects
- Composer & Drupal: Challenges & solutions
- Creating re-usable packages
The build process for OpenCms 9 is using Gradle ( www.gradle.org ) instead of Apache Ant. The great advantage of the Gradle build process is an integrated dependency management so that libraries required to build OpenCms are downloaded automatically.
Moreover, OpenCms 9 provides a script based setup in addition to the traditional web interface. This allows the installation of OpenCms directly from the command line.
In this 2 part workshop, Tobias will first demonstrate how the new Gradle based build process in OpenCms 9 works. He will explain how to configure popular IDEs such as Eclipse to build the OpenCms core as well as individual module extensions. Tobias will then present the automatic setup process and show how to configure various options for the OpenCms installation.
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Drupal 8 improvements for developer productivity php symfony and moreAcquia
This was a webinar hosted by Acquia. Ron Northcutt, a solutions architect at Acquia discussed improvements in Drupal 8 that will surely boost productivity for Drupal developers.
Nuxeo World Session: Building Packages for the Nuxeo MarketplaceNuxeo
Technical session on Nuxeo Marketplace during Nuxeo World conference 2010 (November 17-18, 2010). Presented by Alain Escaffre, Thierry Delprat, and Stefanescu Bogdan.
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
Docker es una tecnología que permite empaquetar el software de forma que se pueda ejecutar de forma sencilla y rápida, sin instalación y en cualquier sistema operativo. Es como tener cualquier programa instalado en su propia máquina virtual, pero arranca mucho más rápido y consume menos recursos. Docker está cambiando la forma en la que desplegamos software, pero también está afectando al propio proceso de desarrollo y particularmente al testing.
En este taller pondremos en práctica cómo usar Docker para facilitar la implementación de diferentes tipos de tests y su ejecución tanto en el portátil como en el entorno de integración continua. Aunque las técnicas que veremos se podrán aplicar en cualquier lenguaje de programación, los ejemplos estarán basados en Java y en JavaScript.
Improving build solutions dependency management with webpackNodeXperts
Do you know ? - " The fine art of Webpack "
Topics Covered :
- What are Build Tools ?
- What is a Dependency graph ?
- What is webpack & its impacts
- What is a webpack config file and how is it written ?
- Webpack VS Grunt/Gulp & Browserify
SwissJUG_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
The Agile and Open Source Way (AgileTour Brussels)Alexis Monville
Slides from AgileTour Brussels presentation on September 27th, 2013. More information on AgileTour Brussels: http://atbru.be/
The Agile and Open Source Way is the book for everyone who wants to scale agile in multiple distributed teams. This book will also help you to collaborate upstream with Open Source projects.
Whether you want to improve interactions with other teams inside or outside your company, or just interested in scaling from more than one team, you will find in this publication the information you need, illustrated by a real case.
http://www.the-agile-and-open-source-way.com/
MvvmCross 6 has finally arrived! In this session we will explore how can it help you build polished, scalable apps without compromise. It doesn’t matter if you use Xamarin.Forms or the traditional approach, MvvmCross 6 will supercharge your development!
ShipItCon - Continuous Deployment and Multicloud with Ansible and KubernetesMihai Criveti
Continuous Deployment and Multi-Cloud with Ansible, Packer, OpenSCAP and Kubernetes
Building and automating a multi-cloud pipeline using Ansible, Packer, OpenSCAP and Molecule
Using Kubernetes to orchestrate containers at scale
ShipItCon is a community driven, not-for-profit conference about Software Delivery https://shipitcon.com/
Behavioral driven development with BehatPromet Source
This workshop helps developers to get started with the process of behavior driven development (BDD) in PHP using the Behat toolkit with Drupal specific extensions in order to align technical testing with business expectations when using Drupal as a development platform.
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...Nuxeo
See how Codenvy's Factories allow Nuxeo Platform developers to manage their entire development cycle in the cloud without installing anything.
This How-To webinar will walk you through the steps used to build the Codenvy factory for the Nuxeo Platform. Attendees will learn:
- How a project is edited and run in the Codenvy Cloud
- How to use a running project as the base for a one-click factory
- What Docker is, and how Dockerfiles simplify setup of the developer environment
- How to automate developer workspace construction
- How to publish a single URL that gives instant access to project contributors
All Things Open 2014 - Day 1
Wednesday, October 22nd, 2014
Mark Hinkle
Senior Director & Citrix Open Source Business Office for Citrix
Cloud
Crash Course in Cloud Computing
Find more of Mark's talks here: http://www.slideshare.net/socializedsoftware
All Things Open : Crash Course in Open Source Cloud Computing Mark Hinkle
Very few trends in IT have generated as much buzz as cloud computing. This session will cut through the hype and quickly clarify the ontology for cloud computing. The bulk of the conversation will focus on the open source software that can be used to build compute clouds (infrastructure-as-a-service) and the complimentary open source management tools that can be combined to automate the management of cloud computing environments.
The session will appeal to anyone who has a good grasp of traditional data center infrastructure but is struggling with the benefits and migration path to a cloud computing environment. Systems administrators and IT generalists will leave the discussion with a general overview of the options at their disposal to effectively build and manage their own cloud computing environments using free and open source software.
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxJamie Coleman
More developers are using Polyglot programming models with their application architecture and why should they not use the language that makes sense for a specific task. This is where we introduce Paketo, the open-source tool that enables a developer to automatically detect what language they are using and build a runnable container image with that application and a runtime to run said application.
In this talk we will talk about what Paketo’s goals are, the benefits it can bring and a demo of how to easily get started taking a MicroProfile and Jakarta EE application and deploy it in a container using Paketo with the Open Liberty Runtime.
Businesses are speeding up development and automating operations to remain competitive and to get large organizations to scale. Project based monolithic application updates are replaced by product teams owning containerized microservices. This puts developers on call, responsible for pushing code to production, fixing it when it breaks, and managing the cost and security aspects of running their microservices. In this world operations skill-sets are either embedded in the microservices development teams, or building and operating API driven platforms. The platform automates stress testing, canary based deployment, penetration testing and enforces availability and security requirements. There are no meetings or tickets to file in the delivery process for updating a containerized microservice, which can happen many times a day, and takes seconds to complete. The role of site reliability engineering moves from firefighting and fixing outages to buiding tools for finding problems and routing those problems to the right developers. SREs manage the incident lifecycle for customer visible problems, and measure and publish availability metrics. This may sound futuristic but Werner Vogels described this as “You build it, you run it” in 2006.
Agenda
DevOps,CI/CD, Agile
APIOps
DevOps with Mulesoft
DEMO with Azure DevOps - Pipeline & Release Pipeline
Jenkins Overview
DevOps is a culture that promotes collaboration between Development and IT Operations Team to deploy code to production faster in an automated & repeatable way.
¡Hablamos OpenCms! means "We speak OpenCms!" in Spanish. An increasing number of communities and government agencies in Spain and South America are using OpenCms to manage their websites. Many of them use the SAGA open government platform as well as other OpenCms extensions from SAGA.
Ramón will provide you with insights of his recent OpenCms projects, presenting some of SAGA latest technical developments. He will also share his experiences working in projects for Spanish and South American customers from a project manager perspective.
Many customers are switching to OpenCms 9.5 for their latest projects and Alkacon is working hard on OpenCms 10.
In his conference opening keynote session, the roadmap for OpenCms 10 will be layed out. It will also be explained how Alkacon is committed to further improving the stability of OpenCms 9.5.
The session will demonstrate some of the new features planned for OpenCms 10 such as:
- The new look and feel of the Workplace
- Greatly enhanced file explorer
- Improved template editor
- Model groups
- Resource searching with SOLR
- SMB access to modules
- A SASS / Bootstrap based responsive demo template
… and more!
A number of these features are already included in an Alpha version that will be made available during this conference, with the final release of OpenCms 10 scheduled for the end of March 2016.
OpenCms 10 is not even finished, but Alkacon is already forming concrete plans about OpenCms 11. The most important aspect for OpenCms 11 will be a new repository architecture. This new repository should be based on state-of-the-art open source components and provide much better cloud and clustering support, also solving a number of issues of the current VFS implementation.
In this session the design principles that guide the new repository architecture will be explained. Use cases where the current repository falls short will be shown, and how these should be improved in a new repository will be explained.
It has already been developed a working proof of concept for a new repository that already solves many of the challenges mentioned earlier. This prototype will be demonstarted and the technology behind it will be explained.
A new repository architecture for OpenCms 11 will most likely mean a departure from the database stack used for the repository up until OpenCms 10. This will effect backward compatibility.
The Alkacon OCEE modules are often used in large professional OpenCms installations. The decision to use OCEE is usually made to meet one single requirement of the customer, such as LDAP connectivity or cluster support. Since OCEE is sold in a package, an installation could also benefit from using other features of the OCEE modules – but it may be unclear what other features are available in general.
In this session explain the benefits and of the different OCEE modules and their functionalities for every OpenCms installation are explained, e.g. making full use of the OCEE Accelerator. It is also shown certain special features of the OCEE LDAP, Cluster and Replication modules that are readily available but often remain unused. Based on experience in large OCEE installations, OCEE configuration tips and tweaks are providesd that improve performance and reliability.
Nested containers, introduced in OpenCms 9.5, have added a whole new dimension of flexibility for template development. They provide web developers with the ability to generate complex page layouts “on the fly” without digging too deep into OpenCms specific programming.
In this session, advanced template use cases are demonstrated developed by Alkacon the in past 12 months with OpenCms 9.5. These include nested containers that generate their own HTML structure as well as flexible CSS classes to be used in element settings.
This session will also provide insights about the improvements planned for the template mechanism in OpenCms 10, such as model groups and an enhanced template management. It is explained what will be in the new demo template that will be published with 10 and show the current working prototype.
With OpenCms 9.5, the SOLR collector has been introduced as the best method to get a specified list of resources out of the VFS. This collector allows the developer to formulate a SOLR query as collector parameter to get flexible result lists. However, since it is based on the collector interface, the SOLR collector cannot deal with the wealth of additional information that is provided with the search result.
Enter OpenCms 10 <search /> tag. This new tag has been specifically designed to be a drop-in replacement the <collector /> tag, tailored especially for SOLR queries and result sets. Using this new tag you can easily generate advanced searches including facets and “did you mean” results.
In this session, an overview is provided about the SOLR integration in OpenCms in general. The SOLR collector with the new <search /> tag available in 10 will be compared and best practices of using SOLR in OpenCms 9.5 and 10 will be provided.
Citizen participation and transparency - new social trends are changing the world and the way we understand democracy. Governments are required to be increasingly transparent. Institutional information has to be always up to date. The demand for online participatory democracy is growing.
Habla!! is an open government platform developed by SAGA based on OpenCms. It covers the needs for large and small governments to communicate with citizens and quickly respond to their needs. It features a responsive template and integrates Spring to manage social accounts.
The platform is already used by the General Council of Tenerife and the Malaga City Council. By the end of the year, we will also launch in Sevilla and Huelva, supporting more than 50 municipalities.
This session will demonstrate the features of the SAGA open government platform and explain how it was built with OpenCms.
Erarta is the largest private museum of contemporary art in Russia. Its permanent collection contains over 4500 works by more than 350 artists from all over the country. The museum is located in Saint Petersburg and has galleries in London and Hong Kong.
An OpenCms-based website for Erarta was launched in 2012 starting with version 8.0. This has grown to a portal with thousands of articles, images, videos, an online shop and a number of integration modules connected to ERP system, delivery services, payment gateways and more. Key factors to the success where the transparent and intuitive user interface, the flexible access control model as well as the easy integration of external applications.
This session will show how OpenCms was introduced at Erarta and how the application has been evolved over the years, including updates from 8.0 to 8.5 and soon to 9.5.
This case study deals with the creation, migration and maintenance of all websites of Arkema, the biggest French chemical company.
A quick overview will firstly be drawn about both Arkema and Eurelis companies, to better understand how we have been organizing to centralize all Arkema's websites.
Then, two different OpenCms platforms will be described, both internet and intranet platforms: which architecture has been chosen, how they have been set up and configured to host around 45 sites each. Also, it will be presented an overview regarding how the projects have been managed to guarantee their success, and how the deployment of all websites have been handled including a quick presentation of the training for every contributor.
After, a focus on the evolutions occurred upon the last 3 years will be depicted, particularly concerning the product and range pages, making the Front-End responsive and the OpenCms technical migrations.
Finally, thoughts regarding the future of both platforms will be shared.
Presentation from OpenCms Days 2014.
Techem maintains about 13 international customer portals with OpenCms. These portals are based on a cluster solution which provides automated content creation including navigation and permissions. The business applications are integrated as portlets in a responsive web design provided by the OpenCms environment.
In this session Torsten talks about how he and his colleagues at Techem handle localization, business logic and content distribution for their international customer portals. A strong focus in their development process is time to market and the need for reusability.
With more than 3,000 employees, Techem is the market leader in Germany and in further European countries for the management and billing of energy and water in real estate. Sustainable reduction of energy and water consumption and saving our customers' time and costs is the goal we have set ourselves.
Presentation from OpenCms Days 2014.
Running OpenCms within a private cloud-environment using the features of dynamic up- and downscaling is a challenge.
Our expandable service architecture around OpenCms allows us to run the whole system without noticeable outages.
We demonstrate how we have overcome the tight coupling of OCEE to achieve this goal and show which approaches we pursue to get OpenCms enterprise- & cloud-ready.
Presentation from OpenCms Days 2014.
This session covers how we at componio accomplished turning OpenCms 9 into a video tube and which pitfalls we fell into but you should avoid.
You will learn how different software products such as OpenCms, JWplayer and ownCloud make for a nice video delivery platform. Moreover we will touch OpenCms features such as the subscription engine, the content relationship engine and customized detail pages together with an extension to Metamesh's RFS-Driver.
All these ingredients form the foundation for individually crafted but automatically aggregated video tubes. The final result is not as powerful as the well-known video portals but nonetheless a very good offering for OpenCms-centric installations.
OpenCms 9.5 introduces the concept of “User Generated Content” (UGC). This new option allows front-end users to easily create or modify content elements in the OpenCms repository without access to the editor interface. The so generated XML contents can then be used with the standard template system to build web pages.
To enable UGC for your website, OpenCms 9.5 provides a simple to use JavaScript API. In addition to that, you just need to provide a schema for the XML content, a UGC configuration file, and a web form. No server side programming is required. Contents created with UGC can be edited in the standard editor interface and vice versa. Of course, UGC comes with build in security features.
Daniel and Alexander show how to create a UGC application in OpenCms. They explain common use cases and point out the advantages of the new API compared to the traditional approaches.
SOLR has been integrated with OpenCms 9.5 tighter than ever before. With 9.5, all content items in the OpenCms repository can be indexed by SOLR, in all available languages. This deep integration allows to use SOLR not only for basic full text searches, but also as an API extension to create advanced queries for all kinds of contents.
In this workshop, Sören shows how to use SOLR for advanced content retrieval in OpenCms. He combines attributes, properties and XML field values in a query that generates an editable list of elements with a content collector. He also explains how to use advanced features such as individual content field mappings to make your custom content types easily findable.
With OpenCms version 9.5 comes a new and extended default template based on the popular Bootstrap HTML framework.
Using the latest 9.5 features, this responsive template has been created with a “snap to grid” based layout. Dynamic formatters interact with the context in which they are used and adjust their output to match the available screen columns. Also included are further 9.5 additions like PDF generation and User Generated Content.
In this workshop, Andreas provides you an overview about the features of the new template and how it has been build. He explains how to create a new template model visually using nested containers without any programming required. Moreover, he demonstrates how to copy the demo template and use it as a base for your own customizations.
OpenCms 9.5 introduces nested containers, which provide developers a range of powerful new template options.
Nested containers can for example be used to create a tab element with a defined list of tab headings but flexible tab contents that can be added by drag & drop. It’s even possible to use nested containers to generate a grid structure for template models starting with a “blank sheet of paper”.
In this session, Andreas explains how nested containers can be defined in a formatter. He demonstrates how to generate different container configurations based on the formatter settings. Moreover, he shows how elements placed in nested containers can interact with the container to adjust their output according to the requirements of the page layout.
Presentation shown by Alexander Kandzior in his OpenCms Days 2014 keynote.
The next major version 9.5 of OpenCms is ready and it’s easier to use than ever!
OpenCms 9.5 finally allows content managers to handle all of their editing tasks directly in the website, without the need to access the “power user” workplace interface.
New features in OpenCms 9.5 also include:
- Nested Containers
- User generated content
- PDF generation
- More options to reuse existing content
- Improved localization of container pages
- Several enhancements in the user interface
- Much better documentation
- An updated responsive demo based on Bootstrap
… and more!
Documentation of OpenCms will be better than ever with the release of version 9.5.
OpenCms 9.5 documentation has been revised and greatly extended. Moreover, a new approach has been taken in writing the documentation directly inside OpenCms. Being HTML based, it allows the content to be found easily through online search engines for quick reference. It also allows combining the documentation with interactive examples and demos.
In this session, Daniel introduces the new documentation. He focuses on the content of the documentation, and provides an overview about the main areas of improvement. He also explains briefly the technical structure of the documentation, which makes use of OpenCms 9.5 features such as nested containers. Last but not least, he points out opportunities for future collaboration to document OpenCms even better.
In this workshop, Georg demonstrates two important new features in OpenCms 9.5.
In the first part of this workshop, Georg shows how to use the new PDF features in 9.5. He explains how to create a nicely formatted PDF document from a XML content and how this PDF view can easily be attached to an existing detail page. He also shows how image preview thumbnails can be created automatically for uploaded PDF documents.
The second part introduces several new options of the form based XML content editor. These include the possibility to synchronize content between languages, to manage the visibility of content fields and to create dependencies between widgets and other input fields. Georg shows use cases for these new options, explain the required configuration in the XML schema files and provide pointers to the API for advanced implementations.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins
1. mediaworx berlin AG
mediaworx berlin 1
Welcome!
OPENCMS MODULE DEVELOPMENT AND DEPLOYMENT
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
2. mediaworx berlin AG
mediaworx berlin .........................................................................................
About mediaworx
.........................................................................................
The OpenCms Plugin for IntelliJ
.........................................................................................
The OpenCms Plugin for Maven
.........................................................................................
Continuous Integration with Jenkins
.........................................................................................
2
Agenda
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
3. mediaworx berlin AG
mediaworx berlin Digital Strategy
User
Experience
Performance Marketing
70
Owner- managed
1996
High-End
Technology
3
mediaworx berlin AG
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
4. mediaworx berlin AG
mediaworx berlin •CMS projects since 1998
•openworx, in-house developed CMS, PHP
•worked with many CMS systems, among others
•Fatwire Content Server (now Oracle WebCenter Sites)
•TYPO3
•CoreMedia
•imperia
•OpenCms is our main CMS since 2012
•Multiple OpenCms projects for three major clients
•OpenCms is used for mediaworx.com and themed micro sites
4
CMS projects at mediaworx
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
5. mediaworx berlin AG
mediaworx berlin 5
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms Plugin for IntelliJ
6. mediaworx berlin AG
mediaworx berlin OpenCms is the CMS of choice for mediaworx
•Open Source
•free (as long as OCEE isn’t used)
•developed by a company (as opposed to the community or a single person)
•Alkacon has been very supportive throughout our projects
•active and supportive community
•constant enhancements through regular updates
•based on standards
•very flexible content type definition with XSD
•highly extensible through custom modules
•content accessible through JSP tags and Java API
•WYSIWYG page editor with drag and drop and inline editing
6
Why we love OpenCms
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
7. mediaworx berlin AG
mediaworx berlin IntelliJ is the CMS team‘s IDE of choice
•great code suggestion and generation features
•loads of refactoring options
•code analysis while typing with the possibility to fix bugs or “bad code” with a single click
•great code navigation
•very fast full text search even in huge projects
•great Maven integration
•VCS integration
•easy plugin development
•free Community Edition (Open Source)
7
Why we love IntelliJ
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
8. mediaworx berlin AG
mediaworx berlin 8
Our mission: to bring together IntelliJ and OpenCms
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
+
9. mediaworx berlin AG
mediaworx berlin •development started in 2012
•based on a plugin for Fatwire ContentServer, also developed by mediaworx
•added to the official JetBrains plugin repository in 2014
•Open Source
•used by all our OpenCms developers for all our OpenCms projects
•constant developer feedback resulting in new and improved features
9
We proudly present: The OpenCms plugin for IntelliJ
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
10. mediaworx berlin AG
mediaworx berlin 10
We proudly present: The OpenCms plugin for IntelliJ
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Integration in IntelliJ
•configuration dialogs in project settings and module settings
•additional OpenCms menus
•all menu actions accessible by keyboard shortcuts
•OpenCms tool window displaying the plugin’s console
11. mediaworx berlin AG
mediaworx berlin 11
We proudly present: The OpenCms plugin for IntelliJ
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Core Features
•sync of resources between IntelliJ and the OpenCms VFS
•automatic sync of deleted, moved or renamed resources
•export point handling during sync actions
•publishing and auto publish (configurable)
•meta data pull
•manifest generation
•module packaging
12. mediaworx berlin AG
mediaworx berlin 12
Configuring the plugin – Project Settings
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms plugin for IntelliJ can be configured for each IntelliJ project, so you can have different settings for different projects.
The plugin’s project settings dialog
13. mediaworx berlin AG
mediaworx berlin 13
Configuring the plugin – Module Settings
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
In IntelliJ’s module settings you can configure your OpenCms modules. It’s possible to override project default behavior for specific modules.
The plugin’s module settings dialog
14. mediaworx berlin AG
mediaworx berlin OpenCms menus are added at the following locations:
•in the main menu
•in the project popup menu
•in the editor popup menu
•in the editor tab popup menu
14
Accessing plugin actions – The OpenCms menus
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms menu in the main menu offers all of the plugin’s actions for syncing, publishing, meta data pulling, manifest generation and module zip packaging
15. mediaworx berlin AG
mediaworx berlin OpenCms menus are added at the following locations:
•in the main menu
•in the project popup menu
•in the editor popup menu
•in the editor tab popup menu
15
Accessing plugin actions – The OpenCms menus
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms menu in the project popup menu offers actions to
•sync or publish the selected files, folders or modules
•pull meta data, generate manifests or package module zips for selected modules
16. mediaworx berlin AG
mediaworx berlin OpenCms menus are added at the following locations:
•in the main menu
•in the project popup menu
•in the editor popup menu
•in the editor tab popup menu
16
Accessing plugin actions – The OpenCms menus
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms menu in the editor popup menu offers actions to sync or publish the file that’s currently open in the editor area
17. mediaworx berlin AG
mediaworx berlin OpenCms menus are added at the following locations:
•in the main menu
•in the project popup menu
•in the editor popup menu
•in the editor tab popup menu
17
Accessing plugin actions – The OpenCms menus
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms menu in the editor tab popup menu offers actions to
•sync or publish the clicked file
•sync or publish all open tabs
18. mediaworx berlin AG
mediaworx berlin 18
Goodbye copy & paste – Now let’s sync!
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
When a resource is synced
•the file is transferred either from the local file system to OpenCms or vice versa
•export points are handled if applicable
•resource meta data is pulled from OpenCms and stored locally
•a direct publish session is started (if auto publish is enabled)
The OpenCms plugin for IntelliJ enables developers to work solely in their IDE by syncing changes to and from OpenCms. No need to copy & paste!
19. mediaworx berlin AG
mediaworx berlin 19
For you to choose – The sync modes
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Push:
Local file system is master. All changes to resources made in OpenCms will be overwritten by local files (except properties). VFS resources not existing locally will be deleted.
Sync:
Files are synced to and from the OpenCms VFS based on their modification date, the most recent file is synced. That way changes can be made locally and in OpenCms.
Pull:
All changes made to local files are overwritten by the corresponding resources in the OpenCms VFS. Files that don't exist in the VFS will be deleted from the local file system.
The OpenCms plugin for IntelliJ offers three different sync modes that can be configured globally or on a per module basis.
20. mediaworx berlin AG
mediaworx berlin Through OpenCms menu actions you can publish files, folders or modules.
20
Now you can publish right from your IDE
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
If you want you can turn on auto publish, so that every time you sync some files, a direct publish session containing the updated resources is started.
… or let your IDE publish for you
21. mediaworx berlin AG
mediaworx berlin 21
There’s more than files in the VFS – Pulling meta data
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms VFS keeps meta data on resources that can't be stored with the files in the local file system (e.g. resource IDs, properties). During sync actions that meta data is pulled and stored as XML files in a separate folder structure.
Resource IDs
Properties
Access control
XML
In addition to resource meta data, module meta data is pulled and stored for each module as manifest_stub.xml.
22. mediaworx berlin AG
mediaworx berlin 22
But what to do with all that data?
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
File XML
Folder XML
File XML
Manifest stub XML
Module manifest.xml
File XML
...
•Version control
•Manifest generation
manifest.xml files can be used to package OpenCms module zips from within the plugin itself or by using the OpenCms plugin for Maven.
23. mediaworx berlin AG
mediaworx berlin 23
Packaging module zips for an easy deployment
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms plugin for IntelliJ lets you package your finished modules into module zips that can then be imported into any OpenCms instance. That way you you can easily deploy your work to multiple test and production machines.
Production
Staging
24. mediaworx berlin AG
mediaworx berlin •helps avoiding switches between IDE and OpenCms workplace
•enables version control for OpenCms resources and meta data
•provides meta data for automatic builds of OpenCms modules
•improves our efficiency
•helps us to concentrate on development
•makes developing OpenCms modules more fun
•will be actively developed and enhanced
24
The OpenCms plugin for IntelliJ
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
25. mediaworx berlin AG
mediaworx berlin 25
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
The OpenCms Plugin for Maven
26. mediaworx berlin AG
mediaworx berlin Maven Objectives
•Making the build process easy
•Providing a uniform build system
•Providing quality project information
•Providing guidelines for best practices development
•Allowing transparent migration to new features
26
Maven is a tool for building and managing Java Projects.
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
27. mediaworx berlin AG
mediaworx berlin • Automatic dependency management
• Standardized structure / build process
• Declarative model
• Unittest integration
• Release management
27
We use Maven because:
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
28. mediaworx berlin AG
mediaworx berlin When we began developing for OpenCms, we wanted to use Maven to build and package our modules.
•Provides the Maven advantages such as dependency management for OpenCms module development.
•Comes with a custom packaging type "opencms-module“.
•Makes Java dependencies available as standard Maven dependencies.
•Can use static manifests or manifest meta data snippets.
•Manifests can use placeholders such as version directly from your POM.
•The plugin can be used standalone or together with the IntelliJ Plugin.
28
The OpenCms Plugin for Maven
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
29. mediaworx berlin AG
mediaworx berlin 29
Using the plugin
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Your source code is organized according to the standard Maven directory layout.
30. mediaworx berlin AG
mediaworx berlin <project>
<groupId>com.mediaworx.opencms</groupId>
<artifactId>mymodule</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>opencms-module</packaging>
<name>mediaworx OpenCms ${project.artifactId}</name>
<description>mediaworx ${project.artifactId} sample module</description>
<build>
<plugins>
<plugin>
<groupId>com.mediaworx.mojo</groupId>
<artifactId>opencms-maven-plugin</artifactId>
<version>1.2</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.opencms</groupId>
<artifactId>opencms-core</artifactId>
<version>9.0.1</version>
</dependency>
<dependencies>
</project>
30
Using the plugin – POM configuration
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Create a POM for your project, defining the default Maven coordinates such as version, group ID, artifact ID and select the packaging type „opencms- module“.
Finally add opencms-core as dependency to have Maven collect all the needed jar files.
31. mediaworx berlin AG
mediaworx berlin 31
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Continuous Integration with Jenkins
32. mediaworx berlin AG
mediaworx berlin • Early detection of build failures
• Running codechecks
• Unittests
• Build and deplyoment to development / integration or production servers
• Release Mangement
32
Continous Integration and Deployment
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
33. mediaworx berlin AG
mediaworx berlin Why Jenkins?
•Easy to install
•Webbased Configuration
•Many plugins available
•Tight Maven integration
•Can use directory services for authentication
•Distributed builds
33
Jenkins CI Server
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
34. mediaworx berlin AG
mediaworx berlin •We are using our Jenkins CI Server to build our OpenCms modules.
•Deployment of modules to OpenCms servers is also handled by Jenkins
•Deployment Steps
•Build the modules from version control
•Transfer module zips to target system
•Remotely on the target system:
•Stop Tomcat
•Execute cmsshell commands to install the modules
•Start Tomcat
34
Using Jenkins with OpenCms
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
35. mediaworx berlin AG
mediaworx berlin Jenkins
Meta Data
Resources
35
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Local Dev
Working together …
VCS
Resources
Meta Data
Staging
Production
IntelliJ
36. mediaworx berlin AG
mediaworx berlin OpenCms Plugin for IntelliJ
•Documentation (Project Wiki on GitHub)
•JetBrains plugin repository
•Source code on GitHub
OpenCms Plugin for Maven
•Maven Plugin Documentation
•Maven Repository
OpenCms and mediaworx
36
If you want to find out more …
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
If you’re interested in our Tools, you can find extensive documentation and some more information on the web.
37. mediaworx berlin AG
mediaworx berlin 37
Very special thanks to the participants of our survey!
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
•Eugen Melnichuk
•Kai Schliemann
•Thomas (Componio)
•Paul-Inge Flakstad
•Fabian Huschka
•Stephan Hartmann
In preparation for this presentation we did a survey on the OpenCms mailing list to find out how other people are syncing and deploying OpenCms modules. We‘d like to thank all the people who were willing to share their answers:
38. mediaworx berlin AG
mediaworx berlin Jenkins
Meta Data
Resources
38
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Local Dev
Questions?
VCS
Resources
Meta Data
Staging
Production
IntelliJ
39. mediaworx berlin AG
mediaworx berlin 39
Thank You!
OpenCms Days 2014 | Nov 4 2014 | OpenCms Module Development and Deployment with IntelliJ, Maven and Jenkins | Kai Widmann & Andreas Karajannis
Kai Widmann
widmann@mediaworx.com
Andreas Karajannis
karajannis@mediaworx.com