Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Charles Humble on Feb 05, 2008 08:34 AM
ZeroTurnaround's JSPWeaver is a real-time interpreter for JSP which aims to remove the first-person penalty encountered when the server creates and compiles the background servlet from the JSP mark-up.
Configuring the product is straightforward. You put the jspweaver.jar into your web application's \WEB-INF\lib, and add some basic configuration information to the application's web.xml file to tell it to use the interpreter for *.jsp URLs:
<servlet>
<servlet-name>weaverServlet</servlet-name>
<servlet-class>com.zeroturnaround.jspweaver.JspInterpretingServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>weaverServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
Once the application server is re-started JSP pages will be interpreted on the fly.
The interpreter currently supports JSP 1.2-2.0. The 1.0 release supports the full JSP standard including common syntax, XML syntax and Java scriplets. It is container agnostic and should work with any JSP compliant container although the currently tested containers are:
Support for JSP 2.1 is planned for the next release and Jevgeni Kabanov at ZeroTurnaround told InfoQ he expects it to be available in about a month. He also gave us a few more details on how the product works:
"It pretty much parses the JSP (either XML-style or original syntax, two separate parsers) and creates an in-memory representation of the pages, which can be used to render the actual output. Since the parsing is very quick and there is no translation it is much faster than compilation can ever be. We also use a patched version of BeanShell to interpret the embedded Java scriplets."
A free trial version is available from ZeroTurnaround. A license costs $49/seat.
Open Source Middleware Reference Architecture Whitepaper
Velociti Partners Customer Survey
Business Benefits of Open Source SOA
Disclaimer: I wrote what is effectively a competing project, but I don't make any money from it, and I don't have a huge amount of attachment to it Parsing scriptlets in an interpreter is hard. You have conditionals that cross scriptlets, and it's incredibly difficult to support those without converting the whole thing into Java. Does JSPWeaver really do it, or does it just do a "good enough" job (which is all slim does too) Side note: Strictly speaking, JSPWeaver cannot be a standard compliant JSP implementation (not that it claims to be) as the JSP spec requires that pages be converted into servlets. (Uck!)
Disclaimer: I wrote what is effectively a hard.
You have conditionals that cross scriptlets, and it's incredibly difficult to support those without converting the whole thing into Java.
Does JSPWeaver really do it, or does it just do a "good enough" job (which is all slim does too)
Yep, it's hard, and yes we do that.
Parsing scriptlets in an interpreter is hard.
You have conditionals that cross scriptlets, and it's incredibly difficult to support those without converting the whole thing into Java.
Does JSPWeaver really do it, or does it just do a "good enough" job (which is all slim does too)
Yep, it's hard, and yes we do that.
Somehow every time I post here formatting ends up messed up :(
Great job, keep it up. I am going to give it a try.
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
4 comments
Watch Thread Reply