Posts in Category "maven"

“Flex and LCDS best practices from the trenches” @ AdobeMAX 2010

Our MAX “Flex and LCDS best practices from the trenches” presentation
has just been published as a chaptered screen cast video.
Meanwhile I also posted the slides on slideshare :

In this presentation we go beyond the Flex and LCDS pimp demo, as we share practical and pragmatic practices that come from the collective experience of the real people who design, develop, and operate the Hendrix application.
Hendrix is an Adobe business critical enterprise rich Internet application (RIA) that provides Adobe’s service and sales representatives with a single, intuitive interface for addressing customer questions.

Adobe recently published a case study on Hendrix in their showcase portal, in which you will have a good overview of the project nature and ROI.
Whereas in this presentation you will find out about Hendrix integration landscape, technical constraints and challenges, as well as Hendrix core architectural principles:

  • How we drove the development and build the Hendrix architecture for a better encapsulation and modularization. How we advocate a clear separation of concern.
  • How we focused on APIS definitions.
  • How we handled exceptions.

We also presented the wonders of CTI integration and finally our last words were be about agility:

  • Agility tips for a distributed team,
  • Agility enabling tips :
    You will see how you can easily build a complete and efficient software factory
    while streamlining your flex development

All of these points were showcased through a sample (and simple) multiscreen (web and android) demo application.
Note that this sample application will be shortly released on adobe open source portal (on sourceforge.net) as part of the Cairngorm 3 project.
I’ll keep you posted.

Maven on Flex/LiveCycle ES/Adobe projects : How to

Working with maven on pure Java (and thus LiveCycle ES project) is fairly easy,
the main challenge is to build/agree/find your livecycle ES jar repositories.
Managing Flex project with maven on the opposite can be more challenging.

Doing Flex

FlexMojos

After 127 votes on jira requesting maven support cf. SDK-12730,
the flex team finally announced their pick is flexmojos (*)

At the Flex Community Feedback Forum we once again heard a strong demand for Flex integration with Maven.
We, unfortunately, do not have the resources to work on this feature, but given the high demand, we have changed this feature request’s milestone to “SDK Community Fix Candidates”

  • we believe this is a good project for the community to work on.

If you’re interested in this feature we hope you’ll contribute to the Flex-Mojos project (http://code.google.com/p/flex-mojos/) that has been working on a Maven plugin for Flex.
In particular, they are looking for help to provide better AIR support. For further discussion, please post to the forums (http://www.adobeforums.com/webx/.59b7e646).

Good for me/us, our pick(*) (for fna) is flexmojos as well, the other good news are

  • version 3 of this maven plugin is now being sponsored by sonatype (VELO the author of flexmojos has been hired by sonatype a few months ago)
  • on top of that, m2eclipse support for FB is coming . cf. http://jira.codehaus.org/browse/MNGECLIPSE-598

Other challenges:

  • provide a maven archetype for quickstarting BlazeDS projects cf. BLZ-44
    • fna provides it now , but the lcds archetype is yet to come
  • Put BlazeDS WAR and libraries in a public Maven repository cf. BLZ-71
    • same for lcds, but now at least internally the nexus tsi server is providing that
  • Apps in non-main source folders are not yet supported, that sucks for maven projects cf. FB-8757
  • this other compilers bug can be annoying as well SDK-15406,
    • the compilers tells you have Error: Invalid Embed directive in stylesheet when you are just missing a dependency or a class.

Maven, Eclipse and FlexBuilder

Maven has now failry good maven support thanks to M2Eclipse (**)

m2eclipse support for FB is not there yet cf. http://jira.codehaus.org/browse/MNGECLIPSE-598
But it’s nevertheless perfetly feasible to work with FB and a maven build.

One of them is to add a M2_REPO linked resource that will be use in the FB build classpath.

Flex and Maven, further reading

I gathered quite a few links and tutorials at

Finding your artefacts, building your repositories

The next challenge when you are building project on top of Adobe products is that, none of them are released on maven central repositories.
You have to find (and often create) your archetypes elsewhere.

Non official Maven Adobe repositories

Here is the list I came up with, so far:

Do you know any others ?

What I do is that I proxy and aggregate those repositories with
other Adobe proprietary LiveCycle ES and lcds artefacts through a Nexus Maven Repository Manager for my entreprise projects.

What about you ?

Next Challenges : groupIds, artifactIds and dependencies standardisation

What groupId for livecyle ? lcds ? blazeds ? flexunit ? cairngorm ?
What are their dependencies ?
I should not be the one to say, though I did (within the fna repositories at least for flexunit, cairngorm, blazeds and a few other open source flex libraries)

But that should be done by the product team.
Today it’s not. It’s a shame and it’s error prone.

So go and vote for those bugs :

(*) : Though, alternatives exist :like http://www.servebox.org/maven-flex-plugin/ looks also good to me, have you tried it ?
(**) : Though, alternatives like q4e looks also good to me, have you tried it ?

My blazeDS XDoclet Spring Hibernate Maven Archetype

I started working on a personal project during the week-ends lately.

Here is the result I’m happy to share with the world :
A great new blazeDS Xdoclet Spring Hibernate Maven Archetype (hosted at google code):

Try it out !

  • Add my maven repository to your repositories list in your maven configuration file,
  • Run 3 maven command lines :
    • mvn archetype:create …. (to create your new flex blazeds spring hibernate multi-modules project)
    • mvn install (at the root of your newly created project : to compile and package it)
    • mvn jetty:run-exploded (at the root of java_webapp module : to run and test your web app at http://localhost:8080 )

You’ll have a sample webapp displays a CRUD “Hello world!” flex web application . This CRUD application was “inspired” from a great article made by Sébastien Arbogast
Thanks Sebastien !

The flex stuff is compiled and packaged through Flex Mojos.
Thanks Velo !

I know quite a few people are waiting for it (12 votes and 6 watching) : https://bugs.adobe.com/jira/browse/BLZ-44
Don’t hesitate to drop me a comment, or a mail.
I’ll tell you more about it in the coming days.