The Scooter framework which recently released version 1.0 RC2 earlier this year, offers a Rails like, RESTful web platform for Java developers using Java. InfoQ spoke with John Chen, creator of the Scooter Framework project
The development of the Scooter framework has been inspired by the simplicity of use exhibited in Ruby on Rails. The Scooter framework presents an alternative for developing Java web applications using Struts, Spring and Hibernate, with a CRUD generator and the ActiveRecord as key features. The intent of the Scooter framework is that XML editing and annotations are not required, and that only basic knowledge in Servlet/JSP and JDK1.4 is necessary.
The final release for the Scooter 1.0 version is currently planned for June-July this year.
The current release features:
- Runtime Configuration: Change all configuration property files on the fly, including log4j.properties.
- Runtime Compilation: Edit Java source files and refresh the browser to see changes immediately.
- Runtime Schema Change: Detect database schema changes automatically.
- Flexible Controller: A POJO-like controller, before/after/skip filters, flash and global scopes, pagination support etc.
- Active Record: Support for belongsTo, hasOne, hasMany, hasManyThrough, polymorphic associations, nested include, cascade, counter cache, actAsTaggable, etc.
- Enterprise ORM: Support auto detecting composite primary key, named sql, views, functions, stored procedures, multiple databases, transactions, reference data cache, etc.
- I18N: Support internationalization at all layers of the framework.
- Web 2.0 support: AJAX, Markdown, Taggable interface.
- RESTful Web Services: Automatic RESTify data store.
- Routes: Configurable ways of controlling web access to data, resources and nested resources.
- Other features: Code generator, code statistics, auto CRUD, auto REST, data browser, logging, embedded-web server etc.
Other features planned for the 1.0 version include:
- Cache implementations: Memcached integration and web-side cache
- a simple captcha implementation
The ActiveRecord based ORM implementation is planned to be reconfigured so that it can be used in a non-web environment.
Future plans for Scooter:
- Web server performance enhancements
- Development of a dev center module: a web-based dev center for editing java code
- Documentation and help for developers
- A View template engine: The current view is based on JSP. The new template engine will allow developers to write view code once and run in multiple platforms such as browser, iPhone, iPad, Android, etc.
- Integrate with java open-source tools: JasperReport, Lucene, JQuery, etc.
- Add support for OpenID, Captcha, RSS, JSON
Documentation is available for getting started with Scooter along with current release source and binaries.
Community comments
Interesting but what about the Play! framework?
by Olivier Hubaut,
Re: Interesting but what about the Play! framework?
by Henning Sprang,
How does it compare with Grails
by Hitesh Bagchi,
Re: How does it compare with Grails
by Henning Sprang,
Yeah, okay, but...
by Dave Nicolette,
Re: Yeah, okay, but...
by Hussachai Puripunpinyo,
Re: Yeah, okay, but...
by Dave Nicolette,
Re: Yeah, okay, but...
by Henning Sprang,
Re: Yeah, okay, but...
by Dave Nicolette,
How does it compare to Stripes ?
by Arun P R,
Great work but it's time to move on
by Edwin Nathaniel,
Interesting but what about the Play! framework?
by Olivier Hubaut,
Your message is awaiting moderation. Thank you for participating in the discussion.
It's really interesting that such framework tends to reduce the inherent boilerplate of Java and try to reduce the "code-package-deploy" time.
I'm wondering how this one compete with the Play! framework as it seems more focused on the JEE aspect while the Play! one is acting more as a stateless REST alternative to the traditional JEE infrastructure that heavily rely on sessions.
How does it compare with Grails
by Hitesh Bagchi,
Your message is awaiting moderation. Thank you for participating in the discussion.
Grails provides most of these features while at the same time is pretty matured. What is it different in Scooter?
Yeah, okay, but...
by Dave Nicolette,
Your message is awaiting moderation. Thank you for participating in the discussion.
Scooter, Play, and (sorry) even Grails: The question is, Why? If you need Rails functionality, why not just use Rails?
Reminds me of when Java was young, and people were complaining because it wasn't a straight copy of C++. It is what it is. Choose a tool that does what you need. No need to warp some other tool.
Re: Yeah, okay, but...
by Hussachai Puripunpinyo,
Your message is awaiting moderation. Thank you for participating in the discussion.
Sorry. If I'd like to use Rails-like functionality and I'd like to use many existing and matured
frameworks and libraries that java has too. How should I do?
IMHO I think the only one good thing in RoR world is RoR itself.
Re: How does it compare with Grails
by Henning Sprang,
Your message is awaiting moderation. Thank you for participating in the discussion.
Grails is Groovy, This here is Java. Slight, but for many and important difference!
(and yes, I know I can develop Grails services in Java...)
Re: Yeah, okay, but...
by Henning Sprang,
Your message is awaiting moderation. Thank you for participating in the discussion.
I agree that I probably would not recommend using Grails for that reason.
But if I want Java as a language, neither Rails nor Grails are a choice.
Re: Interesting but what about the Play! framework?
by Henning Sprang,
Your message is awaiting moderation. Thank you for participating in the discussion.
Me too! I'd like to hear about the differences.
What I find a bit odd is that neither the framework's page nor the company page of "Amazing Force" reveils any real info on who's behind that project.
So as far as this goes, Play would be a better choice in that area because it already has multiple developers and it's clear who's behind it.
How does it compare to Stripes ?
by Arun P R,
Your message is awaiting moderation. Thank you for participating in the discussion.
Stripes is also a web framework that tries to reduce the configurations pains in other Java Web Frameworks... how does Scooter compare to Stripes ?
Re: Yeah, okay, but...
by Dave Nicolette,
Your message is awaiting moderation. Thank you for participating in the discussion.
JRuby
Re: Yeah, okay, but...
by Dave Nicolette,
Your message is awaiting moderation. Thank you for participating in the discussion.
1. Grails == Groovy == Java
2. Ruby/Rails runs on JRuby
Life is filled with choices.
Great work but it's time to move on
by Edwin Nathaniel,
Your message is awaiting moderation. Thank you for participating in the discussion.
I went to the framework author's (could've been his consulting company) website at www.amazingforce.com/, looks like he's a good developer that likes simple stuff (UNIX-y). But I couldn't help to notice that what he has done so far (his projects) is to re-implement stuffs that he likes/needs in Java.
While I admire his intelligent and persistent in using Java, I think it's time to move on.
For those of you who said that "yeah, Rails/Grails is not Java and if the project requires Java, we have no choice", what makes you think that you have the choice to use this framework and not limited to pure JEE, Spring, Struts, Struts2 or even (get ready for the horror) J2EE (because the of IT setups still using the old WebSphere).
Developing software is not just writing code, but involving picking your IDE, writing unit-tests, implementing a solid build/continuus integration/SCM processes, and dealing with the mindset of developers for that particular platform. My experience using Java for (web) application development hasn't been smooth. Most of the time, I had to deal with complexities of the frameworks and tools. I began to think that maybe Java is better off for writing frameworks (Spring, Struts2, EJB) or system-programming (Hadoop, HBase) and not (web) application programming.