Martin Perez's weblog

Web This weblog

Wednesday, July 12, 2006

Top ten ways to create a real J2EE disaster

I have been just heard and enjoyed the Cameron Purdy's JavaOne presentation Top The Top Ten Ways to Botch an Enterprise Java Technology-based Application thanks to the JavaOne multimedia sessions.

It was a pretty good presentation indeed, and a great source for better practices and useful architecting advices -ok, I'm not sure if I got this feeling because the presentation was done on a negative approach, you now maybe I'm one of those people thinking Hey, I would never do that :-), but the fact is that it worked, it was a brilliant presentation.

This could be a brief summary:

  • #10 Specifying the mechanism for data access without understanding the granularity of the data model

  • #9 Assuming the container will take care of transactions

  • #8 Using a stateless architecture

  • #7 Designing the application for deployment on a single server and leave scalability and realibility up to the container

  • #6 Utilizing popular technologies such as Web Services for component integration and remoting

  • #5 Rolling your own frameworks

  • #4 Distributing synchronous object graphs across servers

  • #3 Designing logic and data flows assuming the application is a single-user system

  • #2 Compensating for a lack of knowledge of the application domain by building in systemic flexibility

  • #1 Putting off system testing until the application is ready to deploy

So, this is a pretty good list. mmmm I think I would never do that... lie... I must recognize that I felt over some of those points at some time, I think that everybody did it, and that's nice, that's what we call... experience :)

Wednesday, July 05, 2006

Struts and Shale divorced

It seems that Struts and Shalle have divorced last Sunday. On this Mailing list entry, Martin Cooper announced the official project split:

On behalf of the ASF Board and Struts PMC, we are pleased to announce that Shale has been accepted as a top-level project of the Apache Software Foundation.

As a top-level project, Shale will have its own website, mailing lists, repository space, and Project Management Committee. Shale will be an automomous ASF project, rather than a subproject of Apache Struts.

I suppose that the divorce had been germinating from months ago, but it was definitive because of this very big this thread that Floyd Marinescu has resumed.

Ok, so it seems that now the people won't get confused again with the difference between Struts and Shale. Only the time will say if this was a good move.

Tuesday, July 04, 2006

Evans study: Eclipse and NetBeans high usage but low rating

Evans Data Corp has just released The Developers’ Choice - IDE Scorecard, a study in which 1,200 developers worldwide rank the top IDEs they are using.

It seems a curious study. The most widely used IDE is clearly again Visual Studio. Eclipse gets a good third position while NetBeans is on the 6th position, that is also nice. So both Open Source IDEs have good health regarding users base.

But if we go to user overall rating we have that both NetBeans and Eclipse hold the last positions (in that order), while IBM Rational Application Developer gets the first place over Visual Studio. The reason that Evans give is: "this is due to their open and evolving nature".

You can download the IDE Scorecard for free.

Monday, July 03, 2006

Callisto is out!

Congratulations to all the people and teams involved in this awesome release. By the way, the Callisto home page seems really great and it really makes clear that Eclipse is more than a Java IDE.

Time to try it.

Rich clients, Happy users

Wow, just on my daily review to PlanetEclipse (yes, though I'm at 120% of my CPU time I always keep some free minutes to read those great entries) I discovered that my article for EclipseReview was published. Thanks for the advice Chris.

Uff, I'm not sure if I like this going public, I'm very shy about people reading my English :D Don't be very harsh guys!

jLibrary 1.0 released, finally :)

As promised, here is the last jLibrary spam post on many days, weeks or even months...

jLibrary 1.0 final has been released. jLibrary is the first Open Source Document Management System based on Eclipse Rich Client Platform. It uses a backend based on the JSR-170 reference implementation, Apache Jackrabbit, and can run on any J2EE compliant application server like jboss, Geronimo, or even Apache Tomcat.

Some of the most notable jLibrary features are:

  • Based on the JSR-170 specification.

  • Modulable architecture based on Eclipse Rich Client Platform.

  • Ability to add third-party plugins.

  • Support for multiple databases and storage systems.

  • Local and remote repositories.

  • Repositories are accessible with a Web Services based interface with SOAP+Attachments support.

  • Simple WebDAV and Web views also available.

  • XPath search support to search on document contents and on every property.

  • JCR Browser to browse JSR-170 based repositories.

  • JAAS support for custom login module access.

  • Security synchronization interface to easily synchronize users and groups with your LDAP or user databases.

  • Support for soft-deleted documents.

  • Plugabble API to add new service and repository implementations.

  • Easy to use desktop management interface.

  • Ability to easily drag and drop contents between repositories.

  • Copy-paste and drag and drop support from the operating system.

  • 4 different perspectives to effectively separate responsabilities.

  • 21 different views also configurable.

  • GEF based relations diagram editor.

  • Translated to English, Spanish, French, German and Italian.

  • A welcome screen to guide users starting with jLibrary.

  • Online update support thanks to Eclipse RCP update plug-in.

  • ActiveX support offering the user the posibility to use their common applications to edit their documents: Microsoft Word, Open Office, Adobe Acrobat, Autodesk AutoCAD, etc.

  • Wizards based user interface making user to work with the application.

  • Tools management. The user can easy configure the tools that he wants to use to externally open documents.

  • Integrated properties view to show very fast document,directories,resources and repository properties.

  • Support of drag & drop between different views, allowing very fast, easy and intuitive work.

  • Easy export/import feature to share their repositories.

  • Web crawling support, allowing the user to download entire web sites to his repository.

  • Easy security and category management.

  • Multipage and multieditor support.

  • Use of Eclipse RCP preferences API to manage user preferences.

  • Possibility to load/store content from the operating system directly into documents.

  • Modern editors thanks to the use of Eclipse Forms: attractive look, flat widgets, expandable sections, ...

  • Customized editors for all the entities: documents, directories, repositories, users, categories, ...
  • Source code editors for common text files like XML or HTML with source highlighting.

Take a look to the New and Noteworthy document to find more information about the changes done on this release ( You can download jLibrary from the downloads page ( You can find there Windows and Linux distributions with or without JRE 1.5 bundled. Note that you need a JRE 1.5 to run jLibrary.

Once downloaded feel free to follow the Installation, Configuration and First Steps documents (

jLibrary user interface is internationalized both in English, Spanish, French and Italian. If you want to translate jLibrary user interface to another language (only one resources file has to bee changed) contact with us - well, you can also contact if you want to help with the project. :-)

jLibrary 1.0 is the fruit of many months of hard work. Is an Open Source Document Management System released with a BSD license, something that was needed by the IT industry. This is a very big project with a small team, so we are open to ideas, contributions, support, donations, etc. You can contact directly with me to make business or with the jLibrary developers mailing lists at sourceforge.

We really hope that you like jLibrary.

How jLibrary innovates

As you probably already know, jLibrary was nominated to the JAX Innovation Awards. Finally, the project got a place between 6th and 10th, but I don't know really the number :-)

I must recognize that I was very surprised for being on the 10 nominees, so the result wasn't a disappointment for me. It was a big prize being there.

Some weeks before knowing that I was nominated I told some people that I really didn't think about having a 0.00001% to win. Why? Because I don't think that jLibrary innovates on the sense that people likes innovations. Innovation projects are typical related to universities, research institutes, healthcare foundations, etc. In fact, I think that some of the work we do on my job at the hospital could easily have been nominated with good winning possibilities (for example some internal telemedicine projects).

jLibrary is more pragmatic because is a final end user tool, and so tries to give the user a different kind of innovations. So, I really think that jLibrary innovates but not on a "winning-contests-innovation" sense. So, which have been on my oppinion the innovations behind jLibrary?

  • Bring content management to the desktop: Traditionally content management has been an area very centric to web applications. Probably we could say that the content management systems are web based on a range that could go from 90% to 99%. Probably, the percentage could go from the 98% to 99% if we only take in count Open Source products. So I think that this is the main innovation, to give the user the opportunity to copy, paste, drag and drop things from the operating system, edit their documents with their tools (OO, Word, ...). In summary, give the user the opportunity of really doing pragmatic content management.

  • Provide a bridge between Eclipse RCP and JSR-170: Yes. jLibrary is the first application that has merged the Eclipse RCP and the JSR-170 worlds, being able to communicate from an Eclipse based client architecture to a JSR-170 server repository based on Jackrabbit. jLibrary is not as ambitious as the current Apogee proposal, but this shouldn't hide that jLibrary has been the first tool able to do this. Also note this jLibrary architecture has been already used since the 2005. (As a side note, I don't want to confuse anyone with this point. The point is a reality, but the idea behind jLibrary is to remain as pragmatic and simple as it's today and not to compete with anyone. So I hope to don't receive more comments as "hey how do you compare to Alfresco or Nuxeo". We are different tools with different objectives and scopes, and even more, probably jLibrary could easily leverage those both great projects.)

  • Bringing pragmatism to the content management: As some of our users said on the forums, you can start to work with jLibrary with 0-5 minutes training because it is insultingly easy to use and deploy. And so it appears like a good tool for people, team, enterprises, that don't want headaches to store their documents.

BTW, probably this would be my last but one spam post about jLibrary on a very large time. The last would be the 1.0 final announcement. It will be very soon ;)

Back at home

I'm back from a really insane week on Frankfurt and Alicante. It has been really hard because just on tuesday, on my first day, I got a terrible cold probably due to having to walk about 750m on a very hard rain to be able to get my rented car. That's the bad thing on ryanair-airports, things are not as near as they should be ;)

So I spent all the trip between kleenex and having a runny nose. If that wasn't enough, I lost my voice on Thursday. That was really bad, because I had a speak at Alicante on Friday, so I had to talk with a microphone very near to my lips so the audience at least could hear me. I think the university staff is going to upload my speak to the conference web page. It will be very funny to hear me without voice.

Respect to jLibrary, finally it couldn't win. I cannot say that the result is different from what I expected. If you take a look to the winners you will see that, if we forget the Spring Framework that was clearly on other level respect to the other projects, all the four projects are really innovative so they worth the prize.

jLibrary nominated to JAX Awards

Today I have received an email that between other things it says:

Dear Martin Perez,

Thanks again for submitting your contribution to the JAX Innovation Award
2006. Congratulations, you are one step closer to winning the Award since
you've been nominated by the JAX Innovation Award Jury which has chosen 10
nominees out of 48 submissions in total.

On behalf of the JAX Team of Software & Support Verlag I'd like to invite
you to the JAX Innovation Award Ceremony at the Rhein-Main-Hallen in
Wiesbaden on Wednesday, May 10, 2006 at 6.45pm.

During the ceremony, that will be attended by approx. 1000 conference
attendees, the six winners will be announced and the awards for the proud
winners will be handed out by Masoud Kamali, CEO of Software & Support

So this is incredibly cool. The only drawback is that I only have 7 days to prepare all the trip, get hotel, get flight, get car, etc.

If someone is going to JAX Awards too, then I will look forward to know you! Drop me an email at mpermar_in_gmail_dot_com

EclipseCon, day 3

The day started with a talk of Greg Stein about open source and Eclipse. Well, I mostly agree with some people that was commenting that he did not say anything specially new, interesting, or that was not already known. It was a good introduction for those of the attendees that were not familiar with open source world, but nothing more. The conclusion can be, BSD license or Apache license, make your choice just now, because you're going to end at that point.

Next, I was on the OS pavillion until 3.15 PM. Not a really very busy day on the pavillion, and everybody was telling moreless the same. If we forget the break points, at some moments on the pavillion there were only the exhibitors and some friends. I see this a normal thing, and something to improve on the next versions of EclipseCon. My personal suggestion is to have an exclusive day for the exhibitors, with some receptions to attract people or something similar. Just like in the tutorials day but with exhibitors. Why? Very easy, this year if I was attending to the EclipseCon I will be sure on the talks and BOFs instead of going to the exhibitors. Personally, I prefer to learn from the experts than to going to see products. So I suppose that many people made the same choice.

After the OS pavillion was closed, I could finally go to enjoy some of the EclipseCon talks. First, I went to the Eclipse RCP application best practices panel. It was an interesting panel with some good tips. Then, I dropped myself on one of the short talks ballroom, and I saw really interesting products. I specially liked the speak about back in time in debugging. It was really shocking to see how with a ruler the speaker was able to go back and forward in time on a simulation. Really cool. I also should drop a note about Hannover. I posted on this blog about Hannover more than one (near two?) years ago, and I did not see anything new on the project look and feel. I suppose that one year ago they were announcing only a simple GUI fake. Anyways, there is no official release yet for Hannover.

After this, I was on the reception talking with Alex, Daniel and Richard, and with some other people too. And we went to the BIRT BOF. Ok, I really wanted to go to the jBoss IDE BOF, but nobody was there. So, I'm not a BIRT user, but I really learnt a lot on the BOF. The fact, is that I made a quick test to BIRT, some time ago. Even these days I'm having some visits on this blog due to the comments I made. For me BIRT is a great tool, and an interesting choice as it seems really powerful. The only problem with BIRT is the Eclipse dependency that can move people further away from using it, and also that is not as standard as could be a XML/XSL/FO/SVG/... based solution. Ok, this last solution is very laborious but it is standard. I also do not like the dual licencing from Actuate respect to BIRT, but that is another subject. Personally I don't like, I feel my self very skeptic, when a company offers two different flavours of the same product. Yes, I know the idea "the base is free", but for me the idea is "we can do better things but you are going to pay for them".

Next I was on the Update manager and Open Source BOF. Well, many update manager topics and few open source topics, but it was great. Many interesting people and many advanced topics. In summary everybody was claiming that the update manager currently is very simple for the needings of a company, and that means that it should have metadata support, better dependency checkings, ability to do smart bundle downloading, create centralized repositories, etc... Jeff McAffer also told us some tips about the new update manager support, and it will be really interesting to see Pack200 in action. Thanks to this BOF, finally, I had the opportunity to meet Philippe Ombrédanne. He is the founder of nexb, and well, some months ago we had a couple of emails because he was really brave enough to be able to run jLibrary 1.0beta3 version! Something that is really a merit.

EclipseCon, day 2

I know that the EclipseCon day 2 has not ended yet. But currently, I'm blogging from my hotel bedroom. i must say thata I'm totally exhausted. Many of the companions I knew on the Open Source Pavillion, including myself, we coincide in that the day has been really exhausting. So i did not have forces to go to any BOF.

The day started with a very hilarious talk from Joel Spolsky, really very good. I must recognize that I have not read his book. But, i'm going to buy it to read it in the way at home at Friday. 16 fligh hours allows you to greatly increase your culture :)

After that, I went to the Open Source Pavillion. On that pavillion I knew my neighbours from Spring, jFire and uDIG. I will recommend you to take a look to this last two projects, because it worths the pain (I'm not recommend you to try Spring framework, because I'm sure you're using it already!).

The morning was pretty quiet. People was coming to the exhibitor pavillion on the talks rest. So we had several waves of people asking for things. I knew several interesting people in the morning, so it was really a good experience. At 1 PM, we had a rest, and also I had the opportunity to see the John Wiegand and Erich Gamma keynote. Then, I could go to eat to the restaurant, have some spanish talks with the people at the restaurant that is really a rest for my brain :), and the I went to see Patrick Paulin talk about plug-ins. I would love to chat on the discussion but it was time to return and prepare the stand again.

And then the afternoon came, and that was really crazy. Specially after 6 PM, when the talks had ended. Then we had an avalanche on the Open Source Pavillion. Oh, God, I'm really tired. My mouth was really on fire, well, as I saw that was a common case on the other Open Source exhibitors. That's really great people! During this time, I had the opportunity of being talking with *many* interesting people. Every talk, and I mean *absolutely every* was very instructive, and I learned reallly a lot talking with every visitor. Being talking with Lorenz Maierhofer. But I must recognize, that I really was on a cloud when I was talking with Ward Cunningham about jLibrary. I give him a demo. You can believe me that it's really incredible being talking and thinking at the same time: God, this cannot be true, I'm bringing a demo to Ward Cunningham.. Simply incredible!

So now, I'm in my bed. I really must rest. I hope to have tomorrow at least a day as good as have been today. If you have not come to see jLibrary and talk with me, please do it tomorrow. Yes, I know that I'm now complaining about being tired and talking too much, but well..... I must recognize I loved it :)

EclipseCon, day 1

Yesterday was a very busy day here at EclipseCon, not for me really, but there were a lot of people going from one room to another, to try to get most of the information available at the tutorials. As I did not have a tutorials pass, so I was observing and meeting new people.

Later, I had the pleasure of meeting Luis de la Rosa, from webMethods, a really nice guy. We were looking together the Eclipse Community Awards. You can see the results on Ian's weblog. Finally, jLibrary could not win on the Best Open Source RCP Application because the finalists were uDIG and Gumtree. The winner was Gumtree, a very cool nuclear science application. It was also very cool to see the young guys of RadRails. They won the prize for the best Open Source Development Tool, and that's really great as they said for a work done on their spare time.

After all this, there was a funny show. Ufff, fortunately the speaker did not choose me, because it would have been really ridiculous. But hey, Andre and Alex won a funny prize. Finally, I had the opportunity of drinking some beers with Andre, Alex and Patrick. Very nice and friendly guys. By the way, Andre won the prize for the Best deployment in an enterprise that is really important. Congratulations!

Come to see jLibrary at EclipseCon

Ok. So now is the big day for me. I will be presenting jLibrary on the booth 215, that's the Open Source Pavillion sponsored by Business Objects. So, I'm really wishing to meet you there. If you want to see jLibrary, if you want to talk about Open Source, if you want to talk about Eclipse, if you want to talk about Eclipse Rich Client Platform, if you want to give me 1.000.000$, ... (well, forget this last one), then that's your place!

Hey, I will look forward to share experiences with all of you.

EclipseCon, day 0

This was really a day of learning. After recovering from the jet lag I was brave enough to go down to San José. The first thing I learnt is that maybe the San Francisco light train could be free, becuase I did several *long* trips and there were not a person asking for tickets. I must be the only stupid that bought a ticket there. I eat on a chinese restaurant on the downtown, it was really good and I was not able to end all the food. That's really a shame for an spanish guy as we have fame of liking a lot to eat.

Just back from San Jose I went to the Ian's Eclipse bloggers party. It was really cool to know a lot of interesting people. I have been talking with many of them and really learning a lot! The only problem is that we were really a lot, so I did not can talk with all the bloggers. I hope to fix this in the subsequent days.

Hello California, Hello Hilton

Yeah, I'm finally on California. Fortunately, my pessimistic predictions of baggage lost (new terminal on Madrid), travels delayed, or reservations failed did not happen. You can imagine my face when I saw my loved suitcase on San Francisco airport, after having survived the new Barajas terminal 4

After this trip, I'm really tired. Now, I now what is the "tourist class syndrome". As I live on La Coruña (Galicia, Spain), my trip plan was very funny: La Coruña -> Madrid, Madrid -> London, London -> San Francisco. Making some counts, I think that I have been on the air and on airports about 16 hours. And, of course, now I also can definitively say that I know what is the jet lag effect.

One advice for those coming to EclipseCon. One taxi from the San Francisco Airpot is about 122$. I got one, but I went out after the taxi driver told me the prize because I found it really excessive. So, my tip: If you go to the second floor you can go in shuttle services. The trip costed moreless 1/3 = 36$. So it's your choice.

Finally, my company, IT Deusto really had a great detail, not only with the travel but also with the room. The room is simply great, and the Internet connection here is awesome.

Now is time to wait for the great event. See u there.

jLibrary does Eclipse Corner

EclipseCon is really near and as you know jLibrary will be there. So, as the great moment is coming, this week I was preparing some jLibrary repositories to show to the conference audience coming to my humble stand.

So, I was thinking: How can I create a repository that really shows the power behind jLibrary?. And I found the response! Hey, let's make repositories with Eclipse stuff. So I will take several Eclipse-related repositories to the conference. There will be one with the EclipseCon 2005 slides, there will be another one with the EclipseCon 2004 slides, and finally there will be one with the Eclipse Corner articles.

I have taken some screenshots of the Eclipse Corner repository. I think that this is a great example of what you can do with jLibrary and how useful it can be. Here there are some samples:

Here it is, Eclipse Corner inside jLibrary, with all the articles in a repository, so you can search, browse, edit, tag, etc. (click on the image to enlarge)

I created a documents hierarchy based on the articles date. But, fortunately, jLibrary can define categories to group articles by topics. (click on the image to enlarge)

After all this, I could not resist the temptation of exporting all the content to a web using the jLibrary portal web template :-) (click on the image to enlarge)

Here is another sample of the exported static web site. In this case it is a random document. (click on the image to enlarge)

Well, I did another test with other templates. Just for fun :-) (click on the image to enlarge)

Well, I will take with me this and the other Eclipse repositories to show them to the interested conference audience. See you there!

Are you going to EclipseCon?

Hey, I'm getting excited as next week I will get my plane to EclipseCon on Sta Clara, California. I don't know anyone there, but I hope to know a lot of people on this trip. So, if you are going to EclipseCon and you are interested on Java, programming, Eclipse, jLibrary, or simply in knowing me, please feel free to contact with me at mpermar_AT_gmail_DOT_com.

BTW, my plane goes from London to San Francisco and the trip is scheduled for March 18th. So, who knows, maybe someone is going on the same flight and we could travel together.

See you there anyways!

jLibrary will be at EclipseCon 2006

Yes. Finally it is official. I will be on EclipseCon presenting jLibrary. The project has been awarded with an Eclipse scholarship, and so I will be presenting jLibrary into the EclipseCon Open Source Pavillion at 20-23 March.

I'm very happy for this opportunity. It will be a great challenge, for me and for my English ;) I must also thank to all the people that sent me great opinions and feedback about jLibrary. Hey, you can ever imagine how good is now the CVS version. It has many improvements in comparison with the currently downloadable version. I must also thank to all the developers that are currently working on jLibrary, they are doing really an awesome job.

I really don't know if many people reads this blog, but if you are going to EclipseCon, it will be a pleasure to know you


Xstream on Eclipse

Today I had a lot of problems with XStream and Eclipse RCP due to Eclipse to a multiple classloaders issue. Fortunately, I found this forum entry from Joseph Jaquinta on that I want to share with you.

Really basic for anyone using Eclipse RCP and XStream:

Thanks Joseph!

Oracle ADF goes open source: Good news for Java Server Faces

Just I have read that on TheServerSide that Oracle ADF goes Open Source. It will be licensed under an Apache license and it seems that project's fate is now in Apache MyFace's hands. That's great.

I have been played recently with MyFaces, and it gave me a good impression. I only had few problems integrating it with IBM WebSphere (in fact, I'm using IBM implmentation), but nothing more. So, I'm sure that this notice will increase MyFaces adoption.

On the other side, JSF is showing itself as the way to go. People is adopting it more and more, and with their inclussion in JEE 1.5 will make this standard even more decisive, even when now the fashion thing is to build JSF+AJAX UIs

jLibrary Screencasts

Believe me, this will be the last jLibrary spam-announce in a long time :)

I have added a new screencasts section to the web page. In this section you will find several flash videos explaining jLibrary use: creating content, searching, editing documents, ActiveX support, category and security management, web crawling, etc.

This are also very useful to whom want to take an idea of what jLibrary can do. In fact, they are better than screenshots :)

Click here to see the Screencasts.

jLibrary and Magnolia

Anyone that has browsed over the jLibrary 1.0b4 new features could has seen that there is a brand new JCR browser. Well, this browser is really simple, but at least it serve us to browse over Jackrabbit compatible repositories. As Magnolia is a product that uses Jackrabbit as its backend, someone has asked me if it should be possible to browse Magnolia-based repositories using jLibrary. Well, the short answer for this question is no, but the long answer is yes, but it requires some work :-)

Here is the complete article and some thoughts about it.

If jLibrary does not start ...

Today, revising my referers I have seen that someone looked in google France for 'jLibrary does not start'. So I have thought, even than many people have reported successful comments, that maybe other people could have been having problems and need help. This is the TODO list to resolve problems with jLibrary 1.0beta4 version:

  • The standalone server needs JAVA_HOME variable to be defined

  • jLibrary client should be launched from the Start menu. If you want to launch it from other place, pleace see the link in the Start menu (right click -> properties) to see the parameters needed to run jLibrary.

  • jLibrary needs a JDK 1.5 compatible to run. In fact, jLibrary includes one and it should be used automatically, but who knows, maybe people are using the wrong JDK.

  • If you have created repositories. Don't try to create two repositories with the same name. It won't work :-)

  • On the directory %JLIBRARY_INSTALL%/workspace/.metadata/ there is a .log file that contains log execution trace.

  • If you have another problem send me an email.

Hello blogspot

I decided to migrate my blog to blogpost. jroller isn't having any special problem, but I like the simplicity from blogger.