|
|
|
You have lost your passwordYou came to this page because you have lost your password. Don't worry, it will soon be possible for you to login to the portal again. If you have problems using this form or if it doesn't work for you for any reason send an email to eb@nuxeo.com. Password resetWith this functionality you can request your old password to be reset and replaced by a new password automatically generated by the system.The new password will then be communicated to you.
07/11/2008
WebEngine is a lightweight, versatile, content-centric, open source web framework to quickly build and deliver next generation content-oriented web applications. WebEngine relies on the Nuxeo content infrastructure (OSGi runtime, component architecture, document repository, ECM services, etc.) to provide a component-based programing model and a web development model for building componentized content-centric applications (such as wikis, blogs, content-oriented websites, etc.). WebEngine relies heavily on the REST paradigm: URLs are mapped to the hierarchical content repository, content is accessed using GETs, user actions are GETs and POSTs, etc. Hence it’s very easy and straightforward to write RESTful apps using WebEngine. WebEngine is fully extensible and componentized, thanks to OSGi (all components are OSGi bundles) and Nuxeo Runtime’s extension points. WebEngine can run either standalone (with startup time <4s) using the Nuxeo Runtime launcher and the embedded Jetty 6, or in a full-blown Java EE app server such as JBoss. WebEngine can also be connected to any Nuxeo EP instance (and Nuxeo Core repository) and be used to expose / publish its content to the web. Features highlights:
Join the community!
07/03/2008
The Nuxeo application extensively uses JSF facelets and Seam for its rendering:
Even though last versions of Seam offer a very clean integration with Richfaces/ajax4jsf JSF libraries, the Google Web Toolkit (http://code.google.com/webtoolkit/) looks like a good alternative when dealing with the more complex screens. For instance, rendering a table of documents with pagination, sorting and selection support is not straight-forward with JSF facelets. While JSF goal to separate logic and rendering can be seen as too restrictive for a framework like Nuxeo EP, GWT makes it possible to keep this separation and not lose any expressivity because a GWT application is written in Java. Also, JSF has a quite steeper learning curve than GWT. Integrating GWT with Nuxeo EP is an attempt to get the best of both worlds: keep JSF for its integration with Seam, third-party JSF libraries, easy deployment/override of xhtml pages as well as existing Nuxeo modules relying on it, and use GWT for some specific complex screens. An addon has been written as a proof-of-concept. Documents are retrieved from the Nuxeo application via a Seam component and information for their rendering is serialized on the GWT client side to display them in a paginated table. Seam made life easier by providing a remoting service interacting with the GWT service framework: from GWT rendering classes, it's possible to call a standard Seam component that will implement server logic.Some code has been added to restore the conversation when calling the Seam component, as we want to display the list of current folder children. The conversation id is retrieved on client side thanks to javascript code parsing the url. It is passed alongside when calling the remote service. Packaging was not a problem thanks to maven plugins that perform the GWT compilation and make it possible to include them in the nuxeo.war folder at deployment. Integrating the GWT module within standard xhtml pages was easy: the javascript simply needs to be included in the page as mere html code.
Here's a screenshot of rendered table:
What's next?
For better understanding of these technologies, I strongly recommend the excellent article written by Rob Jellinghaus (Seam / JSF / GWT Integration: What, Why, and How: http://unrealities.com/seamgwt/article_0.2.html). The addon code is at http://hg.nuxeo.org/addons/nuxeo-platform-gwt/. It currently only works with the Nuxeo Seam 2 branch that should be merged in the 5.2 branch shortly.
06/23/2008
We have just published a slide deck explaining our roadmap for the You can browse the slides online on SlideShare or download them as PDF.
Questions and discussions about this roadmap, as well as proposals for contributions, are of course very welcome. For this, we suggest that you subscribe to the forum or the mailing list.
06/19/2008
J'ai été interviewé par Ariane Beky de Neteco.com la semaine dernière, à la fois sur la création et l'évolution de Nuxeo depuis 8 ans et sur mon implication dans le mouvement du logiciel libre en France depuis 10 ans. L'interview video est en ligne sur Neteco.com.
06/16/2008
We have launched last week a new newsletter which we will publish monthly, and will provide “regular insights on our announcements, successes and projects.” In the first issue:
06/10/2008
We have been kept rather busy with Lise since the autumn exhibitions!
From Congress Library. Rights may be reserved.
Everbody loves ECMSince the bagdes "I (heart) ECM" did very well around us, we developped a whole universe about loving the sweet ECM world! We launched the I love ECM initiative : iloveecm.nuxeo.com. You can follow Mr Jack through hi quest to find the perfect ECM solution.
You can also discover the Nuxeo Crew and download wallpapers! The campagin included our 2008 greeting card! As usual the card was staff-centered, it was a nice piece of A5 cardboard with a STICKERS sheet inside!
I must admit that numerous people's computers and phones have been "sticked" here at the office, voluntarily... or not! :-)
Nuxeo Web EngineWhile we work on middle-term communication projetcs with Lise, we also have to integrate some of our customers projects. One of theme included a system of web publishing. Some R&D later it became the Nuxeo Web Engine add-on : the ideal way to add public blogs and wikis to your platform! The surprise is not ready yet but will soon be! All I can tell is that is really powerful (tags, comments, attached files, side boxes filling), very smooth to use (it's full of Jquery) yet very simple since it uses Free Markup Language, there is almost no code! I tell you, this will just be awesome 2.0!
Corporate web siteSpeaking of Web Publishing, Nuxeo.com had its share : we worked on the front page so the information is more clear and appealing, with less images.
Nuxeo celebrated the World Environment Day and that was the occasion for our web site to change face!
What now?In addition to all these projects, we have been working for several weeks on a Nuxeo EP interface update. As soon as the wireframes and behaviours are validated we'll start working on the graphics. For now there is not much we can say about the layout and new features, except that it may very well include Jean-Marc Orliaguet's web widgets and that the quality will match Nuxeo Web Engine's. That's to say! :-)
Until there, take care and stay tuned on Nuxeo's Galaxy!
04/30/2008
I’ve just posted on slideshare a set of slides that have been used at recent customers and partners presentations about the Nuxeo architecture. Hope you’ll enjoy it. There are some more in the works.
02/28/2008
We have released Nuxeo EP 5.1.3.2 earlier this week. This is a maintenance release primarily focussed on bug fixes and small improvements. You can download it as or: The changelog for this release is available. Minor, but anyway noteworthy improvements include:
Posted by Stéfane Fermigier @ 02/28/2008 02:37 PM.
-
Categories:
nuxeo5
-
0 comments
02/19/2008
I've been interviewed by Glyn Moody, one of the best journalists covering open source, for the ComputerWorld UK web site.
France is not a country many would associate with free software startups, but that's changing – not least because the French government is showing itself far more receptive to open source than its UK counterpart. One of the leading companies of this new Nouvelle Vague is Nuxeo, which was set up by Stefane Fermigier, now its CEO.Link: Open Enterprise Interview: Stefane Fermigier.
02/18/2008
Nuxeo EP 5.1.3 has been released in January, with 235 enhancements over the previous version, Nuxeo EP 5.1.2, which had been released in October. A bugfix release (5.1.3.1) was also done a few weeks after with 20 bugfixes and enhancements.
01/15/2008
The Nuxeo EP 5.1.3 release is coming along nicely after a small delay due to the holiday break, and will be tagged in a couple of days. The roadmap for the project in 2008 has been updated accordingly. Feel free to discuss it in the mailing list or the forum if you have questions, suggestions or to supply missing information. As can be seen, Nuxeo 5.1.3 will not be just a maintenance release, as we’ve been able to add new features by creating new plugins (ex: WebDAV, Portlets, SSO, etc.) thanks to a now quite stable infrastructure and API. Nuxeo 5.1.3 will also be based on Nuxeo Runtime and Core 1.4, which feature some improvements while staying compatible with the previous version (1.3). The switch to Nuxeo Core 1.4 was done in December and has proved very stable. After the 5.1.3 release, we’re going to focus on the 5.2 (trunk) work, so as to move to Seam 2 for the web platform. Most new features will still be developed as new components, and will either be delivered with the next maintenance release (Nuxeo 5.1.4) or with Nuxeo 5.2, or both, depending on technical feasibility and customers needs or community contributions.
10/26/2007
September was a productive month for sure, here are some of our last
creations.
First, Lise has been working on an extension of Nuxeo EP for mail management and it's pretty :-)
We have been working also on the Nuxeo RCP appearance. First, we gave it a splashscreen. Sun is still working on integrating the tabs, so I made the icons (most of them come from Tango, famfamfam, are a mix or were entierely made vectorally from sratch). We even made linux/win/osX icon! Next step would be to theme the backgrounds & text. Here are some screenshots of custom graphics in action.
Note that Nuxeo RCP & Courrier can be downloaded in the sandbox of the Nuxeo source code. As you may know, Nuxeo was present at Le Forum Des Acteurs du Numérique in Paris, IFRA in Vienna and at DocumationUK in London, so we made half-a-dozen banners (up to 2 meters-long!). At these exhibitions we had three all-new booklets ( Corporate presentation, Nuxeo ECM Stack & Nuxeo Connect support). We also gave "i luv ECM" badges, they were a success! You can find some photos in our Nuxeo Flickr, where you can find some pictures of Steve Raby & the DOC. ^^
Among other little things (we made nice signs for THE BUREAU & THE FRIGO offices - i'll show you when I get a digital camera), we started to theme the discussions section on nuxeo.org, the community site.
At least, all the graphic material used for communication was re-injected in the whole new ECM Stack pages on nuxeo.com!
I hope you all enjoy it, stay tuned for more ECM-loving pictures :-) ++
Posted by Thibaut Soulcié @ 10/26/2007 07:42 PM.
-
Categories:
apogee,
ecm,
nuxeo,
nuxeo5,
rich_client,
web
-
0 comments
09/12/2007
Bogdan had added preliminary, yet powerful, support for scripting in Nuxeo Runtime, before leaving for well deserved vacations. This makes scripting available from all Nuxeo’s platform. Thanks to this new feature, you can easily uses scripts from your custom components. This can be very useful for a lot of use cases, like, dynamic rules (scripting language as DSLs), easily modifiable behaviours, light and powerful configuration / customization, etc. Scripts have access to the whole API thanks to Java scripting integration (JSR-223). Moreover, scripts can also be run remotely thanks to the Nuxeo Runtime command line. This allow you to create a script on your administration machine, launch it on the remote platform and get the result back. It makes scripting a killer-feature for administration scripts (ex: expire content, bulk content modification, bulk refactoring of the content repository layout, etc.). Last, but not least, we are working on a interactive shell (using Python or Groovy) to interact with Nuxeo’s platform. Here is a quote a Bogdan’s mail to get more details:
I think this open a wide range of new possibilities and ease of use for the Nuxeo Platform to allow you create innovative and powerful ECM applications (and not only, actually, since Nuxeo Runtime can be use to create any extensible application on the Java Platform). Stay Tuned! EB.
09/05/2007
As you already might have seen, Steve Raby has joined Nuxeo as Director for UK and Nothern Europe and head of our London-based UK branch. We have started to do some great work, already and I’m just blogging about this to add some personal touch on this. :-) Steve, a Sun and JBoss veteran, is a strong asset for our company and, of course, brings some new blood to our vision and management structure. The work we are doing is already productive and we recently signed our first large UK customer (you are going to read about that soon). It’s also a really interesting to experience a shared vision for the business and the same enjoyment for the Open Source model. Same customer service orientation. And same faith in the success. The beginning of a long story, I'm sure. Welcome on board Steve! We are going to continue building a great and successful Open Source vendor… (okay, okay, you’ve already been there for two months :-) ) Stay Tuned! EB.
Posted by Eric Barroca @ 09/05/2007 03:50 PM.
-
Categories:
nuxeo
-
0 comments
09/04/2007
The usual way to use EL expression in JSF could seem a little too restrictive for some of us who are used to scripting languages. For instance, if you'd like to display a bean property, you will write a getter on it:
public class MyBean {
String myProperty;
public String getMyProperty() {
return myProperty;
}
}
Then you'll be able to write the following value expression in a template:
<h:outputText value="#{myBean.myProperty}" />
Now imagine that your bean has to perform a more complex task to retrieve the property, like calling a service, and pass parameters to it. Even if there is always the possibility to pass the parameter using a "f:parameter" tag, the bean API will look kind of awkward. The more natural way to do so is to write a method with this parameter, and find a way to call it from the template. For instance, we could have:
public String getMyProperty(String param) {
// execute any function to get the result
return function(param);
}
<h:outputText value="#{myBean.getMyProperty('foo')}" />
Sadly, there is no way to do that using "pure" JSF implementations. That's where facelets can be very handy. In a very nice blog post, Andrew Robinson explains how to pass method bindings to children components using the facelet user tag system. I will explain how Nuxeo uses the same tricks to invoke method expressions with parameters as regular value expressions. First let's define the famous MethodValueExpression class, that will behave as a regular value expression but will invoke a method expression when trying to resolve the value:
public class MethodValueExpression extends ValueExpression implements
Externalizable {
public MethodValueExpression(MethodExpression methodExpression,
Class[] paramTypesClasses) {
this.methodExpression = methodExpression;
this.paramTypesClasses = paramTypesClasses;
}
...
@Override
public Object getValue(ELContext context) {
// invoke method instead of resolving value
Object res;
try {
return methodExpression.invoke(context, paramTypesClasses);
}
catch(Throwable t) {
return null;
}
}
}
Nuxeo benefits from an extension to the EL provided by Seam: it makes it possible to use parameters on any method expression without having to configure parameter types. That's why parameter types classes are never actually set in the Nuxeo code. When this is done, we can use facelets meta rules to use this class instead of the generic one. This is done via a component handler:
public class GenericHtmlComponentHandler extends HtmlComponentHandler {
...
protected MetaRuleset createMetaRuleset(Class type) {
MetaRuleset m = super.createMetaRuleset(type);
if (ValueHolder.class.isAssignableFrom(type)) {
m.addRule(GenericValueHolderRule.Instance);
}
return m;
}
}
This configuration tells to use the GenericValueHolderRule class when setting a component attributes. This rule does not do much but use our MethodValueExpression when appropriate, e.g. when brackets are detected. We can configure tags to use this handler in a facelet taglib:
<tag>
<tag-name>outputText</tag-name>
<component>
<component-type>javax.faces.HtmlOutputText</component-type>
<renderer-type>javax.faces.Text</renderer-type>
<handler-class>org.nuxeo.ecm.platform.ui.web.tag.handler.GenericHtmlComponentHandler</handler-class>
</component>
</tag>
Note that there is no need to use another term than "value" as shown in this code (using "genericValue") as the last rule added to the MetaRuleSet will apply first and override the default behaviour. The nxh taglib, using the namespace "http://nuxeo.org/nxweb/html" redefines all basic jsf html tags to use this handler. We could add any number of attributes to be dealt in the same way than "value": for instance, being able to write <nxh:outputText rendered="#{myBean.getProperty('foo')}" /> can be handy too. Now it can a little painful to define a new taglib with this handler when reusing custom tag libraries. The Nuxeo tag library defines a new tag "nxu:methodResult", that will make the result of the given expression available in the variable map:
<nxu:methodResult name="prop" value="#{myBean.getMyProperty('foo'}">
<h:outputText value="foo" rendered="#{prop == 'bar'}" />
</nxu:methodResult>
The variable named "prop" is available inside the methodResult tag, as a row variable in a "h:dataTable" tag. This behaviour is achieved using a specific tag handler that will use the MethodValueExpression presented above:
public class MethodResultTagHandler extends MetaTagHandler {
private final TagAttribute name;
private final TagAttribute value;
public MethodResultTagHandler(TagConfig config) {
super(config);
name = getRequiredAttribute("name");
value = getRequiredAttribute("value");
}
public void apply(FaceletContext ctx, UIComponent parent)
throws IOException {
String nameStr = name.getValue(ctx);
// parameter types evaluation not needed using Seam
MethodExpression meth = value.getMethodExpression(ctx, Object.class,
new Class[0]);
ValueExpression ve = new MethodValueExpression(meth, paramTypesClasses);
ctx.getVariableMapper().setVariable(nameStr, ve);
this.nextHandler.apply(ctx, parent);
}
}
This tag handler is linked to the MethodResult tag in a taglib file: <tag> <tag-name>methodResult</tag-name> <handler-class>org.nuxeo.ecm.platform.ui.web.tag.handler.MethodResultTagHandler</handler-class> </tag> Nice, huh? Nuxeo Tag Library documentation: http://maven.nuxeo.org/nuxeo-platform-parent/nuxeo-platform-ui-web/tlddoc/. Complete code mentioned above is available here:
Posted by Anahide Tchertchian @ 09/04/2007 04:13 PM.
-
Categories:
nuxeo5
-
0 comments
|
Nuxeo Bloggers: Log in! Search Nuxeo Blogs
Nuxeo Bloggers
Photos and Pictures
|
|
Nuxeo -
Indesko -
Nuxeo 5 Project
All content is copyrighted by their author. CPSSkins is Copyright © 2003-2006 by Jean-Marc Orliaguet. | CPS is Copyright © 2002-2006 by Nuxeo SAS. |