loading table of contents...

4.1.4. Structure of the Workspace

The CoreMedia Blueprint workspace contains the modules, packages, boxes and test-data top level aggregator modules.

Workspace Structure

Figure 4.1. Workspace Structure


modules

The modules aggregator module is the most important space for project developers. All code, resources, templates and the like is maintained here. You can start all components locally in the modules area.

The modules hierarchy consists of modules that build libraries and modules that assemble these libraries to applications. Library modules are being built with the standard Maven jar packaging type or with the jangaroo packaging type, which is a custom packaging type to package CoreMedia Studio libraries and plugins.

Most applications created by the modules below the modules folder are web applications using the standard Maven war packaging type. All other applications are built with the custom coremedia-application packaging type. In contrast to war modules coremedia-application modules are being built with the coremedia-application-maven-plugin, a custom plugin tailored to the CoreMedia .jpif based application runtime.

The modules folder is structured in sub-hierarchies by grouping modules due to their functionality. The main groups are cae, cmd-tools, ecommerce, editor-components, studio, search and server which contain the applications defining CoreMedia DXP 8.

Beside the application groups you can see a folder named shared. Modules belonging to this category cannot be assigned to one group alone but merely provide libraries and APIs for multiple applications. The remaining two groups extension-config and extensions are required for the new extensions functionality of CoreMedia Blueprint workspace.

By default, CoreMedia Blueprint workspace ships preconfigured with many extensions such as Adaptive Personalization or Elastic Social. Many extensions not only touch one application but merely extend many of them. The CoreMedia Project Extensions decouples the application from the dependencies it is extended by and lets you centralize and automatically manage the dependencies. See Section 4.1.5, “Project Extensions” for details.

Not all extensions will be used in a project right from the start. In this case, the CoreMedia Project Extensions allow you to easily deactivate features that you do not need.

packages

The artifacts, for example WAR and Zip files build by the modules hierarchy are not deployable in a target environment as they contain default configuration values used to simplify development with the workspace. The packages hierarchy adds this configuration flexibility and even more important it adds the integration with the servlet container and the operating systems service infrastructure.

The artifacts build in packages are either Zip or RPM files. For RPM files there is an inbuilt native installation routine whereas the Zip files contain custom installation scripts.

The packages hierarchy consists of several sub-hierarchies. The main hierarchies are services, tools and apache-overlays. The services sub-hierarchy builds all applications that are built on top of Tomcat as a servlet container. The tools sub-hierarchy builds all command-line tools for all services. The apache-overlays hierarchy builds overlays to an already installed Apache server, adding only configuration files.

Beside these three hierarchies there is the package-template module, that contains all the OS-specific installation code like the scriptlets for the RPM files or the initialization scripts for the Tomcat services.

The tomcat hierarchy consists of modules necessary for the Tomcat service infrastructure. The tomcat-installation module builds an installable version of a Tomcat distribution. The Tomcat based services share, when installed on the same machine, one installation of Tomcat. They only create instances of Tomcat using the binaries of the distribution together with their own configuration files, which are being provided by the tomcat-config artifacts. The tomcat-server-libs and coremedia-tomcat modules provide class loading extensions.

The editor-webstart-webapp module has been placed here as signing and repackaging is closer related to the packages hierarchy as with the modules hierarchy.

boxes

The boxes module contains all provisioning code to automatically set up a CoreMedia Blueprint system. For local development it also contains a harness in the form of a Vagrant file to startup a virtual machine within VirtualBox. See Section 4.1.6, “Virtualization and Provisioning” for more information.

test-data

The test-data folder contains test content to run CoreMedia Blueprint with. It can be imported into the content repository by using the CoreMedia serverimport tool. Extensions may contain additional test-data folders. For more information have a look at Section 3.5.3, “Locally Starting the Components”