Magnolia is extremely flexible and built for easy integration. You can connect Magnolia to multiple third-party systems, tools and data sources.
This page summarizes integration solutions provided out of the box by Magnolia and some of it's partners, and Integration points that you can use for your own customizations.
Google Analytics Visualization
Google Analytics Visualization module integrates Magnolia with the Google Analytics Core Reporting API and the Google Analytics Embed API. You can view Google Analytics data within Magnolia. The module can be configured to display only the data you are interested in.
Marketing Tags app is a central place to manage marketing tags such as Web analytics, third-party content and advertising network code snippets. The app allows you to create tags and place them on pages. Tags typically collect analytics information such as how many visitors view the page and how long they stay. Tags can also integrate third-party content such as social media or insert ad campaigns. You can use tags to learn more about visitors or provide content.
Amazon S3 Connector module provides an app that allows users to manage assets in Amazon S3 while using them in Magnolia. Amazon S3 (Simple Storage Service) is an online file storage web service offered by Amazon Web Services that provides storage through web services interfaces. Using Amazon S3 takes the load of storing and serving large assets off your Magnolia servers.
Cumulus DAM Connector module connects a Canto Cumulus DAM to Magnolia. Cumulus is popular, enterprise-grade digital asset management platform that offers digital rights management and many back-end connections, including Adobe Photoshop, InDesign and more. You can use Cumulus DAM content within a Magnolia website in a manner that resembles working with native Magnolia content. In addition to exposing DAM content to Magnolia websites, the module provides access to DAM content management. The Cumulus DAM Connector installs the Cumulus Asset app that allows users to browse assets in the remote (Cumulus) DAM.
CAS module enables Central Authentication Service (CAS) in Magnolia. CAS is a single sign-on (SSO) Web protocol that permits a user to log in once to a system and then automatically gain access to all related systems to which they have been granted permission as per their credentials. This avoids the need to log into each system individually. The Magnolia CAS module handles authentication only. When a user logs into CAS, the system authenticates their identity to participating services because the user has been authenticated to CAS.
LDAP Connector module is a JAAS login module that connects to any LDAP v3 directory service. The LDAP Connector is used in intranet environments where an enterprise user management infrastructure already exists. With JAAS you can meet single sign-on requirements or connect to legacy LDAP servers.
Magnolia uses Ehcache for back-end cache functionality by default. This is provided by the Ehcache module. Ehcache is a robust, proven and full-featured cache product which has made it the most widely-used Java cache.
Memcached module adds the advantages of a distributed cache. Memcached is a high-performance, distributed memory object caching system that allows you to share cache items between multiple Magnolia instances. Additional benefits include persistence of cached items after restart of a Magnolia instance and running memcached servers on any server in the network, conserving server memory.
Advanced Dynamic Page Caching module uses the SiteMesh 3 for dynamic page caching. The module allows you to cache static content on an otherwise dynamic page. You can mark which areas and components are dynamic. Magnolia will cache all static content and only renders the dynamic components per request. You can also set a different time-to-live on the dynamic components.
IBM Websphere Commerce
IBM WebSphere Commerce Integration module connects a WebSphere Commerce store to Magnolia. WebSphere Commerce is popular, enterprise-grade e-commerce platform that offers many back-end integrations including payment gateways, warehouse management, call-center management and more. You can use store content within a Magnolia website in a manner that resembles working with native Magnolia content. The module also provides access to shopping cart management, checkout and payment processing powered by WebSphere Commerce.
KonaKart Connector module connects a KonaKart store to Magnolia. KonaKart is a Java-based eCommerce solution for retailers of all sizes. It offers features such as multiple stores and payment gateway integrations. The module exposes the content of the store using standard Magnolia components that can be displayed on the website. Users (shoppers) can manage their account and wish list, and complete the checkout process. The module installs the Products Browser app that allows users to browse stores within Magnolia.
commercetools Connector module allows users to connect a commercetools project to Magnolia. commercetools is a Java-based eCommerce solution for retailers of all sizes.
Ovata connector is a third-party module offered by Ovata E-Commerce. They offer an enterprise grade e-commerce solution that you can easily customize to match your requirements. Together with Magnolia, Ovata provides a powerful platform for all of your e-commerce activities.
xai labs MMConnector™ is the third-party connector available from xailabs GmbH. It is a powerful tool that connects Magnolia to the Magento e-commerce platform. You can easily place products from your Magento store on a Magnolia page to create a content driven shopping experience.
Blossom module makes the Spring Framework available for Magnolia. With Blossom you can create components that display a high level of dynamic behavior. The components can be used by editors to create truly interactive web pages. The Spring Framework application stack makes it easier to connect to business systems that fetch the information you want to present in your pages. The Blossom module provides:
- Programmatic registration: Dialogs, page templates and components can be registered by code or annotations rather than configuration.
- Spring MVC or WebFlow for page templates and components: This allows you to combine Spring with the authoring facilities of Magnolia.
- Pre-execution of components: Enables the use of redirects and forwards in the execution of a component. The execution is bound to a specific component allowing you to have multiple instances of the same component on the same page.
Cloud Foundry Integration module provides the adjustments necessary to easily deploy Magnolia on Cloud Foundry. Cloud Foundry is an open-source, cloud computing platform as a service (PaaS) originally developed by VMware. The platform provides a technical stack that includes the run-time and services on top of a cloud infrastructure. Users can build and deploy any kind of application without the cost and complexity of buying and managing the underlying hardware and software, and provisioning hosting capabilities.
RabbitMQ module bundle provides an alternative way of publishing content and synchronizing instances in Magnolia. Magnolia RabbitMQ modules are suitable for environments consisting of more than five public instances and environments that need to synchronize with other environments.
Marketing and CRM
External Forms Eloqua module implements the External Forms module for Oracle's Eloqua. The module connects Magnolia to Eloqua and enables rendering of forms configured in Eloqua on Magnolia pages. Eloqua is marketing automation software.
External Forms Infusionsoft module implements the External Forms module for Infusionsoft. The module connects Magnolia to Infusionsoft and enables rendering of forms configured in Infusionsoft on Magnolia pages. Infusionsoft offers an e-mail marketing and a sales platform for small businesses
IBM Marketing Cloud
Silverpop module connects Magnolia to the IBM Marketing Cloud, which was formerly known as Silverpop. It is a cloud-based digital marketing provider that offers email marketing, lead-to-revenue management and mobile engagement solutions. The module allows you to personalize content based on powerful scoring models aggregated by the visitor's behavior.
Salesforce module connects Magnolia to Salesforce. Salesforce is CRM software that allows you to capture and enrich leads. Magnolia's personalization feature can retrieve information from Salesforce to provide tailored content to Web visitors.
SugarCRM module connects Magnolia to SugarCRM. SugarCRM is CRM software and functionality includes sales force automation, marketing campaigns, customer support, collaboration, Mobile CRM, Social CRM and reporting. Magnolia's personalization feature can retrieve information from SugarCRM to provide tailored content to Web visitors.
The Google Sitemap app creates an XML sitemap file that lists URLs for each page. Sitemaps are used to tell search engines which pages they should index. This improves search engine optimization (SEO) by ensuring that all site pages are found and indexed.
Solr module uses the Apache Solr search platform to index and crawl Magnolia content. Solr is a standalone enterprise search server with a REST like API. Solr uses the Lucene library for full-text indexing and provides faceted search, distributed search and index replication. You can use Solr to index content in an event-based or action-based fashion.The bundle consists of two modules: Content Indexer and Search Provider.
Content Translation Support module allows you to export and import page content in translation-friendly XLIFF, CSV and Excel formats. You can send a file to a translator and import the translated content back. The file includes context information and a link back to the page to make translation easier. Export formats are pluggable and can be extended to support a custom format. The module comes with a Content Translation app.
Extended content translation
Content Translation Support Extend module bundle consists of five modules that extend the functionality of the Content Translation Support module. Out of the box the modules provide automatic content translation by external translation services: Google Translate and Microsoft Translator, content translation workflow and workflow integration with external provider Translations.com.
Magnolia can be integrated in various ways ranging from filters and servlets to full Java framework integration.
REST service and API
Magnolia REST module provides preconfigured REST endpoints for
commands allowing you to manipulate content through a Web API. You can create, read, update and delete nodes and properties in any JCR workspace. You can also execute commands to activate, export and import content. The REST modules also eases the creation of custom endpoints.
See also REST API
REST client module enables easy creation, configuration and usage of REST clients. The module uses RESTEasy, provides an app to test clients and includes
templating functions that give access to REST clients within FreeMarker template scripts. You also can obtain a REST client within Java to build apps, custom fields for dialogs and similar things.
Connecting to non-JCR data
Content app with non-JCR content tutorial provides a step-by-step guide to creating an app that operates on data stored outside the JCR repository. The tutorial shows you how to create a custom content connector which is key to connecting to external content. The example app uses the content app framework but stores data on the local file system. It is an example of connecting to a custom data source. Editors don't have to leave Magnolia in order to work on third-party data. The tutorial is supplemented by the Creating a custom content app tutorial that takes you through the process of connecting Magnolia to Flickr. This example photo app uses Flickr Web services as a remote data source.
Additional filters can be added in the filter chain or
web.xml file. If you add them in the filter chain you benefit from Magnolia features such as security and caching. The additional filter can take over the handling of the request or delegate it to the remaining filter chain.
Custom filters explains how to create and configure a custom Filter.
An independent servlet can be registered in the servlet filter. The easiest way to do so is to register the servlet in the module descriptor. If the servlet maps to the request it will be responsible for rendering.
Example: Responding to a request with a servlet:
- A request arrives to the Magnolia filter chain.
- The request is mapped to a servlet (red box).
- The servlet handles the response.
Registering a servlet explains how to create and register a servlet.
Forwarding a request
As the Magnolia main filter is registered on forward, any servlet or filter can internally forward to a Magnolia page. This is normally used if the servlet executes some business logic but the result should be rendered in a Magnolia page. This strategy is often used to combine Magnolia with other frameworks. The servlet typically puts the results into the request attributes which are exposed in Magnolia through the context.
Example: A servlet within Magnolia (blue box) forwards the request to another page:
- A request arrives to the Magnolia filter chain.
- The request is mapped to a servlet.
- The servlet forwards the request to a different page.
- The filter chain is re-executed.
- A page is rendered.
A custom renderer is needed if you would like to support different template script languages or want to perform additional processing. The template definition will then be of custom type. If you need to delegate the rendering to a servlet you can use a template definition of type
servlet. Creating a custom renderer explains how to create your own renderer.
Model is a Java program that holds your business logic. The model can do any task required (such as execute a Google search or calculate an insurance policy).
A template definition can be used to further define a modelClass.
- The model holds the results of the logic execution and passes them to a renderer.
- The renderer includes the results on the page as instructed by the template script.
- The script contains placeholders for content attributes (such as headings, images and the results of the business logic execution) and tells the renderer where to place the content.
See also Model.
Direct calls to rendering engine
Any Java code can call the rendering engine to let it render pages or paragraph snippets. The caller will pass a
Writer object to which the result is written. If you use a
ByteArrayOutputStream the result can be read into a
This is only possible if all involved template scripts are FreeMarker scripts. JSP scripts depend on a request.
Web services, AJAX and snippets
External applications can make requests to Magnolia to get rendered content/snippets. Magnolia supports for instance direct requests to components.
For example, to render just the teasers on the About page, request the teaser component's own URL:
Reading content directly
If the Magnolia context is initialized, which is for instance the case if the context filter was executed, you can read content directly from it: