You are reading my first Nuxeo blog.

Writing blogs is a big responsibility. Because, when you think about it, well, it is read. And this is serious stuff you know, when people read your writing. This is why when you write a public blog, you should avoid writing silly things. At least, if you write silly things, it must be done without realizing it. And without reviewers, if any, to realize it.

Oh, by the way, I forgot to introduce myself, which is not very polite and would have displeased my mother (please don’t let her know). To summarize, my name is Thibaud Arguillere (Thibaud is the first name), and I joined Nuxeo last December. I am working with the US team and am based in New York. “Presales Engineer & Technology Evangelist” is my title. It looks serious and makes me feel important. For more details about my professional life, you can check my LinkedIn account.

To build my first Nuxeo demos, I’m using Nuxeo Studio. I’ll share my experience throughout this series of articles modestly entitled “Nuxeo Studio Rocks”.

Let’s go!

You already know this: Nuxeo is the best platform available to build content-centric business applications(1). Even more, it is a truly open source platform (note to self: good topic for a blog, “What Does Truly Mean in “Truly Open Source Platform”?”)

One can easily download the platform, install it in 2 minutes and then use it with its main modules (the most commonly used module as of today is DM, Document Management).

Installation Wizard module selection 2

Installing Nuxeo with the Wizard

However, most of the time you need to extend the platform, to configure your applications and, most importantly, to add logic. Business logic. Most of the parameters that Nuxeo loads when your application starts, or loads only as needed at runtime (for example, generating a form for the browser), are XML-based. There is a large number of tags that you can use, covering a wide area, from UI customization (login dialog, buttons, …) to complex workflow definition, to defining forms for creation / visualization / modification / queries, and more.

Everybody just loves XML(3). It’s standard, it’s easy to read(4), every application understands it, and you can find more XML parsers than developers in the whole universe, whatever the language. Right?

But the platform is so rich that it can make this kind of customization a complex process, even if all is well documented. As for me, I much prefer to drag and drop workflow nodes in Studio rather than write XML to the terminal with vi. And when it is time to define an XHTML form, hey, let’s face it: dropping an attribute, binding it to a widget, letting Studio do the job of translating the form to XHTML is definitely easier. And more fun.

Essentially, Studio is an XML Editor. A GSXE more precisely: Graphical Specialized XML Editor(5). You create your application, Studio then generates the appropriate .jar files that your server (development, test, production) can download. This .jar contains the tags (XML, XHTML) that define your application.

In this screenshot, we defined an Automation Chain in the Studio.

Download As Text 3

Once the server gets the project, Studio generates all the configuration elements and files for me, and inside the OSGI-INF/extensions.xml file, I can find my chain, line #2,055:

Download As Text XML 2

Taking these screenshots made me confirm “oh yes! I sure prefer to drag-drop rather than writing thousands of lines of XML”.

Now that you know that Studio is an XML tool, we’ll be using it in the next article, “Nuxeo Studio Rocks: Part #1”.

Have a nice day, morning, evening or night, depending on your location.

(1) It’s not me saying this, it’s our customers. (2)

(2) Actually, well, I say it too

(3) Don’t you?

(4) Good glasses, zoom, syntax coloring recommended

(5) Just invented it. We should organize a contest about how you pronounce GSXE.