[Monday Dev Heaven] Add a Forgotten Password Functionality to Nuxeo, Part 1/2
This question is sometimes asked on answers or in the forum. It’s a method to handle password reset for users. So I’m going to show you how I would do it. This is going to be a two part blog. Today I’ll write mostly about the WebEngine module handling the password reset functionality. Next week I’ll show you how to package it for Nuxeo’s Marketplace.
How does it work?
Starting with something simple, we’ll add a ‘forgotten password’ link on Nuxeo’s home page. It will redirect the user to an open (i.e. no authentication needed) page asking for an email address. Once the user submits the form, we’ll look in the user directory to see if the email has a corresponding user. If there’s no user, we’ll simply render the page again with an error message saying there’s no user associated with that email address. If we … Read more
[Q&A Friday] How to Clear UI Selected Documents in Studio
Today we have a question from pibou, who asks how he can refresh the UI using content automation in Studio.
There is indeed a Refresh UI operation, but what it does is invalidate the different query caches. This will not empty the selected documents list, for instance. And that is just what pibou needs. Unfortunately we have no operation available for this by default on 5.5. So here’s a workaround, until the operation is available for 5.6.
Clear selected documents list operation
This part is simple. You need Nuxeo IDE with a SDK setup. Create a new project or use an existing one, and run the operation wizard.
Here’s what my wizard looks like:

And here’s the code of my operation:
@Operation(id = ClearSelectedDocuments.ID, category = Constants.CAT_UI, requires = Constants.SEAM_CONTEXT, label = "Clear Selected Documents", description = "Clear the default list of selected documents")
public class ClearSelectedDocuments {
… Read more
[Monday Dev Heaven] Create Your Own Documents on File Drag and Drop
If you follow this blog you’ll remember I’ve been writing a lot about file import recently. And I have a new trick for you on this matter. When I created the import factory, I took an existing Nuxeo XML export as example. But this could also work with single files. In this case, the importer uses the FileMangerService plugin. The role of this plugin is to create Documents in Nuxeo using a given file.
When the file is imported, Nuxeo goes through each plugin following their processes. If the mime type matches, then it tries to create the document. If it returns null instead of a DocumentModel, the next plugin with a matching mime type is used, and so on. Here is a simple plugin contribution as an example:
<extension
target="org.nuxeo.ecm.platform.filemanager.service.FileManagerService"
point="plugins">
<plugin name="ExportedArchivePlugin"
class="org.nuxeo.ecm.platform.filemanager.service.extension.ExportedZipImporter"
order="10">
<filter>application/zip</filter>
</plugin>
<plugin name="CSVArchivePlugin"
class="org.nuxeo.ecm.platform.filemanager.service.extension.CSVZipImporter"
order="11">
<filter>application/zip</filter>
</plugin>
<plugin name="DefaultFileImporter"
class="org.nuxeo.ecm.platform.filemanager.service.extension.DefaultFileImporter"
order="100">
… Read more
[Q&A Friday] How does the Seam.PushDocument operation work?
A new question by Michael Bell: How does Seam.PushDocument work? Well, it does not navigate to a document, as Clément said:
If you just want to navigate to your newly created Document, you should use the Seam.NavigateTo operation.
The Seam.PushDocument operation pushes just your Document in the Seam Context.
For those of you who don’t know Seam, it’s the framework we use to write Nuxeo’s Web interface. It can be easily extended with Nuxeo Studio, hence the presence of Seam in Studio.
Seam.PushDocument adds a document to a Seam context: session, conversation, page or event. This can be useful if you think the user will click on different buttons, which is to say launch different operation chains, during his conversation or session. This way you can share documents between independent chains. So once you have stored your document, to retrieve it, you need … Read more
[Q&A Friday] Will Nuxeo upgrade its technical Java Stack?
Nelson Silva asked us two questions: If we plan to replace Seam in the future and is Tomcat 7 support planned?
About Seam, we will use CDI instead, mostly because it’s close to Seam concepts and because it’s a JSR (JSR-299). We try to use standards as much as we can in Nuxeo.
We already have a code sample available on Github. It builds a nuxeo-cdi-distribution, which is a coreserver distribution customized to run CDI/JSF2 components in nuxeo-cdi-sample.
About Tomcat 7, the answer here is not as straightforward as the previous one. We’d be happy to do it, but it’s not part of our priorities. So as Florent said, we’ll start the work when it is a higher priority, and there is more demand for it. This might be accelerated if we have customer requests, but this is not yet the case.
I’ve chosen these … Read more
Next Nuxeo Code Sprint – June 21-22, 2012
Hi guys, I wanted to let you know that we have planned the next Nuxeo code sprint. It’s scheduled for June 21-22, 2012, and will be held at Nuxeo’s office in Paris. All the details are on our wiki.
You are all more than welcome to participate. The goal of this sprint, which will occur shortly after the Nuxeo Platform 5.6 code freeze, is to produce addons for the platform. There is no particular theme, as long as it’s related to Nuxeo, of course. I strongly encourage participants to discuss their subject on the wiki prior to the sprint. It’s always good to exchange information, especially on how you plan to implement it, so that we can give you suggestions.
And even if you don’t plan on coming, don’t hesitate to add your thoughts to the wiki page, and discuss features you’d like to see. You might inspire a team … Read more
[Monday Dev Heaven] Nuxeo @ First Devoxx France – 2012 Edition
Part of the Nuxeo team attended Devoxx France last week. If you don’t know about Devoxx, It’s an independent Java developer conference. This was the first French edition and I must say it went amazingly well for a first try, so kudos to the 20-person organizing team for pulling this off so smoothly.
We attended many, many different and interesting sessions. There’s a lot to say so I’ll try to be short. And all the sessions will be available on Parleys anyway :)
I’ll start with a very inspiring talk given by Alexandre Bertails: Linked Data – Big Data at Web scale. The web of data is here, and vendors have to step up. Nuxeo is already engaged in it through the Apache Stanbol project. This talk made me want to look more into RDFa, WebID and WebACLs.
There was a lot of interests in new languages. This is … Read more
Paris Jenkins User Conference 2012
Update:
Julien’s video and slides are online on techtoc.tv
Yesterday I was at the Paris Jenkins User Conference 2012 with Julien Carsique. Julien was talking about how we use Jenkins at Nuxeo. For those of you who don’t know Jenkins, it’s a wonderful piece of software used to run and automate continuous integration jobs. We previously wrote a blog about this.
So about Julien’s presentation, you can check out the slides on nuxeo.com or right here:
He explained how Nuxeo has been using Jenkins for continuous integration for the past five years. We started small and added more and more jobs. At first it was for default platform tests only, and it evolved to include tests on different OS, JDK or Databases, automatic release process, code coverage tools etc.. Then he went on the different issues we had because of the ever increasing number of jobs and how we … Read more
[Monday Dev Heaven] How to add an HTML preview for iWork Pages files
Last week I got slightly frustrated when I received a .pages file that I could not open with any software on my Ubuntu system. And I could not see a preview on Nuxeo because this format is currently not supported. For those who have never heard about “.pages” files, they are documents made using the Apple iWork Pages application, which has its own format. With the growing population of MacOS users, this will surely happen again. But fear not, because today I will show you how to create your own file converters on a Nuxeo application so that you can, for instance, add an HTML preview for the iWork files without having to install anything on your laptop.
What’s your file’s mime-type?
A first and mandatory step to deal with files in Nuxeo is to be sure you’ll get the right mime-type. I’ve first tried to upload a Pages file into … Read more
[Q&A Friday] Nuxeo WCM, blogs, wikis.
Cool question asked by Nelson Silva: what about Blogs, Wikis, and WCM features? We get this question a lot actually. Publishing the content you manage in your ECM on the web seems perfectly legit. And there are as of now many different ways to do this in the Nuxeo Platform. You can use the publishing features with WebEngine, and you can create small Blogs and Wiki documents. These can be seen as light features compared to full-fledged WCM solutions and they are indeed! Nuxeo as a vendor won’t take the path to becoming a WCM solution with complex features like multilingual web publishing, portal management, online marketing capabilities, and personalization. You’d be much better off with a best-of-breed WCM solution connected to Nuxeo through CMIS or Content Automation APIs, if your project requires advanced WCM capabilities.
However, some WCM features or Web Publishing features in Nuxeo … Read more




