In my new team at work, we’re making heavy use of Adobe Flex. We jumped-started our GUI by subbing out to some freelancers in Boston, hiring some Flex talent as contractors, and giving the opportunity to learn Flex to our more established developers, once the freelancers’ contract ended.  Unfortunately, I wasn’t aware my company was considering an Adobe technology at all, otherwise I would have done my level best to dissuade them from it. But I missed the chance to derail that decision.  For better or for worse, we’re marching forward with it anyway.

The Flex SDK is available for Linux, Windows and Mac. Sounds good so far.  However, the Eclipse plugins for Flex are only Windows and Mac (NOT Linux). SHAME ON YOU, Adobe! Fortunately, you will not need anything from Eclipse to accomplish a straightforward command-line build under Linux.  It will force me to choose between two undesirable options: to use Windows for development, or to buy an overpriced MacBook.

My company uses IBM’s Telelogic Synergy (currently we’re at 6.5, quite a bit behind the latest 8.something).  We use it to perform all of official product builds, whether they be written in C, C++, Java, or Flex.  We use the same build.xml (ant) file that the developers run from Eclipse. However, before ANT is invoked, our project contains a Makefile that runs a series of shell scripts that set up the FLEX_HOME, JAVA_HOME, JBOSS_HOME, ORACLE_HOME variables. The developers do not need the Makefile on their Windows PCs, but our Makefile and shell scripts are the interface between the traditional Linux type of bulid and the ANT world. Provides the best of both sides!  We’ve learned to live with Synergy’s warts and wrinkles over the years, but getting a Flex project to build under Telelogic Synergy 6.5 on a Linux host raised some surprising problems. Here they are, plus the workarounds we found.

  • Adobe Flex does not like the comma character that Synergy typically puts in our build paths: i.e. /home/user/ccm_wa/project/project,username-int-1.00.00. These comma-infested paths get passed to mxmlc and compc via a command-line parameter called ‘output’. Upon seeing the comma (,), Flex thinks we’re trying to specify two output directories (i.e. outputdir1,output2), which is utter nonsense. The workaround is to tell our Synergy admin to NOT use the the comma a Synergy delimiter when he builds the Synergy database that will contain your flex files. In our case, he configured our database to use the tilde (~) as a delimiter, which only has special meaning at the very beginning of a path (i.e. ~/.profile). It has been a good workaround, so far.
  • By default, Synergy databases are created in such a way that files are actually Unix symbolic links. This is no big deal in 99% of our code bases. However, Adobe Flex refuses to work with symlinks that point to files. The workaround for this is to have our Synergy admin create our prep/integration workareas  to use copies instead of symlinks. This works well too, but costs much more storage on the disk. This can be mitigated somewhat by having only your currently-active releases created in “copies” mode.  Our Synergy dude also suggested purchasing a dedicated disk volume just for our project. Well, maybe later…

It’s always frustrating working with tools that so obviously originated on the Windows platform, with Linux and Mac only thrown in as an afterthought.

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
© 2012 LinuxTampa Suffusion theme by Sayontan Sinha