Java EE “bulk update”: NetBeans 6.8, Glassfish V3, Java EE 6

“Get Tomorrow Today” is what, these days, one can read while visiting the NetBeans web site. Well. Indeed. Today, a major update of Suns Java (Enterprise) environment for development, deployment, runtime has been released:

  • First of all, NetBeans IDE has bumped up its version number to 6.8, including (not too much of a surprise, I guess…) seamless and production-ready support for Java EE 6 and Glassfish v3, along with improved or newly added toolings and plugins for maven2 (very impressive), Project Kenai, JavaFX, PHP and a whole bunch of other technologies. Adding to that, asides “just” being another multi-language/-technology IDE, NetBeans RCP also is likely to get more support as an RC platform, which surely is a good thing.
  • Then, Java Enterprise Edition is available in version 6 (JSR-316), aiming at making Java EE development more slim, more easy and, thanks to the newly added “profiles”, more adaptable to given use cases than ever before. Along with this, there are a bunch of improvements in technologies such as Java Servlets (3.0), EJB (3.1), persistence (JPA 2.0), JCA and, especially notable from my point of view, support for RESTful web services (JAX-RS 1.1).
  • Finally, in addition to that, along with Java EE 6 comes Glassfish v3 as its reference implementation and the “open source” platform Suns Java System Application Server is based upon. Along with (obvious) support for all the Java EE technologies, just the last couple of weeks I experienced during FishCAT that GFv3 is a pretty good platform, providing all the strengths so far provided by its predecessors, yet being updated to reflect the changes in Java EE 6 and also providing hosting for in example JRuby applications out of the box. Adding to that, Adam has a more in-depth list of goodnesses that come with GFv3.

So, overally, a lot of great technologies and tools to play (or eventually work :) ) with, but also a moment of thought: Maybe not for NetBeans, but I am pretty sure at the very least for Java EE and maybe Glassfish, this could be the last release made by Sun as an independent business entity, the last releases related to these technology before Sun gets acquired by / gets merged with Oracle, leaving their products end up in the ever-growing Oracle product and services portfolio, some driven forth maybe more enthusiastically, others maybe left out in the cold and eventually discontinued. No matter how, I guess the next year might be crucial to all of these technologies: It will show how Java EE 6 can come up against or side-by-side with latest and upcoming Spring releases, with the whole OSGi movement in general and, especially, the environment to be set up by Eclipse RT project. And it also will show what NetBeans, as an IDE, as a platform, as a community, can come up with to provide viable alternatives and approaches to a load of (unquestionably good) features provided by Eclipse ecosystem, like the whole Eclipse Modeling toolbox or the upcoming XWT and declarative UI technologies in e4. Or maybe (which eventually could be the best of all outcomes) it might show that there is a good reason for different alternatives existing to address different requirements and use cases.

And, overally, no matter how things will move on: At the moment, congratulations to all the engineers, writers, tech people behind these three releases! You did a rather great job again…

SAP, open-ness and moving to Oracle?

There have been a couple of different posts in various SAP related blogs recently, as well as some responses by non-SAP(?) folks, dealing with Java technology (especially in light of the ongoing acquisition of Sun Microsoystems by Oracle), open standards and “open-ness” in general, it seems. Looking at this through the eyes of someone who is professionally using a dedicated piece of SAP technology (its database environment SAP MaxDB), a few thoughts come to my mind here…

Read more “SAP, open-ness and moving to Oracle?”

eclipse+maven2: still a rough ride…

Once you get back to trying… After using NetBeans IDE for the past couple of years mainly (even though not only) for its excellent support of projects based upon the maven2 build tool, right now I am into developing an Eclipse RAP based user interface, thus using (obviously) Eclipse IDE for this purpose. As running two IDEs in parallel has some drawbacks (the code you need always is in “the other tool”), I wanted to figure out whether, by now, it makes sense to use Eclipse altogether exclusively just for this project, thus being back to maven2 tooling again. Oh well, let’s see…

Read more “eclipse+maven2: still a rough ride…”

stunned: CentOS 5.3 VNC installation

Having been a merry Ubuntu GNU/Linux user for a couple of years now and, lately, kind of “flirting” with OpenSolaris for some reasons, these days once again I experienced what I like about technology, once in a while – the feeling of simply being stunned by the presence of a feature which might be obvious yet maybe not obvious enough to see wide-spread adoption: About to set up a server based upon the CentOS 5.3 GNU/Linux operating system (which, basically, is a “community rebuild” of RedHat Enterprise Linux), I fired up the network boot CD (dang, these old IBM xSeries machines didn’t yet come with a DVD drive…), chose to do the “text based installation” (as I usually dislike GUI based operating system installers and try avoiding them as good as somehow possible), made my way through configuring the base system, networking and mirror access… to, then, be asked whether I might want to continue installation using the “graphical installer” via VNC.

VNC? Well, why not… Accepted this, so it just took a couple of seconds until the installer provided me with the IP address and port of the VNC server running on this host, and, back to my notebook, connecting there I indeed was capable of performing the server installation completely from the comfortable environment of my office rather than standing in front of the machine in the loud and cold server room. So… I have to admit that this has somehow changed my mind about “GUI based installers”, and this definitely is a ‘killer feature’ from my point of view. Hope other distributions to come up with something like this (maybe an installer via ssh?) sooner or later, as well… ever even thought about doing a Windows Server System remote installation via RDP? Wonder whether this even would be possible… ;)

Some evidence screenshots, just because: Network and disk configuration using CentOS VNC installer. Pretty neat. :)

cyrus imapd: shared folder hierarchy recovery

Fought a half-day fight battling with our local Cyrus IMAPd installment. And talking complexity again: We’re using right this mail server implementation because it provides extensive support for shared folders and per-folder access control lists allowing for pretty fine-grained, well, control of user access to shared mail folders. ACLs indeed do add complexity to that, however, and this is what, in the end, seems to have enabled one of our internal user to move part of our IMAP folder tree to her personal Trash folder. Gone?

Fortunately not, given the Mozilla Thunderbird client involved here did just move things there and mark them as ‘deleted’ but not actually expunge them. Copying things manually out using a shell or some other file manager was pretty easy, and figuring out what (cyr)reconstruct is supposed to do also wasn’t a job that though… to overally end up with most of the folders restored but most of them empty?!

Googling around and looking deeper into things, however, quickly did resolve this issue as well: Cyrus uses to store all its stuff in /var/spool/cyrus/mail/, sorted in a more or less straightforward hierarchy. And this is where my problem finally resolved:

  • Mailbox Storage lives in /var/spool/cyrus/mail/s/Storage. So far, so good.
  • Mailbox Storage.Contacts, however, lives in /var/spool/cyrus/mail/c/Storage/Contacts… which I missed paying attention to, in this situation.
  • After having the mess moved to Trash manually, all the hierarchy was stored in /var/spool/cyrus/i/user/involvedUser/Trash/, including all subfolders. So just copying it back to its most obvious place (.../mail/s/Storage) didn’t work out as expected…

So after another examine-and-move session (copying all the folders starting with “A” from the deleted storage hierarchy to /var/spool/cyrus/mail/a/Storage/, all the “B” folders to /var/spool/cyrus/mail/b/Storage/ and so forth and finally running a cyrreconstruct -rfx Storage.*, both the hierarchy and the mail folder content seem to be back. And I am pondering a more sane mechanism of backing these things up… at the moment, without a good file manager I surely would have been doomed, so looking back at this match: Cyrus 0, gnu mc 1. Been there, done that. :)