0.13.3 10-Apr-2014

RESTful Java Web Framework

The idea is simple - to make a RESTful XML API available in a browser-friendly format renderable with XSL stylesheets. With ReXSL you develop your web application as a RESTful “web service” while XSL stylesheets transform it to an HTML web site.

The diagram explains how components are connected to each other. It is a classic Model-view-controller (MVC) pattern, where JAXB POJOs play a role of a Model. JAX-RS resources are Controllers. Stylesheets with a powerful XSL 2.0 language are Views.

UML diagram with layers

You should be familiar with Java 6, Groovy, Apache Maven, XML, XSL 2.0, XPath 2.0, XML Schema, JAX-RS 2.0, JAXB 2, Java Servlet API, REST, HATEOAS, HTTP 1.1, TDD. If any of these technologies are new for you - ReXSL won’t work. However, we strongly recommend to learn them.

These are the reasons why you should consider ReXSL over other Java web front frameworks like JSF, JSP, Servlets, Wicket, Spring MVC, Struts, Tapestry, Cocoon, Context Framework, and others:

  • Graphic design evolves in parallel with Java classes

  • Web front-end is an API at the same time

  • Static analysis of generated CSS and HTML is build automated

  • Layout is decoupled from data

  • many others… (to be continued)

This article explains how to create a working web application using ReXSL in five minutes: Quick Start Guide. s3auth.com is an open source web application that is build using ReXSL framework: see its code in github. Other projects that use ReXSL: expinia.com, netbout.com (email us to get into this list).

ReXSL pays a lot of attention to unit and integration testing. Actually, 80% of our code is for helping you to test your application. As soon as you understand how ReXSL works (and learn the technologies listed above), read this article: Introduction to ReXSL Testing.

Post us a message in our Google Newsgroup if you’re interested or just curious what is it all about. Besides that, don’t hesitate to submit a ticket to Github when something doesn’t work or you need more features.

built by maven