Project Avatar Update - No Fluff Just Stuff

Project Avatar Update

Posted by: Reza Rahman on February 12, 2015

Project Avatar began 3+ years ago as a client side JavaScript project in an effort to participate in and learn from the JavaScript community. With client-side JavaScript frameworks evolving at a rapid pace and leaders starting to separate from the “pack”, we leveraged our Middleware strength and added a server-side component. Project Avatar was released to the community at JavaOne 2013, and delivered an end-to-end JavaScript programming model who’s server-side component was aligned with Java EE compatible containers like GlassFish and WebLogic. Avatar.js, the Node.js compatible runtime, provided the ability to use Node libraries within Java EE compatible containers like GlassFish and WebLogic.

However, we ran into Node.js compatibility issues with this approach, performance issues (tuning for Java EE and Node in same VM), and the programming model we introduced achieved some limited interest in the Java EE community and the Node community. With that in mind we began work on what we call “Avatar 2.0”, which focused on Node compatibility and running in its own JVM, along with continued Java interoperability and Java EE-related interoperability like layering a JavaScript library on top of JPA.

What we began to find is that the services that were of interest have begun exposing functionality via RESTful APIs directly. For example, the Oracle Database Node.js Driver makes direct Java interoperability with Java EE for Node applications less interesting. Rather than trying to reinvent Avatar again, we have decided to put it on hold and let the market evolve a bit. We’ll continue to track the industry and re-evaluate down the road.

With that being said, we have learned a lot about JavaScript and Node.js in the process, and the Avatar work has been leveraged within Oracle more than meets the eye. For example, the early need for WebSockets within Avatar resulted in Tyrus, the WebSocket implementation in GlassFish and WebLogic today. The performance improvements Avatar really needed out of Nashorn have been delivered to Nashorn users within multiple JDK releases, including the forthcoming JDK 8 Update 40. Last, we realized just how important the Node.js community is. While Avatar is being put on hold, we are ramping up our investment in Node.js with the planned delivery of the Oracle Node Cloud Service in 2015, built on native Node.js. In addition, we do see a lot of tactical interest in using Nashorn within Java Applications, as described for example by InfoQ and Adam Bien.


We'd like to thank those who have provided us feedback throughout the life of Project Avatar. It has been very much appreciated and helped us us more than you know.

Avatar and Avatar.js project pages, along with the code and related binaries, will remain available for folks to learn from and leverage.
Reza Rahman

About Reza Rahman

Reza is a recovering independent consultant and now Java EE evangelist at Oracle. He is the author of the popular book EJB 3 in Action. Reza is a frequent speaker at developer gatherings worldwide including JavaOne and NFJS. He is an avid contributor to community sites like JavaLobby and TSS. Reza has been a member of the Java EE, EJB and JMS expert groups. He implemented the EJB container for the Resin open source Java EE application server.

All views voiced are squarely mine alone, not Oracle's.

Why Attend the NFJS Tour?

  • » Cutting-Edge Technologies
  • » Agile Practices
  • » Peer Exchange

Current Topics:

  • Languages on the JVM: Scala, Groovy, Clojure
  • Enterprise Java
  • Core Java, Java 8
  • Agility
  • Testing: Geb, Spock, Easyb
  • REST
  • NoSQL: MongoDB, Cassandra
  • Hadoop
  • Spring 4
  • Cloud
  • Automation Tools: Gradle, Git, Jenkins, Sonar
  • HTML5, CSS3, AngularJS, jQuery, Usability
  • Mobile Apps - iPhone and Android
  • More...
Learn More »