QA# 10: Java EE 6: Simplified Java Development, Focus on building great products - by Subraya Mallya

This Q&A session is part of the community feedback on Java EE 6. So far the highlighted benefits are:

  • QA#1 - Standards compliance, vendor independence, milliseconds and kilobyte deployment.
  • QA#2 - Higher integrated specifications, simple and annotation driven, single-classloader WARs. Next level of industry standard
  • QA#3 - Jigsaw puzzle, Modular, standard, less xml, easy, easy, have I said easy?
  • QA#4 - Developers can concentrate on business logic, JavaEE6 is providing a standard for the infrastructure.
  • QA#5 - Faster development, less frameworks, less complexity, more great code shipped.
  • QA#6: Not your fat grandfather's enterprise Java anymore, enterprise Java renaissance
  • QA#7: Scripting framework like productivity based on standards
  • QA#8: Definite excuse to avoid Spring forever
  • QA#9: XML-less, annotated POJO, light app servers, EJB-in-a-WAR
This entry comes from Subraya Mallya who is a technology executive with years of enterprise software experience building products and running large product teams. Prior to his current venture, as an advisor/consultant, he has helped companies with their Cloud Computing, Software-as-a-Service and Platform-as-a-Service strategies. As a Chief Strategy Officer and VP of Product Management at Siterra he led the definition of product strategy, roadmap for a SaaS application that helped Wireless Infrastructure companies, Renewable Energy companies and Retail Chains roll out large capital asset programs.  Prior to that as a Director of Products at Oracle he led Product Development for various ERP, CRM and Supply Chain products. You can find more about him at http://www.linkedIn.com/in/subrayamallya and follow him on twitter @subrayamallya.



Here is a short summary of Java EE 6 from him:

Simplified Java Development that I always hoped it would be. Now we can just focus on building great products.

Keep reading for the fun stuff ...

1. How are you using Java EE 6 today ? What limits your adoption ?

We are building a consumer app that is focused towards helping people attain better health. We are using Java EE6 for building the application, both the web application as well the mobile. For the UI we use PrimeFaces. Those guys in PrimeFaces are brilliant.


2. What Java EE 6 technologies are you using and why ?

We are using JSF2.0, JPA 2.0, Facelets, EJB 3.1, JAX-RS, . I think for the first time Java EE has become simple and not this big bloated technology framework that needed significant work before you could start building your application. I am using EJB3.1 and JPA2.0 Full Profile.

On the JSF side we are currently using ManagedBean but work is underway to move to CDI. In fact that I don't need to manage a series of XML files with configuration information and just do the same with Annotations is such an improvement in productivity and reduction in maintenance overhead.

I am particularly impressed with the simplicity that has been delivered in EJB 3.1. We use Singleton (for metadata management), Asynchronous (for sending notification, managing activity stream, re-indexing), Timer (for schedule management, timed events). I remember building similar features and them taking months, now it is down to days. Having to just create a war file to package EJBs is so much more simpler

JPA has been great too. I was skeptical going in - thinking I might have to switch over to Hibernate later - but JPA 2.0 has been great. I have been able to model all kinds of entity-relationships and the ORM side has allowed me to do that. Something Pessimistic Locking with just one annotation is priceless. We are also impressed with the caching features which we have just started using.

JAX-RS is something we just started using for building out our services for data-interchange. Annotating EJBs and you get your services. We like it. Don't need to worry about underlying REST complexities.

Besides Java EE 6 stuff, we also use iText, Apache Commons, Velocity, Lucene. 100% java shop :) 



3. What is your development and deployment environment ?

All our development is done using NetBeans. We have been long time Netbeans user - you download it and it is ready to start - no messing around with plugins etc - one of the reasons we switched over from Eclipse - too much crapware - to use a PC Vendor term.
Just a recent development, we moved all our desktops from Windows to Ubuntu and we have seen CONSIDERABLE difference in speed and resource consumption of NetBeans, with the same hardware configuration. I highly recommend people move to Ubuntu if you are a NetBeans user - atleast have a dual boot and use Ubuntu.

On the Appserver side - again, I started off skeptical about GlassFish. We thought we will have to transition to the good 'ol Tomcat or JBoss. But I have to say, we have never spent time thinking about that since we started. GlassFish v3 has been good to us. Hopefully we keep getting upto date AMIs of GlassFish going forward.

On the database front, we have PostgreSQL and MongoDB. Our plans are to eventually completely move to MongoDB. We are currently figuring out how to make this indirection at the Persistence and Entity Manager layer. We are using Morphia to integrate MongoDB in.



4. What previous versions of Java EE / J2EE have you used ? How has the migration to Java EE 6 benefited ?

Almost all the versions from the time Java was introduced.


5. Describe the benefits of Java EE 6 to you in 120 characters.

Simplified Java Development that I always hoped it would be. Now we can just focus on building great products.


6. Advice for anybody who is looking at Java EE 6 for their next project ?

If you are a Java shop and have been frustrated with complexity in Java in the past, your pain has been relieved. You can get the same productivity that a RubyOnRails environment provides and with some upfront planning you can get dramatic productivity gains compared to past Java EE environments.


7. What new features you'd like to see in Java EE 7 ?

Having a hybrid database environment - RDBMS and NOSQL is reality. At this time we are working on PostgreSQL and MongoDB and working out those issues. I hope JPA gets aware of these environment and allows the indirection at the Entity Manager and Persistence Layer.

JPA is still does not have feature parity with Hibernate. Things like @Filter on the Entity is missing. It is a common scenario to have @OneToMany relation (say Department to Employee) where you want the traverse the relationship and fetch only the active employees.

Something like
@OneToMany(cascade = CascadeType.ALL, mappedBy = "dept")
@OrderBy("employeeName ASC")
@FilterBy("employeeStatus='A'")
private List<Employee> employeeList;

Another thing I would love Java EE folks to handle, especially in Web profile, is to include things like MINIFY, CSS/JS compression tools that are publicly available. These things should be part of the build. As a company developing a web product, it does not make sense for every company to solve these problems. Atleast should be a configuration in the Project properties.

Another tool I would love to be included (granted not Java related but needed by every Java development team) is ability to build a image sprite.

Thank you Subraya for taking time to prepare the answers!

Are you developing, deploying, consulting, training, authoring books, etc in Java EE 6 and would like to express your opinion in a similar format ? Drop acomment on this blog and I'll line you up for the Q&A session :-)

The Java EE 6 hub is your key resource to learn all about the technology.

And you can always try all Java EE 6 features in GlassFish and refer to an extensive set of Java EE 6 & GlassFish demos.

Also check out our youtube channel and follow us on @glassfish.

Technorati: javaee6 community feedback subrayamallya glassfish v3

Comments:

Its really great information about JAVA EE 6 as FAQ. This one help for beginner or expert to make custom applications

Posted by Deps on June 16, 2011 at 09:16 PM PDT #

Post a Comment:
Comments are closed for this entry.
About

profile image
Arun Gupta is a technology enthusiast, a passionate runner, author, and a community guy who works for Oracle Corp.


Java EE 7 Samples

Stay Connected

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today