SlideShare a Scribd company logo
1 of 71
Download to read offline
Flex for Java Architects

Flex RIAs with BlazeDS, Spring et Hibernate
(built with Maven)

                                                                  François Le Droff
                                                                  http://www.droff.com
                                                                                         ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
François Le Droff




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
François Le Droff


       “Just another Java guy”
                Adobe Technology and Service Innovation
                Ad b T h l         dS i I           i
                10 years in IT web 1+n.0)
                OSS geek :
                         OS projects : qsos, xradar , fna,
                         Member of ossgtp, ParisJUG, ParisJBUG
                         Speaker at MAX, et Solution Linux
                         blogs :
                            http://www.droff.com
                            http://blogs.adobe.com/francoisledroff/
                               p      g




                                                                      ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What about you?

       Java !
                Spring, JEE ?
                ORM (JPA, EJB, iBatis, Hibernate) ?
                UnitTest (JUnit, TestNG, …) ?
                Ant and/or Maven ?
                Hudson, CC ?

       Flex ?
                ActionScript MXML
                Flex Remoting, AMF
                  e e ot g,
                And may be
                         BlazeDS, LCDS
                         FlexUnit
                         Cairngorm


                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Adobe “Innovating on both sides of the glass”




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
“In front of the glass” Flex !
“Behind the glass” Java !




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
The RIA leader technology: Adobe Flex 3



                                                             ADOBE FLEX 3
                                                              Action Script 3
                                                              MXML


        Free, open source framework
        Less time needed to develop
        Expressive, highly interactive apps
        X-platform, consistent deployment

                                                                                ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Adobe Flex Builder 3

       Eclipse plugin
                Code hinting, debugging
                WYSIWYG Design view
                Memoruy and performance profilers
                SDK FB : Charting components advanced
                                  components,
                datagrid
                Testing Support




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex app development and deployment


                Flex Builder IDE                                                       Browser
     Flex SDK                                                                          Flash Player
            MXML                     ActionScript

                  Flex Class Library                              SOAP        HTTP/S         AMF/S          RTMP/S



                                                                   Web Server
                         Compile
                                                                  XML/HTTP
                                                                                              LC Data Services
                                                                  REST
                                                                  SOAP Web Services       J2EE Application Server

                                                                   Existing Applications & Infrastructure

                                                                                                                     ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools


         From a Java perspective
                     pp



                    Developing
                    Frameworks
                    F        k
                    Testing
                    Building
                    B ildi




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: Developing


       Flex IDEs
                Eclipse
                         FlexBuilder
                            Code completion, refactoring, graphical UI editing, profiling
                         Enterprise Factory IDE
                         Peter Martin’s Cairngorm plug-in (soon)


                IDEA IntelliJ
                Netbeans Plugin ?
                            g
                vi, emacs




                                                                                            ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and libraries


         MVC frameworks:
                          PureMVC
                          Cairngorm micro-architecture




      There are two libraries you can use to create your Cairngorm projects
                 Cairngorm – This is the main Cairngorm library that must always be imported
                 Cairngorm Enterprise - This is an optional library that must be used if you are
                 using LCDS
      Cairngorm Enterprise was created to remove Cairngorm’s Dependency on LCDS
                 EnterpriseServiceLocator provides support for LCDS Producer and Consumer

                                                                                                   ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and libraries


        Inversion of Control (IoC) Container :
                          flicc: http://flicc sourceforge net
                                 http://flicc.sourceforge.net
                          parsley: http://www.spicefactory.org/parsley
                          smarty pants: http://code.google.com/p/smartypants-ioc
                          LowRA: http://osflash.org/projects/lowra

                          prana: http://www.pranaframework.org                     SpringActionScript
                          swiz: http://code google com/p/swizframework
                                http://code.google.com/p/swizframework
                          vegas: http://code.google.com/p/vegas
                          fling: http://fling.riaforge.org
                          flex-ioc: http://code.google.com/p/flex-ioc

        Many others interesting initiatives on top of flex frameworks
                 Anvil
                 Mate



                                                                                                        ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and libraries


        Lots of AS3 and Flex OS components
        Lots of commercial Flex components
              f          ll



                                                 Flex Ecosystem is expanding very quickly
                                                following a similar path to Enterprise Java




                                                                                              ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Logging and Debugging

        Similar to LOG4J,
                    Flex 3 includes a logging
                    framework
                    to define custom Log targets.
                                       gg
        ThunderBolt AS3 :
                    custom Flex log target
                    log to Firebug in Firefox or to a
                    stand alone AIR console.




        Many tools to inspect the component at runtime
•

                     try KapIT lab tools
            •

                                                                      ®




    Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex code generation and quality tools


        Code Generation
                XDoclet : ActionScript Plugin
                  @actionscript.class
                 flex-annotations.aixcept.net annotations:
                    @ActionScript
                    @Cairngorm
                 Flex-mojos
                 JAXB
                 MDA (acceleo plugin made by AC)
                 …

        Code Quality control
                 FlexPMD (work in progress engaged by AC)
                 AS3NCSS (work in progress engaged by AC)



                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: UnitTesting


        FlexUnit :                                                http://opensource.adobe.com/wiki/display/flexunit/FlexUnit




                                                                                                                               ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: Unit Testing

        FlexUnit
                          Very similar to JUnit




                          Event test enabled




        Fluint : http://code.google.com/p/fluint/
                    p        gg         p

                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Code Coverage – Flexcover - Custom Compiler Approach


http://code.google.com/p/flexcover




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Code Coverage – Flexcover - Custom Compiler Approach


http://code.google.com/p/flexcover




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: Testing


         Functional Testing
                 Selenium for Flash
                 Fluint, FlexMonkey, FunFX, …
                 Other commercial products based on Adobe’s Flex Automation API :
                                  p
                       Mercury QTP
                       IBM Rational Functional Tester
                        RIATest


        Load and Stress Testing
                 JMeter, OpenSTA, Grinder
                 Adobe’s Data Services Stress Testing Framework
                 Other commercial (Flex/AMF specific) products :
                       NeoLoad
                       WebLoad


                                                                                    ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Mock Frameworks




                                         mock-as3: http://code.google.com/p/mock-as3
                                                     Used by Adobe Consulting
                                         Mock4AS: http://code.google.com/p/mock4as




                                                                                       ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: Building


       Ant :
                 FlexAntTasks
                Ant : Antennae

       Maven :
       M
•
                Flex-mojos
          •
                                Alternatives :
                            •
                                   • ServeBox
                                   • and Israfil

                Archetypes
          •




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Managing Dependencies


        Maven (or Ant + Ivy)




                 Demo : http://localhost:9999/hudson/job/cairngormenterprise/site/dependencies.html




                                                                                                      ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: UnitTest within your Build


        FlexUnit within your build




                          Maven




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: Building and CC


        Quality within your build : CC




                 Demo : http://localhost:9999/hudson/




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: Building : Quality


        Quality Reports within your build
                 AS3NCSS
                 http://localhost:9999/hudson/job/cairngorm/site/javancss.html




                 FlexPMD
                 http://localhost:9999/hudson/job/cairngorm/12/pmdResult/




                                                                                 ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Flex Frameworks and Tools: ASDocs




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
LCDS
                           &
                        BlazeDS



                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Blaze DS Overview (source Xebia)




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Blaze DS Overview : AMF (source Xebia)




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Feature Comparison

                                                                       BlazeDS   LiveCycle Data Services ES
   Feature

                                                                          √                  √
   Java Remoting

                                                                          √                  √
   Web Proxy
     b

                                                                          √                  √
   JMS Adapter

                                                                          √                  √
   AJAX Client Libraries

                                                                          √                  √
   Administrative Console

                                                                          √                  √
   Clustered Messaging

                                                                          √                  √
   Pub/Sub Messaging

   Web container based messaging service (100 s of
        container-based                  (100’s
                                                                          √                  √
   clients/CPU)

                                                                                             √
   Dedicated messaging service (1000’s of clients/CPU)

                                                                                             √
   Per-client Quality of Service

                                                                                             √
   Data Management Service

                                                                                             √
   Data Paging

                                                                                             √
   Flex-LiveCycle Integration

                                                                                             √
   RIA-to-PDF Generation

                                                                                             √
   Offline Data Synchronization (AIR)

                                                                                             √
   WSRP/Portal Integration

                                                                                             √
   SiteMinder Integration


                                                                                                              ®




                                                                  32
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Fna !


          http://code.google.com/p/fna/

          Fna is a set of samples, mavenized flex open source contributions (cf.
          flex-contrib-spring and event-source) and maven archetypes that uses
          open source tools/frameworks b il on top of J
                            l /f       k built         f Java and Fl
                                                                d Flex




                                                                                   ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
By the way …


       What is                                                    ?




                                                                      ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What’s Maven again ? (very short definition)


        A build tool




                                                                                 •
        A dependency management tool                                   A documentation and quality
                                                                   •
                                                                             reporting tool
                                                                                          l




                                                                                                     ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What is Maven anyway ? (its architecture)




                                                                                       Plugin
                                                                                         jar


               Projects                                                                 Plugin
                                                            Maven Core
                to build                                                             flex-mojos
                                                                                     flex mojos


                                                                                       Plugin
                                                                                        war


                                     Local machine                       Remote repository or local install



                                                                                                              ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What is Maven anyway ? (its plug-ins, a few of them…)



 •        Antlr                                             •      Ear                •   Javancss               •   Release
 •        Ant                                               •      Eclipse            •   Jboss                  •   Repository
 •        AntRun                                            •      Ejb                •   Jcoverage Jdepend      •   Resources
 •        AspectJ                                           •      Ejb3               •   Jdiff                  •   Repository
 •        Assembly                                          •      Exec               •   Jelly
                                                                                              y                  •   Sablecc
 •        Assembly-report                                   •      Flex-mojos         •   Jetty                  •   Site
 •        Cargo                                             •      Flex-annotations   •   Jpox                   •   Slimdog
 •        Castor                                            •      Groovy             •   Jspc                   •   Source
 •        Changelog                                         •      Help               •   Jxr                    •   Surefire
 •        Changes                                           •      Hibernate2         •   MAnt                   •   Surefire-report
 •        Commons-attributes                                •      Idea               •   Native                 •   Taglist
 •        Checkstyle                                        •      Install            •   One                    •   Tomcat
 •        Clean                                             •      Issue              •   Par                    •   Verifier
 •        Clover                                            •      It                 •   Plugin                 •   Xslt
 •        Csharp                                            •      Jalopy             •   Pmd                    •   War
 •        Cobertura                                         •      Jar                •   Project-info-reports   •   Wsdl2java
 •        Compiler
                p                                           •      Javacc             •   Rar                    •   Xdoclet
 •        Deploy                                            •      Javadoc                                       •   Xmlbeans
                                                                                                                 •   XRadar




                                                                                                                                       ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What is Maven anyway ? (a common project format and organization)


        Maven is really a process of applying patterns to a build infrastructure
        in order to provide a coherent view of software projects.
        A Common project metadata format
                 POM = Project Object Model = pom.xml
                          j      j            p
                 Contains metadata about the project
                          Location of directories, Developers/Contributors, Issue tracking system, Dependencies,
                          Repositories to use etc
                                          use,




                                                                                                                   ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What is Maven anyway ? (a common project format and organization)


        A common directory organization
                 Our sample of 6 nested projects :
                                                                   • src/
                                                                        /
                                                                      – main/
                                                                            •   java/
                                                                            •   flex/
                                                                            •   resources/
                                                                            •   webapp/
                                                                      – test/
                                                                            • java/
                                                                            • flex/
                                                                            • resources/
                                                                      – site/



                                                                                             ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What is Maven anyway ? (a common way to build application)


                                                                      generate-
                                                                       sources                  mojo
                                                                                                  j
                                                                       compile
                                                                                                  mojo
                                                                          test
                                                                                                mojo
                                                                                                              plug-ins
                                                                       package
                                                                      integration-
                                                                          test
                                                                          tt
                                                                                                       mojo
                             user                                       install
                                                                                                 mojo
           e.g. mvn install
             g                                                                       bindings
                                                                                           g
                                                                        deploy


                                                                   Well-known phases

                    The lifecycle depends on the project type (packaging)
                         Defined in pom.xml (pom, jar, ear, war, etc)
                         Ex: <packaging>swc</packaging>
                              p      gg          /p        gg

                                                                                                                         ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
What is Maven anyway ? (it’s even much more)


    Artifact repository :
              Used to store all kind of artifacts
                    SWCs, SWFs, JARs, EARs, WARs, EJBs, ZIPs, plugins, …
              All project interactions go through the repository
              No more relative paths!
              Easy to share between teams

                                                                               A
    Dependency management
        Transitive dependency management
                     p      y     g
        Snapshot handling                                                  B       C
    Multi-module built
                                                                                   D
    Environment dependent builds based on profile

    Project documentation site and report
       j

    Project templating through archetype



                                                                                       ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Maven : Archetypes


        Archetype is a Maven project templating toolkit.
                 an original pattern or model from which all other things of the same kind are made.
                                                                                               made
                 provides a great way to enable developers quickly in a way consistent with best practices
                 employed by your project or organization


                 http://maven.apache.org/plugins/maven-archetype-plugin/index.html




                                                                                                             ®




 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Fna flex-library-archetype-archetype Demo



          mvn archetype:generate -DarchetypeVersion=1.3-SNAPSHOT
          -DarchetypeGroupId=com.adobe.ac
          -DarchetypeArtifactId=flex-library-archetype
          -DarchetypeRepository=http://fna.googlecode.com/svn/trunk/fna/fna_m2_repository/
           DarchetypeRepository=http://fna googlecode com/svn/trunk/fna/fna m2 repository/




                                                                                             ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
flex-library-archetype-archetype : FlexBuilder support


          Import your generated project into eclipse
          The eclipse and FB are already generated for you
                                       yg              y




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
How do I integrate Flex,
        BlazeDS, and Spring ?

        (with
        ( h Maven)
                 )
        How do I write less code
        through maven archetype
        flex annotation code generation
        and auto-wiring techniques?




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
I use Fna Blazeds-autowired-spring-hibernate-archetype




            It helps you generate a multi-module maven project : a f front-
                                                                   flex f
            end application communicating with the backend through Adobe's
            BlazeDS
            It showcases lots of tips and tricks on BlazeDS, Spring Integration




                                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Spring / BlazeDS / LCDS




       Spring (Hibernate JPA) with Flex through BlazeDS
                BlazeDS remoting SpringFactory
                               gp g          y
                Auto-wired spring service bean into BlazeDS remoting




                NB: Recent fna non-related news on spring :
                         http://www.springsource.org/spring-flex
                         http://blog.springsource.com/2008/12/17/using-spring-blazeds-integration-m1/
                         http://coenraets.org/blog/2009/01/new-springblazeds-integration-test-drive/




                                                                                                        ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Maven and Flex




       Spring BlazeDS Flex application
                With Maven (FlexMojos)
                         Code generation through flex-annotation
                         FlexUnit
                         ASDoc, Dependency management, Quality control




                                                                         ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Fna Demo– Project Generation and Build



Objectives

     Generate a project
    through a maven
    archetype
          yp
      Build, deploy and test
    (on jetty and hsqldb)




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Generate and Build your project (2mn)

                mvn archetype:generate -DarchetypeVersion=1.3-SNAPSHOT -
          •
                DarchetypeGroupId=com.adobe.ac -DarchetypeArtifactId=blazeds-autowired-spring-
                hibernate-archetype
                hibernate archetype -
                DarchetypeRepository=http://fna.googlecode.com/svn/trunk/fna/fna_m2_repository/




                                                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
A Maven multi-module project approach

       Discover your « mavenized » Flex BlazeDS Spring project, its modules :




                java_* are plain old maven java projects
                flex_* are flex-mojos project
                blazeds _service_config is a shared resource handled through maven assembly
                         service config




                                                                                              ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Deploy and test your project (2mn)

       Go to the newly created project root
•

       Launch the build :
•
                 mvn install
          •

       Go the java web application module root to deploy your web application on
•
       a jetty instance :
                mvn jetty:run
          •




                                                                                   ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Deploy and test your project (2mn)

       http://localhost:8080/fna_java_webapp/
•




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Review the
    Flex N Spring
    Flex-N-Spring project
    Architecture




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
A Flex application auto-wired to a BlazeDS/Spring back-end
 Generation
 AS Code




                                                                                        Ma
  S3




                                                                                         aven build
                                                                                                  d
                                                                        Spring
                                                                  Auto Wiring Service
                                                                                                      ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Cairngorm applied to Flex N Spring

                                                                                    ToDoList


   Add a Contact           Contact list
                                                                                                              FrontController
    Arthur                  Ford
                            Ford- ford@perfect.com
                            Zaphod – zaphod@email.com
                            Arthur – arthur@dent.com
    arthur@dent.com
                            Tricia– tricia@mcmillan.com
                                                                                                       CMD   CMD                              CMD
                            Marvin = marvin@email.com
       Add a Contact




                                                                                                              Business
                                                                                                              Delegate
model.getTodoList
                                                                                                                                                                                  TodoList
                                                            TodoListPModel
                                                            + saveItem
                                                            + removeItem            ToDoList




                                                                                                                                                    Service


                                                                                                                                                              Service
                                                                                                                         Spring Auto Wiring

                                                                                                                                                    Service


                                                                                                                                                              Service


                                                                                                                                                                        Service
                                                                                               Cairngorm
                                                                                                 Event
                                                                                                 E    t




                                                                     Presentation   Domain
                                                                        Layer                                      Integration Tier
                   View Layer                                                        Layer
                                                                                     L

                                                                                                                                                                                             ®




   Copyright 2008 Adobe Systems Incorporated. All rights reserved.
A few magic details : Spring AutoWiring

       With a simple SpringFactory (and/or JavaAdapter) approach, you need to
       configure each new Java remote object service in remoting-config.xml.
            g                            j                     g      g
       @RemotingDestination (JDK5 annotation) allows you to autowire Spring
       beans directly into BlazeDS.




                                                                                ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
A few magic details : Spring AutoWiring

       The SpringAutowiringBootstrapService checks all @RemotingDestination
       annotated classes
                registers them within BlazeDS at runtime.
                dynamically creates the Spring Factory.




                                                                              ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Code generation
             technique




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
VO Code Generation

          The flex remoted objects are generated through flex-annotations
                Just add to your java remoted object @ActionScript and @ActionScriptProperty annotations




                                                                                                           ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
VO Code Generation

          Add the flex-annotations factory to your maven build




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Maven (and Spring) for Flex




       Wrapping up …
       W    i




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Maven and Spring for Flex : Summary

       This maven and spring integration approach allows you to
                capitalize on your in-house Java/JEE/Maven/Spring expertise techniques and tools
                                   in house                       expertise,
                write less code (Most of the integration plumbing is generated)
                rely on a efficient build (continuous integration, test, dependencies and quality checks,
                documentation, release)

        The price to enter :
                Time consuming t k t i iti t th project :
                Ti         i   tasks to initiate the jt
                         set up the project (modules) structure organization
                         Write your build file, your somehow complex pom.xml files :
                               y              ,y                  pp
                           configure/identify the classpath , project dependencies, maven plugins
                         configure the code generation and autowiring tools

       The Solution: eliminate the ramp-up time by using fna maven archetype
                         You still have to configure Eclipse (and FB) the « maven » way


                                                                                                            ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Resources




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Resources: Learning

       Flex
                ActionScript Developer Site- http://www.adobe.com/devnet/actionscript/
                Flex Developer Site - http://www adobe com/devnet/flex/
                                      http://www.adobe.com/devnet/flex/
                Flex Development Guide - http://learn.adobe.com/wiki/display/Flex/Getting+Started
                Flex 3 Language Reference – http://livedocs.adobe.com/flex/3/langref/
                LiveCycle Data Services ES - http://www.adobe.com/products/livecycle/dataservices/

       BlazeDS
                Blaze DS - http://www adobe com/go/opensource blazeds
                           http://www.adobe.com/go/opensource_blazeds
                Blaze DS Developer Guide - http://livedocs.adobe.com/blazeds/1/blazeds_devguide
                Blaze DS Javadoc - http://livedocs.adobe.com/blazeds/1/javadoc/



       Adobe Labs - http://labs.adobe.com/




                                                                                                     ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Resources: Learning

       LiveCycle Data Services ES


                LiveCycle Data Services ES -
                http://www.adobe.com/products/livecycle/dataservices/
                LCDS ES Developer Guide - http://www adobe com/go/lcds26 devguide
                                          http://www.adobe.com/go/lcds26_devguide
                LCDS ES Javadoc -
                http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/javadoc/index.
                html
                LiveCycle Data Services ES Language Reference -
                http://livedocs.adobe.com/livecycle/8.2/programLC/common/langref/index.html
                LCDS ES Stress Testing Framework -
                http://labs.adobe.com/wiki/index.php/Flex_Stress_Testing_Framework




                                                                                              ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Resources: Frameworks and Tools

       Frameworks
                Cairngorm - http://opensource adobe com/wiki/display/cairngorm/Cairngorm
                            http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm
                PureMVC – http://puremvc.org
                Prana - http://www.pranaframework.org

       Code Generation:
                Flex-annotations http://flex-annotations.aixcept.net/
                XDoclet ActionScript plugin http://xdoclet.codehaus.org/Actionscript+plugin
                Acceleo http://www.acceleo.org/pages/accueil/en

       Spring flex integration projects
                @RemotingDestination annotation :
                         http://marceloverdijk.blogspot.com/2008/01/code-by-convention-with-flex-and-
                         http://marceloverdijk blogspot com/2008/01/code by convention with flex and
                         spring.html




                                                                                                        ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Resources: Frameworks and Tools

      Building Maven
               Maven archetype: http://maven.apache.org/plugins/maven-archetype-plugin/index.html
               Maven presentations : http://blogs.codehaus.org/people/vmassol/
               Maven Flex plugins:
                        Flex-mojos htt //d
                        Fl     j http://docs.flex-mojos.info/
                                             fl     j if/
                        ServeBox http://www.servebox.com/foundry/doku.php?id=m2f2plugin
                        Israfil http://www.israfil.net/projects/mojo/maven-flex2-plugin
                                   p //               /p j     / j/              pg
               Maven Flex (flex-mojos) archetypes:
                        http://code.google.com/p/fna/
                        http://blogs.adobe.com/francoisledroff/
                        http://code.google.com/p/maven-blazeds-spring-archetype/
               Flex-Mojo tutorial
               Fl M j t t i l
                        The Flex, Spring and BlazeDS full stack
                        http://www.adobe.com/devnet/flex/articles/fullstack_pt3_print.html
                           p                                               _p _p

                                                                                                    ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Resources: Frameworks and Tools

       Building Ant
               Antennae - http://code google com/p/antennae/
                          http://code.google.com/p/antennae/

       Testing
                FlexUnit - http://opensource.adobe.com/wiki/display/flexunit/FlexUnit
                              p // p                  /    / p y/           /
                Flexcover - http://code.google.com/p/flexcover/
                ThunderBolt AS3 Console - http://code.google.com/p/flash-
                thunderbolt/wiki/ThunderBoltAS3Console
                th d b lt/ iki/Th d B ltAS3C           l

       Libraries
                Google Code – Lots of Flex libraries and frameworks
                Flex.org - http://flex.org/software/components




                                                                                        ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
References : Creative Commons and other open source graphics
and photos remixed here




                http://commons.wikimedia.org/wiki/Image:Netbeans-Duke.png
                https://duke.dev.java.net/images/comfyChair/index.html
                http://flickr.com/photos/nicozz/1107511223/
                http://flickr.com/photos/flattop341/1085739925/
                http://flickr com/photos/flattop341/1085739925/
                http://blog.xebia.fr/2008/09/16/blazeds/
                http://www.breizhjug.org/
                                 jg g




                                                                            ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Questions ?

                                                                                ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.

More Related Content

What's hot

Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!goodfriday
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Anton Arhipov
 
Technical Catalogue
Technical CatalogueTechnical Catalogue
Technical CatalogueRupy_Uppal
 
Netlab+overview
Netlab+overviewNetlab+overview
Netlab+overviewelgraini
 
[2011-17-C-4] Heroku & database.com
[2011-17-C-4] Heroku & database.com[2011-17-C-4] Heroku & database.com
[2011-17-C-4] Heroku & database.comMitch Okamoto
 
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...Graham Charters
 
IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016Trayan Iliev
 
Android Development with Flash Platform
Android Development with Flash PlatformAndroid Development with Flash Platform
Android Development with Flash PlatformMihai Corlan
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudGoogleTecTalks
 
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data TransferLeveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data TransferJoseph Labrecque
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemTim Ellison
 
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEd presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEdward Burns
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
The Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksThe Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksClarence Ho
 

What's hot (20)

Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
 
Project Zero JavaOne 2008
Project Zero JavaOne 2008Project Zero JavaOne 2008
Project Zero JavaOne 2008
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
 
Technical Catalogue
Technical CatalogueTechnical Catalogue
Technical Catalogue
 
Netlab+overview
Netlab+overviewNetlab+overview
Netlab+overview
 
[2011-17-C-4] Heroku & database.com
[2011-17-C-4] Heroku & database.com[2011-17-C-4] Heroku & database.com
[2011-17-C-4] Heroku & database.com
 
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
 
IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016
 
Android Development with Flash Platform
Android Development with Flash PlatformAndroid Development with Flash Platform
Android Development with Flash Platform
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
 
Flex User Group breton
Flex User Group bretonFlex User Group breton
Flex User Group breton
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data TransferLeveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
 
Gumbo Deck
Gumbo DeckGumbo Deck
Gumbo Deck
 
cvBarisGomleksizoglu-eng
cvBarisGomleksizoglu-engcvBarisGomleksizoglu-eng
cvBarisGomleksizoglu-eng
 
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talkEd presents JSF 2.2 at a 2013 Gameduell Tech talk
Ed presents JSF 2.2 at a 2013 Gameduell Tech talk
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
The Power of Enterprise Java Frameworks
The Power of Enterprise Java FrameworksThe Power of Enterprise Java Frameworks
The Power of Enterprise Java Frameworks
 

Viewers also liked

How Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting PlatformHow Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting PlatformHien Luu
 
Restful communication with Flex
Restful communication with FlexRestful communication with Flex
Restful communication with FlexChristian Junk
 
Adobe Flex 3 Component Life Cycle
Adobe Flex 3 Component Life CycleAdobe Flex 3 Component Life Cycle
Adobe Flex 3 Component Life CycleRJ Owen
 
RIA With Flex & Java Using BlazeDS
RIA With Flex & Java Using BlazeDSRIA With Flex & Java Using BlazeDS
RIA With Flex & Java Using BlazeDSHien Luu
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document FinalAli Ahmed
 

Viewers also liked (6)

How Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting PlatformHow Lucene Powers the LinkedIn Segmentation and Targeting Platform
How Lucene Powers the LinkedIn Segmentation and Targeting Platform
 
SenseiDB
SenseiDBSenseiDB
SenseiDB
 
Restful communication with Flex
Restful communication with FlexRestful communication with Flex
Restful communication with Flex
 
Adobe Flex 3 Component Life Cycle
Adobe Flex 3 Component Life CycleAdobe Flex 3 Component Life Cycle
Adobe Flex 3 Component Life Cycle
 
RIA With Flex & Java Using BlazeDS
RIA With Flex & Java Using BlazeDSRIA With Flex & Java Using BlazeDS
RIA With Flex & Java Using BlazeDS
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document Final
 

Similar to Flex For Java Architects Ledroff Breizh Jug V Blog Cc

Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applicationsMichael Chaize
 
Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Codemotion
 
Flex Air Intro
Flex Air IntroFlex Air Intro
Flex Air IntroJUG Genova
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
Flex 4.5 and mobile development
Flex 4.5 and mobile developmentFlex 4.5 and mobile development
Flex 4.5 and mobile developmentMichael Chaize
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)François Le Droff
 
Develop mobile applications with Flex
Develop mobile applications with FlexDevelop mobile applications with Flex
Develop mobile applications with FlexConFoo
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoMohd Safian
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop FinalDavid Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop Finaldcoletta
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax Worldrajivmordani
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsMichael Chaize
 
Adobe jax2010 1_dashboard
Adobe jax2010 1_dashboardAdobe jax2010 1_dashboard
Adobe jax2010 1_dashboardguest9776673
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 
Drupal and-flex-drupal camp
Drupal and-flex-drupal campDrupal and-flex-drupal camp
Drupal and-flex-drupal campClaudiu Cristea
 
Adobe flex at jax london 2011
Adobe flex at  jax london 2011Adobe flex at  jax london 2011
Adobe flex at jax london 2011Michael Chaize
 

Similar to Flex For Java Architects Ledroff Breizh Jug V Blog Cc (20)

air
airair
air
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applications
 
Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Develop multi-screen applications with Flex
Develop multi-screen applications with Flex
 
Flex Air Intro
Flex Air IntroFlex Air Intro
Flex Air Intro
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
Flex 4.5 and mobile development
Flex 4.5 and mobile developmentFlex 4.5 and mobile development
Flex 4.5 and mobile development
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)
 
Develop mobile applications with Flex
Develop mobile applications with FlexDevelop mobile applications with Flex
Develop mobile applications with Flex
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stack
 
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop FinalDavid Coletta Architecting A Shared Codebase For Browser And Desktop Final
David Coletta Architecting A Shared Codebase For Browser And Desktop Final
 
Jspx Jdc2010
Jspx Jdc2010Jspx Jdc2010
Jspx Jdc2010
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax World
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex apps
 
Adobe jax2010 1_dashboard
Adobe jax2010 1_dashboardAdobe jax2010 1_dashboard
Adobe jax2010 1_dashboard
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
Flex mobile for JUG
Flex mobile for JUGFlex mobile for JUG
Flex mobile for JUG
 
Drupal and-flex-drupal camp
Drupal and-flex-drupal campDrupal and-flex-drupal camp
Drupal and-flex-drupal camp
 
Adobe flex at jax london 2011
Adobe flex at  jax london 2011Adobe flex at  jax london 2011
Adobe flex at jax london 2011
 

More from François Le Droff

Implémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeImplémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeFrançois Le Droff
 
Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014François Le Droff
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresFrançois Le Droff
 
Soirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugSoirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugFrançois Le Droff
 
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...François Le Droff
 
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceSoirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceFrançois Le Droff
 
Quality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexQuality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexFrançois Le Droff
 
Flex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFlex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFrançois Le Droff
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingFrançois Le Droff
 

More from François Le Droff (12)

Implémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeImplémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans code
 
Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
 
Soirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugSoirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jug
 
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
 
Flex & Java @ TourJUG
Flex & Java @ TourJUGFlex & Java @ TourJUG
Flex & Java @ TourJUG
 
Flex & Java @ NormandieJUG
Flex & Java @ NormandieJUGFlex & Java @ NormandieJUG
Flex & Java @ NormandieJUG
 
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceSoirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
 
Quality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexQuality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise Flex
 
Flash Catalyst Jug
Flash Catalyst JugFlash Catalyst Jug
Flash Catalyst Jug
 
Flex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFlex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJug
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex Remoting
 

Recently uploaded

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Recently uploaded (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Flex For Java Architects Ledroff Breizh Jug V Blog Cc

  • 1. Flex for Java Architects Flex RIAs with BlazeDS, Spring et Hibernate (built with Maven) François Le Droff http://www.droff.com ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 2. François Le Droff ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 3. François Le Droff “Just another Java guy” Adobe Technology and Service Innovation Ad b T h l dS i I i 10 years in IT web 1+n.0) OSS geek : OS projects : qsos, xradar , fna, Member of ossgtp, ParisJUG, ParisJBUG Speaker at MAX, et Solution Linux blogs : http://www.droff.com http://blogs.adobe.com/francoisledroff/ p g ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 4. What about you? Java ! Spring, JEE ? ORM (JPA, EJB, iBatis, Hibernate) ? UnitTest (JUnit, TestNG, …) ? Ant and/or Maven ? Hudson, CC ? Flex ? ActionScript MXML Flex Remoting, AMF e e ot g, And may be BlazeDS, LCDS FlexUnit Cairngorm ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 5. Adobe “Innovating on both sides of the glass” ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 6. “In front of the glass” Flex ! “Behind the glass” Java ! ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 7. The RIA leader technology: Adobe Flex 3 ADOBE FLEX 3 Action Script 3 MXML Free, open source framework Less time needed to develop Expressive, highly interactive apps X-platform, consistent deployment ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 8. Adobe Flex Builder 3 Eclipse plugin Code hinting, debugging WYSIWYG Design view Memoruy and performance profilers SDK FB : Charting components advanced components, datagrid Testing Support ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 9. Flex app development and deployment Flex Builder IDE Browser Flex SDK Flash Player MXML ActionScript Flex Class Library SOAP HTTP/S AMF/S RTMP/S Web Server Compile XML/HTTP LC Data Services REST SOAP Web Services J2EE Application Server Existing Applications & Infrastructure ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 10. Flex Frameworks and Tools From a Java perspective pp Developing Frameworks F k Testing Building B ildi ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 11. Flex Frameworks and Tools: Developing Flex IDEs Eclipse FlexBuilder Code completion, refactoring, graphical UI editing, profiling Enterprise Factory IDE Peter Martin’s Cairngorm plug-in (soon) IDEA IntelliJ Netbeans Plugin ? g vi, emacs ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 12. Flex Frameworks and libraries MVC frameworks: PureMVC Cairngorm micro-architecture There are two libraries you can use to create your Cairngorm projects Cairngorm – This is the main Cairngorm library that must always be imported Cairngorm Enterprise - This is an optional library that must be used if you are using LCDS Cairngorm Enterprise was created to remove Cairngorm’s Dependency on LCDS EnterpriseServiceLocator provides support for LCDS Producer and Consumer ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 13. Flex Frameworks and libraries Inversion of Control (IoC) Container : flicc: http://flicc sourceforge net http://flicc.sourceforge.net parsley: http://www.spicefactory.org/parsley smarty pants: http://code.google.com/p/smartypants-ioc LowRA: http://osflash.org/projects/lowra prana: http://www.pranaframework.org SpringActionScript swiz: http://code google com/p/swizframework http://code.google.com/p/swizframework vegas: http://code.google.com/p/vegas fling: http://fling.riaforge.org flex-ioc: http://code.google.com/p/flex-ioc Many others interesting initiatives on top of flex frameworks Anvil Mate ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 14. Flex Frameworks and libraries Lots of AS3 and Flex OS components Lots of commercial Flex components f ll Flex Ecosystem is expanding very quickly following a similar path to Enterprise Java ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 15. Flex Logging and Debugging Similar to LOG4J, Flex 3 includes a logging framework to define custom Log targets. gg ThunderBolt AS3 : custom Flex log target log to Firebug in Firefox or to a stand alone AIR console. Many tools to inspect the component at runtime • try KapIT lab tools • ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 16. Flex code generation and quality tools Code Generation XDoclet : ActionScript Plugin @actionscript.class flex-annotations.aixcept.net annotations: @ActionScript @Cairngorm Flex-mojos JAXB MDA (acceleo plugin made by AC) … Code Quality control FlexPMD (work in progress engaged by AC) AS3NCSS (work in progress engaged by AC) ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 17. Flex Frameworks and Tools: UnitTesting FlexUnit : http://opensource.adobe.com/wiki/display/flexunit/FlexUnit ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 18. Flex Frameworks and Tools: Unit Testing FlexUnit Very similar to JUnit Event test enabled Fluint : http://code.google.com/p/fluint/ p gg p ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 19. Code Coverage – Flexcover - Custom Compiler Approach http://code.google.com/p/flexcover ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 20. Code Coverage – Flexcover - Custom Compiler Approach http://code.google.com/p/flexcover ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 21. Flex Frameworks and Tools: Testing Functional Testing Selenium for Flash Fluint, FlexMonkey, FunFX, … Other commercial products based on Adobe’s Flex Automation API : p Mercury QTP IBM Rational Functional Tester RIATest Load and Stress Testing JMeter, OpenSTA, Grinder Adobe’s Data Services Stress Testing Framework Other commercial (Flex/AMF specific) products : NeoLoad WebLoad ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 22. Mock Frameworks mock-as3: http://code.google.com/p/mock-as3 Used by Adobe Consulting Mock4AS: http://code.google.com/p/mock4as ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 23. Flex Frameworks and Tools: Building Ant : FlexAntTasks Ant : Antennae Maven : M • Flex-mojos • Alternatives : • • ServeBox • and Israfil Archetypes • ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 24. Managing Dependencies Maven (or Ant + Ivy) Demo : http://localhost:9999/hudson/job/cairngormenterprise/site/dependencies.html ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 25. Flex Frameworks and Tools: UnitTest within your Build FlexUnit within your build Maven ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 26. Flex Frameworks and Tools: Building and CC Quality within your build : CC Demo : http://localhost:9999/hudson/ ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 27. Flex Frameworks and Tools: Building : Quality Quality Reports within your build AS3NCSS http://localhost:9999/hudson/job/cairngorm/site/javancss.html FlexPMD http://localhost:9999/hudson/job/cairngorm/12/pmdResult/ ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 28. Flex Frameworks and Tools: ASDocs ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 29. LCDS & BlazeDS ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 30. Blaze DS Overview (source Xebia) ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 31. Blaze DS Overview : AMF (source Xebia) ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 32. Feature Comparison BlazeDS LiveCycle Data Services ES Feature √ √ Java Remoting √ √ Web Proxy b √ √ JMS Adapter √ √ AJAX Client Libraries √ √ Administrative Console √ √ Clustered Messaging √ √ Pub/Sub Messaging Web container based messaging service (100 s of container-based (100’s √ √ clients/CPU) √ Dedicated messaging service (1000’s of clients/CPU) √ Per-client Quality of Service √ Data Management Service √ Data Paging √ Flex-LiveCycle Integration √ RIA-to-PDF Generation √ Offline Data Synchronization (AIR) √ WSRP/Portal Integration √ SiteMinder Integration ® 32 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 33. Fna ! http://code.google.com/p/fna/ Fna is a set of samples, mavenized flex open source contributions (cf. flex-contrib-spring and event-source) and maven archetypes that uses open source tools/frameworks b il on top of J l /f k built f Java and Fl d Flex ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 34. By the way … What is ? ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 35. What’s Maven again ? (very short definition) A build tool • A dependency management tool A documentation and quality • reporting tool l ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 36. What is Maven anyway ? (its architecture) Plugin jar Projects Plugin Maven Core to build flex-mojos flex mojos Plugin war Local machine Remote repository or local install ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 37. What is Maven anyway ? (its plug-ins, a few of them…) • Antlr • Ear • Javancss • Release • Ant • Eclipse • Jboss • Repository • AntRun • Ejb • Jcoverage Jdepend • Resources • AspectJ • Ejb3 • Jdiff • Repository • Assembly • Exec • Jelly y • Sablecc • Assembly-report • Flex-mojos • Jetty • Site • Cargo • Flex-annotations • Jpox • Slimdog • Castor • Groovy • Jspc • Source • Changelog • Help • Jxr • Surefire • Changes • Hibernate2 • MAnt • Surefire-report • Commons-attributes • Idea • Native • Taglist • Checkstyle • Install • One • Tomcat • Clean • Issue • Par • Verifier • Clover • It • Plugin • Xslt • Csharp • Jalopy • Pmd • War • Cobertura • Jar • Project-info-reports • Wsdl2java • Compiler p • Javacc • Rar • Xdoclet • Deploy • Javadoc • Xmlbeans • XRadar ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 38. What is Maven anyway ? (a common project format and organization) Maven is really a process of applying patterns to a build infrastructure in order to provide a coherent view of software projects. A Common project metadata format POM = Project Object Model = pom.xml j j p Contains metadata about the project Location of directories, Developers/Contributors, Issue tracking system, Dependencies, Repositories to use etc use, ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 39. What is Maven anyway ? (a common project format and organization) A common directory organization Our sample of 6 nested projects : • src/ / – main/ • java/ • flex/ • resources/ • webapp/ – test/ • java/ • flex/ • resources/ – site/ ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 40. What is Maven anyway ? (a common way to build application) generate- sources mojo j compile mojo test mojo plug-ins package integration- test tt mojo user install mojo e.g. mvn install g bindings g deploy Well-known phases The lifecycle depends on the project type (packaging) Defined in pom.xml (pom, jar, ear, war, etc) Ex: <packaging>swc</packaging> p gg /p gg ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 41. What is Maven anyway ? (it’s even much more) Artifact repository : Used to store all kind of artifacts SWCs, SWFs, JARs, EARs, WARs, EJBs, ZIPs, plugins, … All project interactions go through the repository No more relative paths! Easy to share between teams A Dependency management Transitive dependency management p y g Snapshot handling B C Multi-module built D Environment dependent builds based on profile Project documentation site and report j Project templating through archetype ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 42. Maven : Archetypes Archetype is a Maven project templating toolkit. an original pattern or model from which all other things of the same kind are made. made provides a great way to enable developers quickly in a way consistent with best practices employed by your project or organization http://maven.apache.org/plugins/maven-archetype-plugin/index.html ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 43. Fna flex-library-archetype-archetype Demo mvn archetype:generate -DarchetypeVersion=1.3-SNAPSHOT -DarchetypeGroupId=com.adobe.ac -DarchetypeArtifactId=flex-library-archetype -DarchetypeRepository=http://fna.googlecode.com/svn/trunk/fna/fna_m2_repository/ DarchetypeRepository=http://fna googlecode com/svn/trunk/fna/fna m2 repository/ ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 44. flex-library-archetype-archetype : FlexBuilder support Import your generated project into eclipse The eclipse and FB are already generated for you yg y ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 45. How do I integrate Flex, BlazeDS, and Spring ? (with ( h Maven) ) How do I write less code through maven archetype flex annotation code generation and auto-wiring techniques? ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 46. I use Fna Blazeds-autowired-spring-hibernate-archetype It helps you generate a multi-module maven project : a f front- flex f end application communicating with the backend through Adobe's BlazeDS It showcases lots of tips and tricks on BlazeDS, Spring Integration ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 47. Spring / BlazeDS / LCDS Spring (Hibernate JPA) with Flex through BlazeDS BlazeDS remoting SpringFactory gp g y Auto-wired spring service bean into BlazeDS remoting NB: Recent fna non-related news on spring : http://www.springsource.org/spring-flex http://blog.springsource.com/2008/12/17/using-spring-blazeds-integration-m1/ http://coenraets.org/blog/2009/01/new-springblazeds-integration-test-drive/ ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 48. Maven and Flex Spring BlazeDS Flex application With Maven (FlexMojos) Code generation through flex-annotation FlexUnit ASDoc, Dependency management, Quality control ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 49. Fna Demo– Project Generation and Build Objectives Generate a project through a maven archetype yp Build, deploy and test (on jetty and hsqldb) ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 50. Generate and Build your project (2mn) mvn archetype:generate -DarchetypeVersion=1.3-SNAPSHOT - • DarchetypeGroupId=com.adobe.ac -DarchetypeArtifactId=blazeds-autowired-spring- hibernate-archetype hibernate archetype - DarchetypeRepository=http://fna.googlecode.com/svn/trunk/fna/fna_m2_repository/ ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 51. A Maven multi-module project approach Discover your « mavenized » Flex BlazeDS Spring project, its modules : java_* are plain old maven java projects flex_* are flex-mojos project blazeds _service_config is a shared resource handled through maven assembly service config ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 52. Deploy and test your project (2mn) Go to the newly created project root • Launch the build : • mvn install • Go the java web application module root to deploy your web application on • a jetty instance : mvn jetty:run • ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 53. Deploy and test your project (2mn) http://localhost:8080/fna_java_webapp/ • ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 54. Review the Flex N Spring Flex-N-Spring project Architecture ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 55. A Flex application auto-wired to a BlazeDS/Spring back-end Generation AS Code Ma S3 aven build d Spring Auto Wiring Service ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 56. Cairngorm applied to Flex N Spring ToDoList Add a Contact Contact list FrontController Arthur Ford Ford- ford@perfect.com Zaphod – zaphod@email.com Arthur – arthur@dent.com arthur@dent.com Tricia– tricia@mcmillan.com CMD CMD CMD Marvin = marvin@email.com Add a Contact Business Delegate model.getTodoList TodoList TodoListPModel + saveItem + removeItem ToDoList Service Service Spring Auto Wiring Service Service Service Cairngorm Event E t Presentation Domain Layer Integration Tier View Layer Layer L ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 57. A few magic details : Spring AutoWiring With a simple SpringFactory (and/or JavaAdapter) approach, you need to configure each new Java remote object service in remoting-config.xml. g j g g @RemotingDestination (JDK5 annotation) allows you to autowire Spring beans directly into BlazeDS. ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 58. A few magic details : Spring AutoWiring The SpringAutowiringBootstrapService checks all @RemotingDestination annotated classes registers them within BlazeDS at runtime. dynamically creates the Spring Factory. ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 59. Code generation technique ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 60. VO Code Generation The flex remoted objects are generated through flex-annotations Just add to your java remoted object @ActionScript and @ActionScriptProperty annotations ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 61. VO Code Generation Add the flex-annotations factory to your maven build ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 62. Maven (and Spring) for Flex Wrapping up … W i ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 63. Maven and Spring for Flex : Summary This maven and spring integration approach allows you to capitalize on your in-house Java/JEE/Maven/Spring expertise techniques and tools in house expertise, write less code (Most of the integration plumbing is generated) rely on a efficient build (continuous integration, test, dependencies and quality checks, documentation, release) The price to enter : Time consuming t k t i iti t th project : Ti i tasks to initiate the jt set up the project (modules) structure organization Write your build file, your somehow complex pom.xml files : y ,y pp configure/identify the classpath , project dependencies, maven plugins configure the code generation and autowiring tools The Solution: eliminate the ramp-up time by using fna maven archetype You still have to configure Eclipse (and FB) the « maven » way ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 64. Resources ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 65. Resources: Learning Flex ActionScript Developer Site- http://www.adobe.com/devnet/actionscript/ Flex Developer Site - http://www adobe com/devnet/flex/ http://www.adobe.com/devnet/flex/ Flex Development Guide - http://learn.adobe.com/wiki/display/Flex/Getting+Started Flex 3 Language Reference – http://livedocs.adobe.com/flex/3/langref/ LiveCycle Data Services ES - http://www.adobe.com/products/livecycle/dataservices/ BlazeDS Blaze DS - http://www adobe com/go/opensource blazeds http://www.adobe.com/go/opensource_blazeds Blaze DS Developer Guide - http://livedocs.adobe.com/blazeds/1/blazeds_devguide Blaze DS Javadoc - http://livedocs.adobe.com/blazeds/1/javadoc/ Adobe Labs - http://labs.adobe.com/ ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 66. Resources: Learning LiveCycle Data Services ES LiveCycle Data Services ES - http://www.adobe.com/products/livecycle/dataservices/ LCDS ES Developer Guide - http://www adobe com/go/lcds26 devguide http://www.adobe.com/go/lcds26_devguide LCDS ES Javadoc - http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/javadoc/index. html LiveCycle Data Services ES Language Reference - http://livedocs.adobe.com/livecycle/8.2/programLC/common/langref/index.html LCDS ES Stress Testing Framework - http://labs.adobe.com/wiki/index.php/Flex_Stress_Testing_Framework ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 67. Resources: Frameworks and Tools Frameworks Cairngorm - http://opensource adobe com/wiki/display/cairngorm/Cairngorm http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm PureMVC – http://puremvc.org Prana - http://www.pranaframework.org Code Generation: Flex-annotations http://flex-annotations.aixcept.net/ XDoclet ActionScript plugin http://xdoclet.codehaus.org/Actionscript+plugin Acceleo http://www.acceleo.org/pages/accueil/en Spring flex integration projects @RemotingDestination annotation : http://marceloverdijk.blogspot.com/2008/01/code-by-convention-with-flex-and- http://marceloverdijk blogspot com/2008/01/code by convention with flex and spring.html ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 68. Resources: Frameworks and Tools Building Maven Maven archetype: http://maven.apache.org/plugins/maven-archetype-plugin/index.html Maven presentations : http://blogs.codehaus.org/people/vmassol/ Maven Flex plugins: Flex-mojos htt //d Fl j http://docs.flex-mojos.info/ fl j if/ ServeBox http://www.servebox.com/foundry/doku.php?id=m2f2plugin Israfil http://www.israfil.net/projects/mojo/maven-flex2-plugin p // /p j / j/ pg Maven Flex (flex-mojos) archetypes: http://code.google.com/p/fna/ http://blogs.adobe.com/francoisledroff/ http://code.google.com/p/maven-blazeds-spring-archetype/ Flex-Mojo tutorial Fl M j t t i l The Flex, Spring and BlazeDS full stack http://www.adobe.com/devnet/flex/articles/fullstack_pt3_print.html p _p _p ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 69. Resources: Frameworks and Tools Building Ant Antennae - http://code google com/p/antennae/ http://code.google.com/p/antennae/ Testing FlexUnit - http://opensource.adobe.com/wiki/display/flexunit/FlexUnit p // p / / p y/ / Flexcover - http://code.google.com/p/flexcover/ ThunderBolt AS3 Console - http://code.google.com/p/flash- thunderbolt/wiki/ThunderBoltAS3Console th d b lt/ iki/Th d B ltAS3C l Libraries Google Code – Lots of Flex libraries and frameworks Flex.org - http://flex.org/software/components ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 70. References : Creative Commons and other open source graphics and photos remixed here http://commons.wikimedia.org/wiki/Image:Netbeans-Duke.png https://duke.dev.java.net/images/comfyChair/index.html http://flickr.com/photos/nicozz/1107511223/ http://flickr.com/photos/flattop341/1085739925/ http://flickr com/photos/flattop341/1085739925/ http://blog.xebia.fr/2008/09/16/blazeds/ http://www.breizhjug.org/ jg g ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 71. Questions ? ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.