Skip to content

Java EE 6 : What’s up next

I was invited to the YaJUG (Yes Another JUG) in Luxembourg. I gave a talk about what's coming next in Java EE 6. It was a very nice venue with nice people. I offered 3 copies of my book that were given to different attendees.

During the break I had lots of question about Java EE 6 and, of course, the impact it will have on other frameworkd such as Spring. Well, I have a personal point of view on that matter… but only future will tell ;o)

You can see other photos of the event on IT News web site.

Read More →

Everybody should be able to easily observe JSRs

This year I‘ve talked a lot about opening up the JCP. I first did a round table at QCon with Rod Johnson and Patrick Curran (chair of the JCP) back in February. Then at Java One (with the same folks) and in May Patrick Curran came to the Paris JUG … and now a BOF at Devoxx with Corina Ulescu about this sensible topic. The questions are always the same : should the JCP be more open, and how ? To the first question, I think that most of the people agree. Yes, the JCP should be a more transparent organization. But to which extent should we open it ? And if we find a solution, do we have to formalize it and impose it (that means changing the JCP process). Basically, a spec lead can decide of the tools he/she wants to use. If he/she wants a public mailing list, that‘s fine, if not, that‘s fine too. The JCP does not impose a spec lead a way of communicating. So, at the moment, there‘s a bit of everything : closed JSRs (no wiki, no public mailing list…), opened ones (open source reference implementation, open mailing list…), and anything in between. But which model to choose ? I have to say, I‘m between two waters here. I‘m expert member on JSR-316 (Java EE 6), JSR-317 (JPA 2.0) and JSR-318 (EJB 3.1), that‘s a lot of work. Every day I receive […]

Read More →

Genesis, EJBs… it depends which version

I have two passions : Java and Music. And recently, I faced a common problem while trying to explain Why I love EJBs and Why I love Genesis When I say I love Genesis, I’m talking about the version 1.0 of the band. The one from 1967 to 1975 (even 1977) when it was a progressive rock formation. Then Peter Gabriel left, Phil Collins stopped playing drums, started singing, and that was the end of Genesis V1.0 (with tracks like Supper s ready or albums like Selling England by the Pound ) and the beginning of 2.0 (Invisible Touch, We Can‘t Dance…). When I say I love EJBs I’m talking about Version 3 not V1 or V2 from 1998 to 2006 when it was a heavyweight model. Phil Collins should have renamed the band, and the JCP should have renamed their component model. Talking to people would be easier.

Read More →

Tutorials on Java EE 6 testability

Unit testing is an important topic in projects. J2EE has suffered from a lack of testability and, clearly, got overtaken by light open source containers. Java EE 6 is taking that into account and unit testing an EBJ, for example, will be simple and standardised (through a embeddable container API). As Roberto Chinnici mentioned on his blog, Java EE 6 is scheduled for Q1 2009… but reference implementations are already on there way. So I‘ve decided to write a series of tutorials focusing on testing Java EE 6 components. The first one is about testing an entity with Eclipse Link (the reference implementation of JPA 2.0). It uses MySQL, Embedded Derby, Maven, JUnit and DbUnit. Read the tutorial Testing Java EE 6 components : JPA 2.0

Read More →

A brief history of Object Relational Mapping

The other day I was at a bar talking to a friend about Entity Beans CMP. We both agreed that, today, this ORM model is crap. But he said, at the time it was created, it was the best we could do In general I would agree with that. We can’t say that the plane of the Wright brothers was crap. Compare with today, it is, but at the time, it was revolutionary. Were Entity CMPs revolutionary ? No, because it wasn‘t the very first ORM model. There was TopLink before. Here is a brief history of ORM 1994 : The product TopLink for Smalltalk was sold 1996 : a Java version of TopLink was added to the product line, named TopLink for Java. 1997 : 3M was the first company to officially buy TopLink for Java. 1999 : TopLink for Java receives a Java Report award 1999 : TopLink for WebLogic was developed and based on POJOs 1999 : The JSR 19: Enterprise JavaBeans 2.0 specification is initiated 2000 : JSR 12: Java Data Objects specification is initiated 2000 : After the joint acquisition of The Object People in April 2000 the consulting (non-TopLink related) division was sold to BEA, and TopLink was sold to a new startup called WebGain. 2001 : The JSR 19: Enterprise JavaBeans 2.0 is released in september 2001 2001 : The JSR 153: Enterprise JavaBeans 2.1 is started (bringing Web Services support and a […]

Read More →

Java EE 6 Reference Implementations

Java EE 6 (JSR 316) is arriving quickly (Q1 2009). With most of the specifications, comes a TcK (Technology Compatibility Kit) and a reference implementation (RI). Here is the list of the main reference implementations : .GlassFish V3 is the reference implementation for EJB 3.1 and Servlet 3.0 .EclipseLink : Java Persistence API (JPA 2.0) .Jersey : Reference Implementation for building RESTful Web services (JAX-RS 1.0) .Metro : Web Services (JAX-WS 2.2) .JBoss Seam for Web Beans 1.0 .Mojarra for JSF 2.0

Read More →

Java EE 5, second edition

The first edition of my Java EE 5 book has been sold out ! In fact it’s 2500 copies that have been sold in 14 months. It doesn’t sound much like that, but remember that it’s written in French (much smaller market than the English one) and talks about evil technology : EJB ! So, it’s a best seller (JK Rolling , if you read this blog, be prepare to suffer high competition). Eyrolles, my editor, asked me to prepare a second edition, and that‘s what I did last spring. So here it is, the second edition just came out with some new stuff. Of course, I used this second edition to update references, software version and correct some erratums. I also add new definitions and gave more explanations and clarifications on several topics (based on the feedback I received). And I add new paragraphs on new topics : more about GlassFish, GlassFish admin tasks (such as asadmin), and GlassFish configuration on JPA I explain how to persist an object in more than one table, the many to many relationship and inheritance. There is also more information about JPQL I‘ve also add more on application client container (ACC) more on JAXB2 and XML mapping and a new full chapter about how to create a Java EE 5 applications with Intellij Idea So if you know how to read French and want to know more about Java EE 5, just do […]

Read More →

Back from the TSS Symposium in Prague

Last Wednesday I‘ve landed at noon in Prague, quickly took a taxi, arrived at the Clarion Congress Hotel where the conference well held, registered, went to my room and had a quick last look at my slides. At 3:50pm I was giving a talk on Building Enterprise Applications Using Glassfish . It was about installing GlassFish, deploying an application, monitor […]

Read More →

Primary and secondary table with JPA

It‘s the third time I‘ve been asked if in JPA you can persist the attributes of your entity in several tables. The answer is yes. It has a performance impact (each simple query will use joins) but it can be very helpful when you need to map your objects into an existing database. Here is an example of an Address entity that persist its data into a primary table (t_address) as well as two secondary tables (t_city and t_country). The primary table can be customized with the Table annotation and the secondary with SecondaryTable or SecondaryTables (with an 's') if more than one. Then it's just a matter of explicitly using the Column annotation on the attributes you want to persist in the secondary tables (@Column(table=“t_city”) would tell JPA to persist this particular attribute into the t_city table). By default the attributes are persisted in the primary. @Entity @Table(name = "t_address") @SecondaryTables({ @SecondaryTable(name="t_city"), @SecondaryTable(name="t_country") }) public class FirstTable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String street1; private String street2; @Column(table="t_city") private String city; @Column(table="t_city") private String state; @Column(table="t_city") private String zipcode; @Column(table="t_country") private String country; } As a result of that, you will get three tables with the following columns : t_address : id, street1, street2 t_city : id, city, state, zipcode t_country : id, country Notice that the id is replicated in each table.

Read More →

Speaking at the TSS Symposium

Soon (18–20 June) starts the TSS Symposiumconference in Prague. A great conference with good speakers in a beautiful city. Well, this time I‘ll be speaking there. In fact, I‘ll be giving two talks : Building Enterprise Applications Using Glassfish . I‘ll talk about administrating GlassFish instances in general and in a cluster in particular. In this session, you will learn […]

Read More →

A virus at JavaOne

Today I only attended two presentations and had to leave the conference for some rest. I wonder if I‘m just exhausted about too much JavaOne, or if I‘ve got a virus. This is the email that we received this morning : URGENT PUBLIC HEALTH ADVISORY FROM JAVAONE TEAM The JavaOne conference team has been notified by the San Francisco Department of Public Health about an identified outbreak of a virus in the San Francisco area. Testing is still underway to identify the specific virus in question, but they believe it to be the Norovirus, a common cause of the stomach flu, which can cause temporary flu-like symptoms for up to 48 hours. Part of the San Francisco area impacted includes the Moscone Center, the site of the JavaOne conference which is being held this week. We are working with the appropriate San Francisco Department of Public Health and Moscone representatives to mitigate the impact this will have on the conference and steps are being taken overnight to disinfect the facility. We have not received any indication that the show should end early, so will have the full schedule of events on Friday as planned. We hope to see you then.

Read More →

JavaOne : a nostalgic portuguese touch

It is my first JavaOne, so I can‘t really compare. But something tells me that 5 years ago JavaOne was about… Java. Today, it feels different. There are plenty of technical sessions about other languages and on the top selling books at JavaOne, three are about other languages (Groovy and JavaFX). Even James Gosling talked about Scala . And I […]

Read More →

JavaOne : Opening up the JCP

Today was an interesting day at JavaOne. I first started meeting a giant Duke in the busy corridors of the Moscone Center Then I met Aaron Houston (the Sun guy who helps the JUGs around the world) who gave the Paris JUG a Sun Spot . The idea is to use the spot in a collaborative way so the JUG […]

Read More →

JavaOne : My Top 3 Issues

Today it was JavaOne‘s kick off. It started with a keynote with Rich Green. It was concentrated in mobile devices (Amazon presented its Kindle eBook) and, of course, JavaFX took a big place. I‘m still a bit sceptical about JavaFX but Rich Green said that really soon it will be running everywhere, in all kind of mobile devices. And then […]

Read More →

Community One

Today was the Community One. Not exactly JavaOne yet, free of charge, and mostly based on communities. The idea is to bring different communities on board such as JUGs, GlassFish, Open Solaris, Linux, NetBeans and so on. Community One is also based at the Moscone Center and feels sometimes like a warm up for JavaOne. You see geeks everywhere playing […]

Read More →

From the Golden Gate to GlassFish

Yesterday morning I met Alexis Moussine Pouchkine near the Peer 45 in San Francisco. He had organized a bike tour before the GlassFish unconferences. We were a group of 10 people, ready to cycle through the Golden Gate bridge. Met at 9:30am, had a coffee, put the helmet on and off we went. The weather wasn‘t very clear and it […]

Read More →

Speaking at JavaOne

As a young JUG Leader I’ve been invited by Sun to JavaOne (thanks to Aaron Houston). It‘s my first time at JavaOne so I‘m very excited to attend conferences, BOFs and plenty of organized diners or unconferences. It‘s going to be a busy week, but I‘m ready (I arrived yesterday in San Francisco and already had a good night sleep to recover the 12 hours flight and 9 hours difference with Paris). I came here to grab as much information as I can (on Java and JUGs) and take it back home. But, surprisingly, I‘ve just been asked by Corina Ulescu (JCP PMO) to talk about the JCP. I bit like what I did at the QCon back in March. I am going to participate at a round table moderated by Patrick Curran (Chair of the JCP). I will share the table with Stephen Colebourne, Michael Nascimento Santos, Alex Buckley, Kay Glahn, Rod Johnson and Dalibor Topic. We will be asked the following questions : Do we need standards at all in an open-source world? Why not just build systems on top of open-source implementations? How can the JCP call itself an open standards organization when it‘s dominated by the big corporate players and it conducts its business behind closed doors? Should the JCP adopt open-source processes for developing specifications, reference implementations, and conformance test suites (TCKs)? What role can non-corporate members (individuals, user-groups, open-source projects) play in the JCP? […]

Read More →