The US Navy needed a new Content Management System, but had already developed several great applications and had an investment in Spring. Could they bring it all together?
During this webinar, you will learn how Campbell Ewald (Navy's digital agency) used Magnolia's Blossom module for straightforward app integration and how Blossom enabled Spring developers to work efficiently with Magnolia CMS right from the start.
This Webinar is for Spring Developers of all levels, as well as Developers and IT professionals interested in application integration for business solutions.
Creating a separate mobile website is a great idea until someone changes a data source on you. Your users don’t care if your LDAP is down or why they can’t pull up next the class schedule for next semester. In this session you will learn how to plan for the worst; network outages, slow response times and unorganized data. The mobile Web isn’t very useful without content and often that content is gathered from many sources that are out of the developers control. Gathering, protecting and organizing that data is the job of a smart developer and a successful mobile Web presence. This is accomplished by adding an API layer to everything you do. This session will walk you through the ins and outs of creating and maintaining a Web API that can extend far beyond your mobile presence.
The user synchronization is normally made via sync_all_dns script that synchronize users information from LDAP to the EMPINST.EMPLOYEE table. If you synchronize a field such as “telephone number” when a user edits the value in IBM Connections at next run of sync_all_dns script the change is lost. To avoid this problem you must setup the synchronization from EMPLOYEE table to LDAP by using the script process_draft_updates.sh
Maven 2 is a powerful tool that promotes convention over configuration and you need to
integrate it into one of the popular integrated development environments (IDEs) called
eclipse to make your work easier, thus increasing your productivity and project quality. This
tutorial provides an example of how to make Maven and Eclipse collaborate. Also covers the
popular JSF Web framework.
Creating a separate mobile website is a great idea until someone changes a data source on you. Your users don’t care if your LDAP is down or why they can’t pull up next the class schedule for next semester. In this session you will learn how to plan for the worst; network outages, slow response times and unorganized data. The mobile Web isn’t very useful without content and often that content is gathered from many sources that are out of the developers control. Gathering, protecting and organizing that data is the job of a smart developer and a successful mobile Web presence. This is accomplished by adding an API layer to everything you do. This session will walk you through the ins and outs of creating and maintaining a Web API that can extend far beyond your mobile presence.
The user synchronization is normally made via sync_all_dns script that synchronize users information from LDAP to the EMPINST.EMPLOYEE table. If you synchronize a field such as “telephone number” when a user edits the value in IBM Connections at next run of sync_all_dns script the change is lost. To avoid this problem you must setup the synchronization from EMPLOYEE table to LDAP by using the script process_draft_updates.sh
Maven 2 is a powerful tool that promotes convention over configuration and you need to
integrate it into one of the popular integrated development environments (IDEs) called
eclipse to make your work easier, thus increasing your productivity and project quality. This
tutorial provides an example of how to make Maven and Eclipse collaborate. Also covers the
popular JSF Web framework.
Discussion of the Web UI features in Spring Roo. Spring Roo is a Java-based rapid application development framework. This presentation was given by me at SpringOne 2GX Americas in October 09.
If you want display Portal url without context and rich state, for example :
From /wps/portal/home/shop/shoes/!ut/p/104_05dsffds90..
To /home/shop/shoes
this article explain how to do that.
Customize it! Make IBM Connections look your way Klaus Bild
My session at Dominopoint Days 2013 in Milano
IBM Connections offers endless customizing possibilities in order to change the platform according to your needs . In this session we will explore the many customization options available and will look at some examples like customizing the UI, notifications, blog themes, profiles or even metrics reports.
This will give you an idea of the various possibilities Connections is offering and should act as a starting point for your own customizations.
Apps can take advantage of Magnolia CMS' built-in best-practice framework, reducing development time and improving end-user experience. They're also faster to develop, easier to maintain and more secure on account of Magnolia CMS' sophisticated, documented Apps API and encapsulated environment.
Fisl 11 - Dicas de Desenvolvimento Web com RubyFabio Akita
Performance de sites não tem a ver com a linguagem usada por baixo. O impacto maior é a arquitetura. Nesta palestra falo sobre YSlow, Resque e Solr como algumas das coisas que podemos fazer para melhorar a performance/escalabilidade de aplicações web.
This talk introduces the role that Spring MVC and REST can play as a service-side endpoint model that can be connected to from mobile, rich, and desktop applications.
This meetup will bring us back to basics with a bootstrapping session on building an all Javascript web application on a MEAN Stack:
• MongoDB - NoSQL DB
• ExpressJS - Server Application Framework
• AngularJS - Client Application Framework
• NodeJS - Application Platform
I'll cover the basics of getting bootstrapped with Node.js and building out a fully featured web application from backend-to-frontend. I'll highlight some of the advantages of an all javascript web application as well as show some development tips leveraging gruntJS based on Nate's presentation last meetup.
Today's applications don't live in a vacuum - you need to take the applications to where your users are. Let Spring's REST support along with its powerful client-side technology support, help you get there faster.
Migrating MVC to theFront-end usingBackbone JS.
Planbox is a single-page web application for Agile project management. It was built using the traditional MVC stack with CodeIgniter (PHP) and jQuery (Javascript). AJAX was heavily used to update DOM elements to offer a dynamic user experience. UX logic code quickly became spread across Javascript and PHP. The application code base quickly became unmanageable and scaling functionality became difficult. Things had to change.
A decision was made to change architecture: bring all the UX logic in the front-end, and turn the back-end into an engine in charge of business logic.
This talk is about this experience. How we moved the MVC stack from the back-end to the front-end. How we used Backbone JS as the foundation of our front-end framework and built on top. How the backend became a black-box with a Restful API. What lessons we learned, what benefits we gained, and what reflections we made about the future of MVC in Javascript.
Using Magnolia in a Microservices ArchitectureMagnolia
Want to learn how to manage and deploy Magnolia in a microservices architecture? Here we will present the main patterns identified in such an architecture and describe how to implement them with Magnolia. We demonstrate an experimental approach based on Docker to create and orchestrate several microservices connected to Magnolia.
Discussion of the Web UI features in Spring Roo. Spring Roo is a Java-based rapid application development framework. This presentation was given by me at SpringOne 2GX Americas in October 09.
If you want display Portal url without context and rich state, for example :
From /wps/portal/home/shop/shoes/!ut/p/104_05dsffds90..
To /home/shop/shoes
this article explain how to do that.
Customize it! Make IBM Connections look your way Klaus Bild
My session at Dominopoint Days 2013 in Milano
IBM Connections offers endless customizing possibilities in order to change the platform according to your needs . In this session we will explore the many customization options available and will look at some examples like customizing the UI, notifications, blog themes, profiles or even metrics reports.
This will give you an idea of the various possibilities Connections is offering and should act as a starting point for your own customizations.
Apps can take advantage of Magnolia CMS' built-in best-practice framework, reducing development time and improving end-user experience. They're also faster to develop, easier to maintain and more secure on account of Magnolia CMS' sophisticated, documented Apps API and encapsulated environment.
Fisl 11 - Dicas de Desenvolvimento Web com RubyFabio Akita
Performance de sites não tem a ver com a linguagem usada por baixo. O impacto maior é a arquitetura. Nesta palestra falo sobre YSlow, Resque e Solr como algumas das coisas que podemos fazer para melhorar a performance/escalabilidade de aplicações web.
This talk introduces the role that Spring MVC and REST can play as a service-side endpoint model that can be connected to from mobile, rich, and desktop applications.
This meetup will bring us back to basics with a bootstrapping session on building an all Javascript web application on a MEAN Stack:
• MongoDB - NoSQL DB
• ExpressJS - Server Application Framework
• AngularJS - Client Application Framework
• NodeJS - Application Platform
I'll cover the basics of getting bootstrapped with Node.js and building out a fully featured web application from backend-to-frontend. I'll highlight some of the advantages of an all javascript web application as well as show some development tips leveraging gruntJS based on Nate's presentation last meetup.
Today's applications don't live in a vacuum - you need to take the applications to where your users are. Let Spring's REST support along with its powerful client-side technology support, help you get there faster.
Migrating MVC to theFront-end usingBackbone JS.
Planbox is a single-page web application for Agile project management. It was built using the traditional MVC stack with CodeIgniter (PHP) and jQuery (Javascript). AJAX was heavily used to update DOM elements to offer a dynamic user experience. UX logic code quickly became spread across Javascript and PHP. The application code base quickly became unmanageable and scaling functionality became difficult. Things had to change.
A decision was made to change architecture: bring all the UX logic in the front-end, and turn the back-end into an engine in charge of business logic.
This talk is about this experience. How we moved the MVC stack from the back-end to the front-end. How we used Backbone JS as the foundation of our front-end framework and built on top. How the backend became a black-box with a Restful API. What lessons we learned, what benefits we gained, and what reflections we made about the future of MVC in Javascript.
Using Magnolia in a Microservices ArchitectureMagnolia
Want to learn how to manage and deploy Magnolia in a microservices architecture? Here we will present the main patterns identified in such an architecture and describe how to implement them with Magnolia. We demonstrate an experimental approach based on Docker to create and orchestrate several microservices connected to Magnolia.
Integration and Batch Processing on Cloud FoundryJoshua Long
This talk explores the new possibilities for scale by using Spring Integration, Spring Batch and RabbitMQ on Cloud Foundry, the open source PaaS from VMWare.
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech TalkRed Hat Developers
Are you familiar with the tight coupling of apps with their underlying platform that makes change hard or lack of scalability, performance, and flexibility of existing apps built with legacy technology or the fact that re-architecting apps cannot be done overnight? If yes to any of these, you probably think that you have “Cloud-Native Modernization or Death”. But what if there is another way that shows you the incremental steps to refactor the application to microservices and make use of Kubernetes/OpenShift to effectively deploy and manage it at scale on the cloud? This session guides developers on how to get started on their cloud-native journey, starting with monolithic application migration to a modern container platform using Kubernetes/OpenShift, and modernizing applications using microservices and Red Hat Cloud-Native Runtimes (Spring Boot and Quarkus).
Gear6 and Scaling Website Performance: Caching Session and Profile Data with...Gear6
This is a presentation given on April 14, 2009 to a select group of current memcached users. It includes survey results of how the dynamic web has given rise to the distributed caching tier, describes the growing popularity of memcached, provides poll results from memcached users and offers overview of the Gear6 Web Cache solution. Gear6 will be at the 2009 MySQL Conference at booth #218. Or visit us at Gear6.com.
Today's Cloud environments poses new challenges for application developers: Hiding Cloud infrastructure from business logic, assembling components on heterogeneous and distributed Cloud environment, optimizing the provisioning of the required Cloud resources and moving application components around to recompose the application. This presentation will demonstrate how to use Apache Tuscany and the Service Component Architecture (SCA) to assemble an application composed of several service components (written in Java, Python and C++) and deploy it to a distributed Cloud (EC2, Eucalyptus, Google AppEngine). We will show how to take the SCA assembly and automate the provisioning and configuration of the cloud platform services required by the application components on each platform, using Apache Libcloud and Apache Deltacloud. We will also illustrate how to encapsulate Cloud infrastructure services (Data store, queueing etc) as SCA components to simplify the construction and assembly of the application, and how to move components around, rewire the application to adjust to new business and Cloud deployment conditions.
VMware vFabric - Webinar with CIO MagazineAl Sargent
This presentation covers four things:
1. Why every business is a software business
2. The clear trends with VMware vFabric customers and prospects
3. Cloud Scale and Economics
4. Pricing Comparisons of vFabric to Competitors
Read an article summarizing the presentation and access the recording here: http://blogs.vmware.com/vfabric/2012/11/why-is-vfabric-on-the-cio-agenda-trends-and-economics.html
Highly Scalable User Experience Design: Vaadin and MagnoliaMagnolia
In this session, attendees will learn how Magnolia uses Vaadin to implement a dynamic and extensible user interface for its products and custom applications.
The Open Suite Approach: How to ride the shock waves of a changing webbkraft
Session: "Founders inventing the future" @ jboye arhuus conference 2014
Today, you might be concerned about Customer Experience Management. 10 years from now, the business you are in today might not even exist anymore. When the Internet of Things happens for real, change will be very swift, and it will touch every enterprise. Your business will turn into a Digital Business – or fail. So how can you ride the shock waves of a changing web?
Many marketing teams commit too quickly to a single vendor’s promise of solving all your issues right here, right now. We believe that to succeed in an ever changing web, your most important decision today is that of the web infrastructure. It should be solid, flexible, ease-to-use and highly customizable, be mobile-ready and be able to integrate with anything quickly -– from CRM to ERP to E-commerce to a myriad of marketing tools. In other words, it needs to take into account that the future is uncertain, with or without the disruption of the internet of things and the rise of digital business. To go there, we propagate an Open Suite approach – in essence the choice of a solid platform that allows you to quickly integrate whatever you need most, a platform that allows you to unify your customer communication and interaction and to combine the best available tools for the job without any vendor restrictions.
The talk will introduce you to the coming age of digital business, highlight the benefits an Open Suite approach to your web infrastructure and prepare you for your future as a digital business manager.
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...bkraft
Muss ein Unternehmen Webinhalte auch auf mobile Geräte bringen? In welcher Form macht das Sinn? Welchen Mehrwert bieten Inhalte als Apps? Und brauchen wir überhaupt noch noch Webseiten? Oder reicht eine Facebook Präsenz? Liest noch jemand eine Pressemitteilung? Liest noch jemand Zeitung? Traut der Kunde dem Kundenberater – oder doch eher dem Internet?
Welchen Einfluss hat die mobile Revolution auf Unternehmen? Wir betrachten die veränderten Kundenerwartungen, das veränderte Kundenverhalten und wie Unternehmen darauf reagieren müssen.
Dabei spielt Content Management eine wesentlich grössere Rolle als vielen Unternehmen bewusst ist. Wir gehen der Frage nach: Was ist ein CMS heute, und warum ist es für ihre Zukunft wichtiger denn je?
Da Menschen mehrmals täglich zwischen den Geräten wechseln, mit denen Sie auf dem Web surfen, können wir "Mobil" nicht als losgelösten Kommunikationskanal betrachten, denn das würde (ohne aufwändige Gegenmassnahmen) zu einem unbefriedigenden Kundenerlebnis, und somit zu Kundenverlust führen. Um das Problem zu lösen, ist eine Kommunikationszentrale nötig, wie z.B. Magnolia, welche wie ein Doppeltrichter fungiert: auf der einen Seite werden sämtliche Daten von Drittsystemen eingespeist, inkl. kundenspezifischer Applikationen, ERP Systeme etc. Auf der anderer Seite werden die durch den Kommunikationshub aufbereiteten Rohdaten publiziert: aufs Web, Mobiles Web, Apps, POS usw.
Magnolia Conference 2013 took place at Cinema Pathé Küchlin in Basel, Switzerland, September 18-19. This is the keynote by CTO Boris Kraft and CEO Pascal Mangold that kicked the conference off.
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5bkraft
Engaging your customers anywhere and on any device is critical to business success. Watch this webinar with Magnolia CEO Pascal Mangold and CTO Boris Kraft to find out how Magnolia CMS gives you a strategic advantage.
Philipp Bärfuss, Head of Product Development at Magnolia, presents the tools and technologies available in Magnolia 5 for building an integrated content management hub encompassing all digital channels.
Increase Online Sales with Magnolia CMS' Shop Modulebkraft
The Magnolia CMS Shop module is a toolkit that adds e-commerce functionality to Magnolia CMS and makes it possible to enhance shop pages with compelling content that attracts new customers and increases sales.
This webinar will demonstrate how to build unique, branded online storefronts that are tightly integrated with Magnolia CMS’ intuitive editing and administration tools.
Virtual Presence Management at Magnolia Amplify Miami 2013bkraft
Today's enterprises all have a website. A manifestation of web content, text, images and multimedia, delivered across various online channels. However, the web and its users are not what they used to be and it's no longer enough to rely on static brochureware websites. These days, users demand convenient and integrated online services.
Where enterprise sites start to differ, is in their innovative use of back-end IT systems and data to develop unique online services and deliver more intimate web experiences.
By offering more online services, such as e-booking and provision of information and putting less demand on physical resources e.g. call centers and retail stores, companies can save costs and develop stronger online relationships with customers and end users.
This talk presents Magnolia's vision and the existing technology to make VPM a reality. It also looks at how VPM and WEM differ in their viewpoint.
These slides have been presented at the Magnolia Amplify Miami 2013 event, and the second part of the talk was held by Matt Arriaga of Manatee County, who presented the Virtual Presence they have built to provide more and better service to their community through the concepts and technology presented here.
Performance is not only about web experience, but also about how many visitors your website can handle at peak times. In this presentation, you will hear straight from the horse's mouth how the biggest broadcasting operation in the Middle East, with a viewership of 165 million people, has worked with Magnolia, the CMS, as well as Magnolia, the vendor, to maximize performance.
Multilingual websites, microsites and landing pagesbkraft
Global markets and immigration require organizations to run multilingual websites so they can reach their audience in their language, inside or outside their home base. Add landing pages and micro-sites to the mix to better focus on a specific audience, use case or market. Magnolia CMS allows you to combine all of these to create highly effective marketing communications.
At the heart of every organization are processes and data stored away in systems of record. Often, the related business logic is implemented with the Spring Framework. Magnolia CMS enables you to bring up this data for direct interaction with your customers, members or citizens through your interaction channels – the web, mobile and others – to generate significant additional value both for them and for your organization.
Slides from a presentation I gave at the CMS Experts Europe meeting in London in Feb. 2013. I talked about how I try to stay sane and discussed with the members what they do in terms of work life balance. The talk was mostly based on an opinion piece in the NYT, which is referenced at the end, because it reflected my thinking about the matter.
This session will introduce the PHPCR initiative that aims to bring the JCR API to PHP. It will also show how to interact with the content stored inside Magnolia from PHP via HTTP, enabling integration of Magnolia content into PHP websites.
Solr and Image Module Extensions of Magnoliabkraft
Solr Search Engine Integration
We have made some changes to the Magnolia Solr module which will be highlighted. These include: full multi-site support, support for multiple Solr instances, control over which pages to index by using template configurations and Solr document field configurations. The result is a fully configurable module that is easy to maintain. After finishing up out leftover to dos we hope to publish the module to the Magnolia Forge.
Parameter-Based Image Transformations
As we are becoming more and more focused on creating responsive web designs that scale well across various view ports we are experiencing a proliferation of image variations and increasingly complex frontend code to switch between them. In our previous CMS we could create image transformations with request parameters, and we decided to introduce that feature to Magnolia. The implementation and design decisions will be discussed.
Filesystem Image Variation Caching
Magnolia's Imaging module uses the JCR imaging workspace to cache rendered image variations. This has two disadvantages: performance and a larger backup; and no advantages that we are aware of. So we have created a file-based image cache by creating a custom ImageStreamer implementation. The file system path is equal to the JCR path for caching images: the path of the image node plus a reference to the site defenition and the variation name. Because the Imaging servlet currently does not allow you to configure which ImageStreamer instance you want to use for serving cached images, we created our own version of the servlet that uses our own ImageStreamer version.
We've been using this for some time now and image variations are served noticeably faster, while our backup is significantly smaller.
MBC Group is the largest broadcaster in the Middle-East, with a 50% share of the audience and over 160 million viewers. Millions of visitors come to the MBC website for news and information on the channels and shows. This poses an interesting challenge for the CMS behind it all: Magnolia.
Adriaan Bloem will explain how MBC came to select Magnolia, and how it was adapted to fit the unique requirements of a large media site. He will touch on content management concepts, and how a page-oriented system can enable placeless content. In short: how with a Swiss foundation and some German engineering, you can have your cake -- and eat it, too.
Bridging the Gap: Magnolia Modules and Spring Configured Softwarebkraft
ntegrating custom software into Magnolia modules is a given nowadays. Only, all to often the frustration starts when you're using numerous modules and their Spring contexts and other configurations; this can be a real hassle. At Orange11 we do quite a bit of integrating Spring configured custom software into Magnolia modules. For example: when we need to load content from an external database into the Data module, or when we want to create a Blossom dialog that renders a select box based on results from an external web service.
We usually create a separate, reusable and testable modules. The services that need to be exposed are configured in a number of Spring contexts. When you are using a lot of these modules, the context management isn't ideal. Loading several contexts, editing the web.xml, for all modules. That's why we're introducing the Magnolia Spring Context Loading Module and we want to take this opportunity to tell you all about it. After this track you will be able to neatly integrate your Spring configured software, while taking full advantage of Magnolia's rich dynamic configuration.
User Management and SSO for Austrian Governmentbkraft
Austrian law mandates a standardized system for user management and single-sign-on for use in Austrian government institutions. The LFRZ is one of the main providers of conformant software solutions for this sector. We show how Magnolia was integrated into this system, and the challenges faced and overcome in doing so.
In order to meet customer requirements the LFRZ has created several interesting modules that build on magnolia's powerful imaging functionality. Features added include metadata import, metadata export, captcha-image generation and handling of PDFs. We will demonstrate these features in action, explain the motivation enterprise customers have for extending magnolia in this way, and show we implemented these features building on magnolia's imaging functions.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
2. CAMPBELL
EWALD
ABOUT THE WEBINAR
Posting Questions
Viewing the recorded
webinar and related
materials
Contacting Us
Tweeting - use hash tags:
#magnolia_cms #campbellewald
#springframework #springmvc
#USNavy
2 WEBINAR
3. CAMPBELL
EWALD
ABOUT US
MATT
DERTINGER
SOLUTIONS
ARCHITECT,
INTERACTIVE
R&D,
CE
DETROIT
CAMPBELL
EWALD
Twi9er:
@ma9nolia
SEAN
MCMAINS
SALES
ENGINEER
MAGNOLIA
CMS
sean.mcmains@magnolia-‐CMS.com
TOBIAS
MATTSSON
SENIOR
SOFTWARE
ENGINEER
&
BLOSSOM
DEVELOPER
MAGNOLIA
CMS
tobias.ma9sson@magnolia-‐cms.com
3 WEBINAR
4. CAMPBELL
EWALD
ABOUT CAMPBELL EWALD AND MAGNOLIA
CAMPBELL EWALD
Digital Agency
Magnolia Partner
General Motors, Kaiser Permanente, US Postal Service
Magnolia
Java-based Content Management System
Community and Enterprise Editions
Sony, Deloitte, Airbus and JBoss
4 WEBINAR
5. CAMPBELL
EWALD
WHAT WE’LL TALK ABOUT
Overview of Magnolia Blossom module
Navy Use Cases
Step-by-Step Walkthrough
Questions
5 WEBINAR
7. CAMPBELL
EWALD
A LITTLE PHILOSOPHY
The idea that sparked me writing the Blossom Module
for Magnolia CMS was to bring the CMS and
especially the content into Spring Web MVC not the
other way around. Controllers should be the building
blocks when composing pages.
– Tobias Mattsson
http://tobias-mattsson-magnolia.blogspot.com/2011/03/spring-web-mvc-with-content.html
7 WEBINAR
8. CAMPBELL
EWALD
WHAT’S BLOSSOM
Spring integration module for Magnolia
CMS
Spring Web MVC with Content
Key features:
Annotation based API
Spring controllers exposed as template
components
Pre-execution of template components
8 WEBINAR
9. CAMPBELL
EWALD
WHY USE BLOSSOM
Leverages proven Spring Framework
Easily integrate or migrate existing Spring-based applications
Spring developers will feel right at home
Dynamic dialogs,Virtual URI Mappings, Pre-execution
Easily access content in controllers
Best practice web app design patterns (MVC, IoC, AOP)
Open Source and Free to download and use
9 WEBINAR
11. CAMPBELL
EWALD
ABOUT NAVY.COM
Official recruitment Website for
the U.S. Navy
Redesigned in 2010, moved to
Magnolia CMS
Application integration for
subscription services, CRUD
functionality and user-space
applications
11 WEBINAR
12. CAMPBELL
EWALD
BLOSSOM + RESTEASY
Navy.com
Navy Custom Module
RESTEasy provided nice
Blossom JAX-RS client
Aligned with Magnolia CMS
roadmap
Navy Web Service Registry Allowed business
Business Component 1 Business Component 3 components to be loosely-
Business Component 2 Business Component n
coupled to CMS
12 WEBINAR
13. CAMPBELL
EWALD
BLOSSOM EXAMPLES
Request More Information (Lead) Forms
Find a Recruiter
Subscriber
Life Ops
Reserve Pay Calculator
Training Locations Map
Poll
13 WEBINAR
14. CAMPBELL
EWALD
FIND A RECRUITER
Finds the nearest Enlisted and Officer
Recruiter Locations based on the postal
code entered by the site visitor
Collect and validate input, call Navy Web
Service, display results.
14 WEBINAR
15. CAMPBELL
EWALD
LIFE OPS
Personality Profile Test to help
potential recruits plan their
future
Wizard type interface
Collect and validate selected
options from site visitor, populate
model, then calculate and display
results
15 WEBINAR
16. CAMPBELL
EWALD
STANDARD TEMPLATING KIT
The STK is a production-
ready website construction
framework.
• Best Practices
• Rapid Prototyping
• Modular Architecture
• Extensible
• Standards-Compliant
16 WEBINAR
18. CAMPBELL
EWALD
GETTING STARTED
Starting Spring - Add the Blossom Servlet Context Listener to your web.xml
<listener>
<listener-class>info.magnolia.module.blossom.support.ServletContextExposingContextListener</listener-class>
</listener>
Create a module for your custom Spring application components, quickest way:
$ mvn archetype:generate -DarchetypeCatalog=http://nexus.magnolia-cms.com/content/groups/public/
Have your module class extend BlossomModuleSupport and implement start and stop
methods:
public class BlossomSampleModule extends BlossomModuleSupport implements ModuleLifecycle {
public void start(ModuleLifecycleContext moduleLifecycleContext) {
initRootWebApplicationContext("classpath:/applicationContext.xml");
initBlossomDispatcherServlet("blossom", "classpath:/blossom-servlet.xml");
}
public void stop(ModuleLifecycleContext moduleLifecycleContext) {
destroyDispatcherServlets();
closeRootWebApplicationContext();
}
}
18 WEBINAR
19. CAMPBELL
EWALD
SPRING BEAN CONFIGURATION
Create a Spring bean config file called applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:blossom="http://www.magnolia-cms.com/schema/blossom"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.magnolia-cms.com/schema/blossom http://www.magnolia-cms.com/schema/blossom-1.2.xsd">
<blossom:configuration />
</beans>
19 WEBINAR
26. CAMPBELL
EWALD
LIFE OPS SPRING VALIDATOR
public class LifeOpsValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return LifeOps.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
LifeOps lifeOps = (LifeOps) target;
if (lifeOps.getActivities() == null || lifeOps.getActivities().length == 0) {
errors.rejectValue("activities", "activities.required", "Please choose at least one activity before proceeding.");
}
if (lifeOps.getInterests() == null || lifeOps.getInterests().length == 0) {
errors.rejectValue("interests", "interests.required", "Please choose at least one interest before proceeding.");
}
if (lifeOps.getCareers() == null || lifeOps.getCareers().length == 0) {
errors.rejectValue("careers", "careers.required", "Please choose at least one career before proceeding.");
}
}
}
26 WEBINAR
27. CAMPBELL
EWALD
LIFE OPS CONTROLLER
@Controller
@RequestMapping("/life-ops")
@Paragraph("Life Ops form")
@ParagraphDescription("Adds a Life Ops form and displays Life Ops Results")
@I18nBasename("com.c_e.webinar.magnolia.module.blossomsample.messages")
public class LifeOpsController {
private static final Logger log = LoggerFactory.getLogger(LifeOpsController.class);
private final String LIFE_OPS_FORM_PATH = "life-ops/form";
private final String LIFE_OPS_SHOW_PATH = "life-ops/show";
@Autowired
private Validator validator;
@RequestMapping(method = RequestMethod.GET)
public String form(LifeOps lifeOps) {
return LIFE_OPS_FORM_PATH;
}
...
}
27 WEBINAR
30. CAMPBELL
EWALD
LIFE OPS CONTROLLER
@TabFactory("Settings")
public void addTab(TabBuilder builder) {
builder.addEdit("activitiesText", "Activities Text", "A short description for the activities fieldset");
builder.addEdit("interestsText", "Interests Text", "A short description for the interests fieldset");
builder.addEdit("careersText", "Careers Text", "A short description for the interests fieldset");
builder.addFckEditor("resultsText", "Results Text", "A short intro for the results page");
}
30 WEBINAR
31. CAMPBELL
EWALD
LIFE OPS VIRTUAL URI MAPPING
@VirtualURIMapper
public class LifeOpsURIMapper {
private Pattern pattern;
public LifeOpsURIMapper() {
this.pattern = Pattern.compile("^/life-ops/results/([0-1]?[0-8])/([0-1]?[0-8])/([0-1]?[0-8])/([0-1]?[0-8])/([0-1]?
[0-8])/([0-1]?[0-8])/?");
}
public String mapping(String uri, HttpServletRequest request) {
this.pattern = Pattern.compile("^/(" + STKUtil.getSite().getName()
+ "/)?life-ops/results/([0-1]?[0-8])/([0-1]?[0-8])/([0-1]?[0-8])/([0-1]?[0-8])/([0-1]?[0-8])/([0-1]?
[0-8])/?");
Matcher matcher = pattern.matcher(uri);
if (matcher.matches()) {
return matcher.replaceAll("forward:/" + STKUtil.getSite().getName()
+ "/life-ops/results/?advisor=$2&doer=$3&innovator=$4&persuader=$5&planner=$6&problemSolver=$7");
}
return null;
}
}
31 WEBINAR
32. CAMPBELL
EWALD
LIFE OPS FORM VIEW
[#assign cms=JspTaglibs["cms-taglib"]]
[#assign form=JspTaglibs["http://www.springframework.org/tags/form"]]
<div>
[@cms.editBar /]
[@form.form id="life-ops-form" modelAttribute="lifeOps"]
...
<fieldset>
<legend>Activities</legend>
...
<dl class="prop">
<dt><span>What do you like to do?</span></dt>
<dd class="value">
<ul>
<li>
<input id="activities1" name="activities" value="D" type="checkbox" />
<label for="activities1"><strong>Set up a home computer network</strong></label>
</li>
<li>
<input id="activities2" name="activities" value="S" type="checkbox" />
<label for="activities2"><strong>Track the path of a hurricane</strong></label>
</li>
...
</ul>
</dd>
</dl>
</fieldset>
32 WEBINAR
36. CAMPBELL
EWALD
CONTACT INFO
MATT
DERTINGER
SOLUTIONS
ARCHITECT,
INTERACTIVE
R&D,
CE
DETROIT
CAMPBELL
EWALD
Twi9er:
@ma9nolia
SEAN
MCMAINS
SALES
ENGINEER
MAGNOLIA
CMS
sean.mcmains@magnolia-‐cms.com
TOBIAS
MATTSSON
SENIOR
SOFTWARE
ENGINEER
&
BLOSSOM
DEVELOPER
MAGNOLIA
CMS
tobias.ma9sson@magnolia-‐cms.com
36 WEBINAR
37. CAMPBELL
EWALD
FURTHER READING
Visit the Magnolia documentation site to download Magnolia and find tutorials and guides
http://documentation.magnolia-cms.com/index.html
The Blossom reference documentation
http://documentation.magnolia-cms.com/modules/blossom.html
Blossom Sample Webapp
http://documentation.magnolia-cms.com/modules/blossom.html#GettingStarted
Tobias Mattsson's blog
http://tobias-mattsson-magnolia.blogspot.com/
Ask your questions and see what others are doing at the Magnolia community forum
http://forum.magnolia-cms.com/forum.html
37 WEBINAR