An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Smith Project - a first look

May 14, 2007 ·

I downloaded the Smith Project and took it for a test drive. First off, as I mentioned at the end of my earlier blog post, the integrated Linux version, with Jetty included, does not work on Mac OS X. So I tried the WAR deployment next. My first target was JRun but it wouldn't work there. So I tried Tomcat 6. Nope. Tomcat 5.5. Success! Smith starts up (in just under 6 seconds) and some very basic CFML pages show it working. I try the admin console and all the pages come up but no setting changes take effect. Hmm... Well, let's try something a little more complicated. Let's try Fusebox 5 and the skeleton application. It doesn't like this:
<cfcatch type="any" />
It requires this:
<cfcatch type="any"></cfcatch>
There's a few of tho' in the Fusebox core files. It doesn't implement cfprocessingdirective. Fine, I'll just comment that out in fusebox5.cfm. Now I'm just getting an impenetrable compiler error about some exception already having been caught in the compiler, flagging a cfinclude. Anyone else had any experience with Smith yet?

Tags: coldfusion · oss

15 responses

  • 1 Stewart Robinson // May 15, 2007 at 4:13 AM

    I've been using it. it is not good with self closing tags yet. I've seen that in the code. I am actually trying to contribute to it. It is seriously interesting. It needs to catch up with MX 7 in features. It seems faster to me in my unit tests against MX 7 standalone. You can get round the settings not being written on J2EE servers most of the time by unpacking the WAR and running a file system version. That depends on the servlet container
  • 2 Jonathan van Zuijlekom // May 15, 2007 at 7:10 AM

    It worked out of the box on my Tomcat 6 install on windows.

    From the look of it it doesn't support the CFMX 7 application framework. CFC's however are supported.
  • 3 Jonathan van Zuijlekom // May 15, 2007 at 7:25 AM

    What I did to get it to work with Tomcat 6 (and java 6) is copy the tools.jar from the Java6 JDK lib directory to the Tomcat 6 lib directory.
  • 4 Reuben // May 15, 2007 at 8:06 AM

    I have looked at Smith and I find it has potential, but is still lacking in some key areas for me. Now that it is open source, I hope there are CF devs that can take time to help improve it and get the missing pieces working. From what I have seen so far, Smith is only suited for simple, stand-alone, framework free apps. Once some more tags and functions are worked out, then maybe it could be used with some frameworks, but not till then. I would personally like to see it compiled to run with Java 5.0/6.0 as it would then be at a higher level than the other engines out there (not counting Scorpio). Hope this helps.
  • 5 David Epler // May 15, 2007 at 8:10 AM

    Sean,

    When I 1st heard about Smith Project, I threw both Fusebox 4.1 and 5.0 core files at it. Both had problems which I posted back to the smith forum (http://www.smithproject.org/forum/posts/list/4.page)

    I haven't tried the Fusebox 3 files, but my guess is that the *nix version would work since they didn't use &lt;cfrethrow&gt;.

    Hopefully with it going OSS, they can get the issues resolved.
  • 6 Sean Corfield // May 15, 2007 at 8:43 AM

    @Stewart, I have unpacked the WAR for it to work on Tomcat but the admin UI simply does not work. For example, in Server Settings, the Save Settings button cannot be clicked. Under Mappings, after filling out the details, clicking Add Mapping causes the page to refresh but *nothing happens*.

    Any suggestions?
  • 7 Patrick McElhaney // May 15, 2007 at 9:58 AM

    What's with the empty cfcatch in FB5? That's Worse Than Failure. Literally.
  • 8 Sean Corfield // May 15, 2007 at 10:25 AM

    @Patrick, I suggest you look at the code. It's trying an optional operation that may fail. The try/catch is just to suppress the failure. Why not use fileExists()? Because on some locked down shared hosts you get a sandbox permissions error if you try fileExists() on a non-existent file (so you'd need a try/catch with an empty catch anyway).
  • 9 Brandon Harper // May 15, 2007 at 10:39 PM

    One bugaboo I have about it at the moment is that the forums don't seem to be getting attention. For one thing, the link off of their page is broken so you get a 404 when trying to go to the forums... I can only get there by googling for them.

    If you post a question to the forum no one even acknowledges it. It's something I'd really like to get behind and would definitely even submit patches for if I felt like there were someone there (after a quick browse through the source code, I already see some performance enhancements which could be made to the Java code that the parser generator creates).

    I'm glad they finally open sourced the code, but I wish that the developers provided more visibility. Or maybe there is another venue besides the forum that I'm missing...
  • 10 Sean Corfield // May 15, 2007 at 11:50 PM

    @Brandon, that's just because they don't have their site alias set up properly. If you hit www.smithproject.org then the link to the forums works just fine. I'll update my blog posts to use the www version.
  • 11 Fred B // May 16, 2007 at 6:46 AM

    It will be very interesting to see how Smith develops. Will it support the CFML enhancements in BlueDragon or rigidly follow CFMX? Will it contain enhancements of its own?
  • 12 Brandon Harper // May 16, 2007 at 8:38 AM

    @Sean

    Ah, makes sense. I usually omit the www just out of habit being that there is rarely a good technical reason to use it these days (I've been watching the project for awhile).
  • 13 Aaron Lynch // May 29, 2007 at 2:13 PM

    Sean (and everyone), Dave Shuck and I have recently started to put together some resources relating to Linux/Apache/MySQL/Smith and we are going to be offering up some virtual machines ready to run CFML under Smith. (Please please feel free to add to the &quot;library&quot;)

    More on this at http://cfopen.instantspot.com

    I honestly haven't run much CF in it, but have been trying to get tools together that would help everybody get their hands dirty with it.
  • 14 Reuben // May 30, 2007 at 8:32 AM

    Aaron, It is great that you guys set this up. Are you going to be using the Jetty engine that comes w/ Smith as part of your deploy and embedding into Apache? It is a good call on your part to release these as pre-configured VMs. I think Ubuntu and CentOS are both good choices for your host also as they are well received in data centers. I look forward to seeing what you guys put out.
  • 15 Aaron Lynch // May 30, 2007 at 9:25 AM

    Reuben, we decided against using Jetty and opted to use Tomcat instead. Mainly because I think it offers more options to the user (maybe you could drop in a Railo instance and a ColdFusion instance for benchmarking tests) :)

    We have tossed that idea around (multiple CF processors on one VM), but it won't be made part of this cfopen concept. Merely because the other options are not open source.