Announcement Announcement Module
Collapse
No announcement yet.
General Availability of Spring Web Flow 2 Announced Page Title Module
Move Remove Collapse
This topic is closed
X
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • General Availability of Spring Web Flow 2 Announced

    From the official announcement at www.springframework.org:
    --

    Dear Spring Community,

    We are pleased to announce general availability of Spring Web Flow 2. Download | Documentation

    Spring Web Flow is the project in the Spring Portfolio that focuses on the development of rich web applications. As a Spring project, Web Flow builds on the Spring Web MVC framework to provide:
    • A domain-specific-language for defining reusable controller modules called flows
    • An advanced controller engine for managing converational state
    • First-class support for using Ajax to construct rich user interfaces
    • First-class support for using JavaServerFaces with Spring
    The modules of the Web Flow 2 distribution and their relationship with the Spring Framework are illustrated below:

    What's in Web Flow 2



    Spring Web MVC

    The Spring Web MVC framework, a module of the Spring Framework distribution, provides the foundation for developing web applications with Spring using the proven ModelViewController paradigm. Each of the modules of the Web Flow distribution builds on this foundation.

    Spring Web Flow

    The Web Flow module is a MVC extension that allows you to define Controllers using a domain-specific-language. This language is designed to model user interactions that require several requests into the server to complete, or may be invoked from different contexts.

    Spring JavaScript

    Spring JavaScript is a JavaScript abstraction framework that allows you to progressively enhance a web page with behavior. The framework consists of a public JavaScript API along with an implementation that builds on the Dojo Toolkit. Spring.js aims to simplify the use of Dojo for common enterprise scenarios while retaining its full-power for advanced use cases.
    Spring JavaScript can work with any server-side framework. The Web Flow 2 distribution includes convenient integration between Spring JavaScript and Spring Web MVC for processing Ajax requests.

    Spring Faces

    The Spring Faces module contains Spring's support for JavaServerFaces. This support allows you to use JSF as a View technology within a familiar Spring MVC and Web Flow Controller environment. With this architectural approach, you combine the benefits of the JSF UI component model with the benefits of a Web MVC architecture. Spring Faces also includes a lightweight component library built on Spring JavaScript for declaratively enabling Ajax and client-side validation behaviors in a progressive manner.

    Themes of the Web Flow 2 Release

    In addition to introducing the new Spring Faces and Spring Javascript modules, the Web Flow 2 release effort addresses two major themes: Integration and Simplicity.

    Integration


    Across each of the modules, the Web Flow 2 distribution adds a number of interesting integrations that allow you to enrich your web applications. These integrations support:
    • Using Spring Security to secure your flows in a declarative manner
    • Using Tiles for JSP page composition and Ajax partial-rendering
    • When using JSF, using Facelets for page composition and layout
    • When using JSF, using Apache Trindad and JBoss RichFaces component libraries
    • Using the Dojo widget system in a progressive manner; a manner that degrades gracefully if JavaScript is not available on the client
    Simplicity

    The flow definition language has been simplified tremendously in Web Flow 2 while becoming more powerful overall. These simplifications include:
    • An appoximate 50% overall reduction in lines-of-code when comparing a version 2 flow definition with its version 1 equivalent (example: version 2 vs version 1)
    • A concise syntax for invoking actions using an Expression Language (EL), with support for both the Unified EL and OGNL
    • Declarative model binding and validation, with support for convention-over-configuration
    • Support for reuse at both the flow and state levels using flow definition inheritance
    • Enhanced modularity, allowing a flow and its dependent resources to be packaged togeher in a self-contained bundle
    Release Notes
    • Web Flow 2 requires Java 1.4 or greater and runs on all major Java EE platforms including Tomcat, Jetty, Websphere, WebLogic, and JBoss.
    • Web Flow 2 requires Spring Framework 2.5.4 or greater.
    Getting Started
    • To get started using a build system such as Maven or Ant+Ivy, access Web Flow artifacts from the Maven Central Repository.
    Additional Community Resources
    • Explore Spring Web reference applications on-line. The Spring Travel application showcases the integrated Web Flow 2 feature set and is included in the distribution. The SpringSource Enterprise Bundle Repository is a real-world application in production built on Spring 2.5 and Spring Web Flow 2.0.
    • If you are an existing Web Flow 1 user, review the migration guide to help in upgrading to Web Flow 2. The WebFlowUpgrader tool automates the conversion of your flows to the version 2 syntax
    • Watch for upcoming articles on Web Flow 2 by subscribing to springframework.org
    --

    Thanks very much to the community of early Web Flow 2 adopters here on this forum; the feedback and community has proven absolutely essential to getting Web Flow where it is today. Enjoy!
    Last edited by Keith Donald; May 16th, 2008, 07:03 AM.

  • #2
    Congratulations on the release!

    Comment


    • #3
      I appologize for asking what hopefully is an easy question to answer. I am trying to follow the simple directions (shown immediately below) to prepare the sample applications. The directions are so simple that it makes the error message I am receiving (shown at the bottom of this post) all the more frustrating. I have java 1.5 and ant 1.7 on the classpath. I get the expected response when I type "java -version" and "ant -version". The instructions said to simply type "ant", which I did as instructed. Yet, I receive the 3 incomprehensible error messages shown below.

      Thank you in advance for suggestions...

      # Download the Spring Web Flow release.
      # Expand the release archive.
      # Access the projects/build-spring-webflow directory and run ant. This will build Web Flow along with the .war files for the sample projects. The build will take a few minutes to complete since it retrieves the libraries needed to build from the SpringSource Bundle repository. Please note that ant 1.7 and Java 5 are required to build.

      C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\build-spring-webflow>ant
      Buildfile: build.xml

      clean:
      [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding

      clean:
      [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding
      [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-js

      clean:
      [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-js
      [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-webflow

      clean:
      [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-webflow
      [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-faces

      clean:
      [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-faces
      [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-webflow-samples\booking-faces
      Trying to override old definition of task dist-jar

      clean:
      [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-webflow-samples\booking-faces
      [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-webflow-samples\booking-mvc
      Trying to override old definition of task dist-jar

      clean:
      [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-webflow-samples\booking-mvc

      clean-integration:

      jar:
      [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding

      ivy.init:

      resolve.init:

      resolve.compile:
      [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding

      BUILD FAILED
      C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\multi-bundle\artifact.xml:45: The following error occurred while executing this line:
      C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\multi-bundle\common.xml:70: The following error occurred while executing this line:
      C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\common\common.xml:80: ivy:cachepath doesn't support the "log" attribute

      Total time: 1 second
      C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\build-spring-webflow>

      Comment


      • #4
        Do you have an old version of ivy in your system path or ant lib path that is getting picked up instead of the version included in the distribution?

        Comment


        • #5
          Thank you... Your suggestion in conjunction with this post: http://forum.springframework.org/sho...d.php?p=176131
          solved the problem. A few months ago when I was reading Erwin Vervaet's book "Working with Spring Web Flow" I had installed IVY beta 1 inside my ant 1.7.0 directory. That was the problem. The SWF ant build apparantly won't work if IVY beta 1 is accessible. I removed IVY beta 1 and the SWF ant build got past that problem but encountered a new problem:

          [ivy:cachepath] May 27, 2008 4:38:18 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
          [ivy:cachepath] INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
          [ivy:cachepath] May 27, 2008 4:38:18 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
          [ivy:cachepath] INFO: Retrying request
          The new problem was discussed by someone else in this post: http://forum.springframework.org/showthread.php?t=54603

          Like the person who posted ealier, quote,
          yes, I tried to set ANT_OPTS but this failed miserably
          (I too am behind a firewall).

          The other poster had to jump hoops unjarring, modifying, and then re-jarring jets3t.jar. Surely there is an easier way?

          Thank you in advance...

          Comment


          • #6
            I bit the bullet and did it the hard way by creating a new jets3t.properties file and inserting it into this jar file:
            C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\lib\ivy\jets3t.jar
            The contents of the new jets3t.properties was:

            httpclient.proxy-autodetect=false
            httpclient.proxy-host=secret.secret.org
            httpclient.proxy-port=8080
            Well, that got me past the problem. (Incidentally, here is a link explaining jets3t.properites: http://jets3t.s3.amazonaws.com/toolk...iguration.html )

            Now however there is another problem. This problem is that the ant build gives these error messages:

            ...snip...
            [ivy:cachepath] s3://repository.springsource.com/ivy/libraries/external/org.ognl/com.springsource.org.ognl/2.6.9/ivy-2.6.9.xml
            [ivy:cachepath] module not found: javax.el#com.springsource.javax.el;2.1.0
            [ivy:cachepath] ==== integration: tried
            [ivy:cachepath] C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding/../integration-repo/javax.el/com.springsource.javax.el/2.1.0/ivy-2.1.0.xml
            [ivy:cachepath] -- artifact javax.el#com.springsource.javax.el;2.1.0!com.sprin gsource.javax.el.jar:
            [ivy:cachepath] C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding/../integration-repo/javax.el/com.springsource.javax.el/2.1.0/com.springsource.javax.el-2.1.0.jar
            [ivy:cachepath] ==== bundle-external-repository: tried
            [ivy:cachepath] s3://repository.springsource.com/ivy/bundles/external/javax.el/com.springsource.javax.el/2.1.0/ivy-2.1.0.xml
            [ivy:cachepath] ==== library-external-repository: tried
            [ivy:cachepath] s3://repository.springsource.com/ivy/libraries/external/javax.el/com.springsource.javax.el/2.1.0/ivy-2.1.0.xml
            [ivy:cachepath] ::::::::::::::::::::::::::::::::::::::::::::::
            [ivy:cachepath] :: UNRESOLVED DEPENDENCIES ::
            [ivy:cachepath] ::::::::::::::::::::::::::::::::::::::::::::::
            [ivy:cachepath] :: org.apache.commons#com.springsource.org.apache.com mons.logging;1.1.1: not found
            [ivy:cachepath] :: org.springframework#org.springframework.beans;2.5. 4.A: not found
            [ivy:cachepath] :: org.springframework#org.springframework.context;2. 5.4.A: not found
            [ivy:cachepath] :: org.springframework#org.springframework.core;2.5.4 .A: not found
            [ivy:cachepath] :: org.ognl#com.springsource.org.ognl;2.6.9: not found
            [ivy:cachepath] :: javax.el#com.springsource.javax.el;2.1.0: not found
            [ivy:cachepath] ::::::::::::::::::::::::::::::::::::::::::::::
            I could not find any help googling this.

            Suggestions appreciated.
            Thanks in advance....

            Comment


            • #7
              Well, what an adventure you are having building the code...

              I've pointed the Spring Build team at this thread - I hope we can come up with a better solution for those behind proxies like you in then next maintenance revision of Web Flow.

              As for your last error, that one is puzzling. Perhaps the repository was just not accessible at the time you built? I'd try cleaning and rebuilding - I wouldn't expect that error to occur consistently unless something got corrupted with the build configuration (which is unlikely). You might also want to consider clearing out the ivy-cache and integration-repo directories that get created within projects to be on the safe side.

              Keith

              Comment


              • #8
                Thanks for the encouragement. I went home and did a fresh install of everything from scratch. The build went perfectly without any problems. It took 7 minutes. Note at home there is no firewall.
                However, back at work I entirely deleted
                "C:\JavaLibs\spring-webflow-2.0.1.RELEASE"
                and recreated it from scratch by un-zipping
                spring-webflow-2.0.1.RELEASE.zip
                and re-inserting property file jets3t.properties into
                C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\lib\ivy\jets3t.jar
                Alas however, the exact same problem occured:

                clean-integration:

                jar:
                [subant] Entering directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding

                ivy.init:
                [ivy:settings] :: Ivy 2.0.0-beta2 - 20080225093827 :: http://ant.apache.org/ivy/ ::
                [ivy:settings] :: loading settings :: file = C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\common\ivysettings.xml

                resolve.init:

                resolve.compile:
                [ivy:cachepath] May 28, 2008 10:34:47 AM org.apache.commons.httpclient.HttpMethodBase readResponseBody
                [ivy:cachepath] INFO: Response content length is not known
                [ivy:cachepath] May 28, 2008 10:34:48 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
                [ivy:cachepath] INFO: I/O exception (javax.net.ssl.SSLHandshakeException) caught when processing request: Remote host closed connection during handshake
                [ivy:cachepath] May 28, 2008 10:34:48 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
                [ivy:cachepath] INFO: Retrying request
                [ivy:cachepath] May 28, 2008 10:34:48 AM org.apache.commons.httpclient.HttpMethodBase readResponseBody
                [ivy:cachepath] INFO: Response content length is not known
                [ivy:cachepath] May 28, 2008 10:34:48 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
                [ivy:cachepath] INFO: I/O exception (javax.net.ssl.SSLHandshakeException) caught when processing request: Remote host closed connection during handshake
                [ivy:cachepath] May 28, 2008 10:34:48 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
                [ivy:cachepath] INFO: Retrying request
                (...snip...)

                [ivy:cachepath] C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding/../integration-repo/javax.el/com.springsource.javax.el/2.1.0/ivy-2.1.0.xml
                [ivy:cachepath] -- artifact javax.el#com.springsource.javax.el;2.1.0!com.sprin gsource.javax.el.jar:
                [ivy:cachepath] C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding/../integration-repo/javax.el/com.springsource.javax.el/2.1.0/com.springsource.javax.el-2.1.0.jar
                [ivy:cachepath] ==== bundle-external-repository: tried
                [ivy:cachepath] s3://repository.springsource.com/ivy/bundles/external/javax.el/com.springsource.javax.el/2.1.0/ivy-2.1.0.xml
                [ivy:cachepath] ==== library-external-repository: tried
                [ivy:cachepath] s3://repository.springsource.com/ivy/libraries/external/javax.el/com.springsource.javax.el/2.1.0/ivy-2.1.0.xml
                [ivy:cachepath] ::::::::::::::::::::::::::::::::::::::::::::::
                [ivy:cachepath] :: UNRESOLVED DEPENDENCIES ::
                [ivy:cachepath] ::::::::::::::::::::::::::::::::::::::::::::::
                [ivy:cachepath] :: org.apache.commons#com.springsource.org.apache.com mons.logging;1.1.1: not found
                [ivy:cachepath] :: org.springframework#org.springframework.beans;2.5. 4.A: not found
                [ivy:cachepath] :: org.springframework#org.springframework.context;2. 5.4.A: not found
                [ivy:cachepath] :: org.springframework#org.springframework.core;2.5.4 .A: not found
                [ivy:cachepath] :: org.ognl#com.springsource.org.ognl;2.6.9: not found
                [ivy:cachepath] :: javax.el#com.springsource.javax.el;2.1.0: not found
                [ivy:cachepath] ::::::::::::::::::::::::::::::::::::::::::::::
                [ivy:cachepath]
                [ivy:cachepath]
                [ivy:cachepath] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
                [subant] Leaving directory: C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-binding

                BUILD FAILED
                C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\multi-bundle\artifact.xml:45: The following error occurred while executing this line:
                C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\multi-bundle\common.xml:70: The following error occurred while executing this line:
                C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\common\common.xml:80: impossible to resolve dependencies:
                resolve failed - see output for details

                Total time: 17 seconds
                C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\build-spring-webflow>

                Comment


                • #9
                  Robert, I've updated Spring Build and Spring Web Flow to make it a bit easier to configure the jets3t properties in the next release (or in SVN now). To do this, there will now be a jets3t.properties in /spring-build/lib/ivy to modify. If you want to check out the source code and give this I try, I'd love to know if it works.

                  As for your latest problem, I'm not quite sure what's going on there. Are you able to ping repository.springsource.com? And if so, what host does it resolve to?

                  Comment


                  • #10
                    Thanks for the quick response. I'd love to check out the source from SVN and try now, but I can't allocate the time at work to do that.

                    When I ping from a DOS prompt at work (with a firewall) the response is:

                    C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\build-spring-webflow>ping repository.springsource.com

                    Pinging s3-2-w.amazonaws.com [207.171.181.229] with 32 bytes of data:

                    Request timed out.
                    Request timed out.
                    Request timed out.
                    Request timed out.

                    Ping statistics for 207.171.181.229:
                    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

                    C:\JavaLibs\spring-webflow-2.0.1.RELEASE\projects\build-spring-webflow>
                    Forgive my newbie question, but is there any way to bypass ant/IVY and simply download as a zip file the WebFlow sample apps in the state they would be in if the ant build were completing okay?

                    Comment


                    • #11
                      That ping is what I'd expect, so I'm not sure what the problem is. If you're planning on spending any more time on trying to make this work, I'd definitely thing about checking out the latest source.

                      Code:
                      svn co https://springframework.svn.sourceforge.net/svnroot/springframework/spring-webflow/trunk
                      We've stopped shipping a zip file with the JARs in it because it was getting to be about 60MB. That and this has worked every time up until now.

                      Comment


                      • #12
                        Maven is working perfectly, which makes me wonder if there are perhaps more/different properties that need to be set in jets3t.properties of spring-webflow-2.0.1.RELEASE\projects\spring-build\lib\ivy\jets3t.jar

                        For Maven, below is the contents of my
                        C:\Documents and Settings\B1RXGC0\.m2\settings.xml
                        :

                        <settings xmlns="http://maven.apache.org/POM/4.0.0"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                        http://maven.apache.org/xsd/settings-1.0.0.xsd">

                        <localRepository>C:\JavaLibs\apache-maven-2.0.9\rdg_local_repository</localRepository>

                        <proxies>
                        <proxy>
                        <active>true</active>
                        <protocol>http</protocol>
                        <host>p1web1.censored.censored</host>
                        <port>8080</port>
                        <nonProxyHosts>172.17.censored.censored|127.0.0.1| localhost</nonProxyHosts>
                        </proxy>
                        </proxies>

                        </settings>
                        The reason I know Maven works fine is that I just ran okay the Spring Batch example using maven that is the subject is this article:

                        http://java.dzone.com/news/spring-batch-hello-world-1

                        Comment


                        • #13
                          Yeah, I wonder if you let it auto-configure the proxy but set s3service.https-only=false to bypass the SSL part.

                          Comment


                          • #14
                            I tried every combination including that one. I think the next step for me is to install an SVN client and look at the source code.
                            Last edited by RobertGloverJr; May 30th, 2008, 11:18 PM.

                            Comment


                            • #15
                              I've settled on subclipse as my subversion client, and pointed it to the Spring Projects subversion site at https://springframework.svn.sourceforge.net/svnroot/springframework

                              And now, as recommended by Ben Hale, I'm looking in SVN at spring-webflow/trunk. It appears that the source code I should be looking at is: org.springframework.aws because of this in ivy.xml:

                              <dependencies defaultconf="global->default">
                              <dependency org="org.springframework.aws" name="spring-aws-ant" rev="1.0.2"/>
                              </dependencies>
                              The reference I find to "org.springframework.aws" is:

                              C:\javalibs\spring-webflow-2.0.1.RELEASE\projects\spring-build\lib\ivy\org.springframework.build.aws.ivy.ja r
                              So obviously I need to find the source code for that jar file ( org.springframework.build.aws.ivy.jar ) .

                              However, I can't find the source code of that jar file ( org.springframework.build.aws.ivy.jar ) in SVN.

                              That jar file ( org.springframework.build.aws.ivy.jar ) contains these 5 classes:

                              S3Repository.class
                              org.springframework.aws.ivy.jar.S3RepositoryExcept ion.class
                              org.springframework.aws.ivy.jar.S3Resolver.class
                              org.springframework.aws.ivy.jar.S3Resource.class
                              org.springframework.aws.ivy.jar.S3Utils.class
                              Can anyone point me to where the source code for it is?

                              In SVN I see "spring-aws" but it contains packages that have the word "maven" in the package name instead of "ivy". For example: org.springframework.aws.maven.AbtractWagon.java
                              Last edited by RobertGloverJr; May 31st, 2008, 12:18 AM.

                              Comment

                              Working...
                              X