In March 2008 I started experimenting with flex and java integration. I wrote a lot of blog posts since than and even published an article on adobe.com. For most of my blog items I used a sample that is available on google code called books-overview. During the years the sample improved a lot. By now the sample consists of Mate, BlazeDS, Spring BlazeDS and a lot of other spring technologies like spring security.

I was some time a go I had a look at the sample, since than a lot of people keep coming back to it. I still get questions about it. Therefore I decided to upgrade the sample. This blog post is about the upgrade I did which are mainly upgrades in versions of the libraries and the build configuration. Still I think it is worthwhile to have a look at it.

Before I start with this blog post I need to warn you that I am not going to explain a lot of the internals. Please browse my other flex 3 blog items to find out more.

Library upgrade

The client (flex) side

For the flex building I use Mate. I think mate is a nice framework, but it is not very active. Not many improvements are created. Still it does the job. I am also creating a flex sample for the Axon Framework using Parsley. Stay tuned for a blog post that is around the corner about this sample. I upgrade the mate to release 0.8.9

Another framework I use on the flex side is the spring-actionscript project. This project changed a lot since the last time I used it. I am now using version 0.8.1. This project is now split up into a few other modules. I did have a problem with the StringUtils class. This is in as3commons:as3commons-lang. By transitive dependecy you get 0.1 of this library. I had to upgrade to version 0.2 to make it work.

The serverside

I did not upgrade a lot on the serverside. I could have upgrade to spring 3, I’ll wait till it becomes the default for the spring blazeds integration project. They still use version 2.5.6, so I’ll stick with that. I did upgrade the Spring Blazeds Integration project to the latest release: 1.0.2.RELEASE.

Building and developing

The biggest change was in the maven configuration. Flex-mojos made a lot of improvements and is now tightly integrated with Intellij. To me that is incredibly important. My development speed with flex has enormously increased.

I use flex-mojos version 3.5.0. The configuration is now very easy. For the war project you just need to add the following plugin plus configuration:

<plugin>
    <groupId>org.sonatype.flexmojos</groupId>
    <artifactId>flexmojos-maven-plugin</artifactId>
    <version>${flex-mojos.version}</version>
    <executions>
        <execution>
            <goals>
                <goal>copy-flex-resources</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Now let us have a look at the configuration of the swf file. Again it is pretty straightforward. You have to add the flex-framework as a dependency.

<dependency>
    <groupId>com.adobe.flex.framework</groupId>
    <artifactId>flex-framework</artifactId>
    <version>${flex.sdk.version}</version>
    <type>pom</type>
</dependency>

Finally we have to configure the flex-mojos compiler plugin.

<plugin>
    <groupId>org.sonatype.flexmojos</groupId>
    <artifactId>flexmojos-maven-plugin</artifactId>
    <version>${flex-mojos.version}</version>
    <extensions>true</extensions>
    <configuration>
        <debug>true</debug>
        <configurationReport>true</configurationReport>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>com.adobe.flex</groupId>
            <artifactId>compiler</artifactId>
            <version>${flex.sdk.version}</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.adobe.flex.compiler</groupId>
            <artifactId>asdoc</artifactId>
            <version>${flex.sdk.version}</version>
            <classifier>template</classifier>
            <type>zip</type>
        </dependency>
    </dependencies>
</plugin>

The configurationReport parameter is used by intellij. This creates an xml file that intellij uses to set you compiler properties in intellij. Very nice.

Repositories

I also want to mention the additional repositories I configured. I added a repository for libraries coming from flex-mojos and another library for the spring-actionscript libraries.

<repository>
    <id>flexmojos-repository</id>
    <url>http://repository.sonatype.org/content/groups/flexgroup/</url>
</repository>
<repository>
    <id>yoolab.org-releases</id>
    <url>http://projects.yoolab.org/maven/content/repositories/releases</url>
    <releases>
        <enabled>true</enabled>
    </releases>
</repository>

The only library I still cannot find online is Mate. Therefore I added it to my google code repository. Please do the same thing if you need it for your own project. Do not use my repository because I will reach my maximum bandwidth and then I have to take it away again.

If you want to check out the state of the project while I was writing this blog, use the following tag:

http://code.google.com/p/gridshore/source/browse/#svn/tags/books-overview-1.0.0

Hope this is helpfull when exploring my sample, feel free to post remarks, improvements and questions.

Upgrading my books-overview flex, BlazeDS, Spring security application
Tagged on:                         

4 thoughts on “Upgrading my books-overview flex, BlazeDS, Spring security application

  • December 27, 2010 at 5:10 pm
    Permalink

    what is the use of books-business module?

  • April 21, 2010 at 7:20 am
    Permalink

    Nice job! Which changes should i make in flex-side of books-overview to make it multi-modular ?

    • April 21, 2010 at 7:24 am
      Permalink

      If you mean multiple swf files, your best bet is to make multiple maven projects. Other than that it should be no problem.

      The project is already modular with it’s security swc, but that might not be what you mean.

      hope that helps

Comments are closed.