Friday, November 30, 2007

My NetBeans, or your NetBeans?


Dit you already register on A new social networking site specifically for the NetBeans community (disclaimer: this is my own definition of the site, not reflecting anything officially stated). Anyway, I did register as soon as I got onto the site. It, by the way, looks really good. I like the fading effects.

The only thing I don't like at the moment is the fact that it doesn't log me in automatically. I keep on clicking links having to login first before it does something. But hey, it's only a beta.

I am missing the contact option to add my collaboration account next to my Skype and MSN to be contacted. And than have it integrated with NB Collaboration to see who is developing in NetBeans while I am surfing. Something like Xbox Live integrated with MSN and Windows Media Center. But hey, it's only the first incarnation.

Anyway, it's a great addition to the NB universe and definitely worth my while... eventually I think.


Monday, November 26, 2007

NB 6.0 RC2, Getting there... but still WS code generation issues.


Recently I blogged about the RC1 of NetBeans I installed and the good and bad of the first release candidate. of NetBeans 6.0. One of the major upgrades of NetBeans since about ever.

I installed RC2 last week right after it came out and started testing the major bug I was experiencing, WS client generation for mobile applications. And the bug I'd found was solved, and I was very happy about that. Although it got a bit of a disappointment not long after this 'Yippie' feeling. Issue 122702 is the new code generation problem around the block when it comes to generating code for mobiles to connect to a WS. The problem is that when a class of my own is the type of a field of another class of my own and that second class is produced or consumed by a WS operation, the code for that class is not generated by NB, at least not by either RC1 or RC2. The class that should be generated is fairly simple to create myself, but that is mainly because it is a simple class, well at least the one I created for this issue. Mobility and WS support are definitely an area not yet much treaded.
There's another issue I have with the whole WS connectivity code generation issue, which is that NB generates code that already exists. So it doesn't have to generate the code at all. From a compatibility concern between WS server and WS client, I use exactly the same code on both ends. Therefore I have a mobile-library project setup that is used by my JavaME project as well as my JavaEE project. In this library all classes are defined that are used in the WS communication layer, thus ensuring that the phone sends across data that can be handled by the server and vice versa. This is probably not necessary, but has saved me loads of headaches, since I am now confident that I only send data across that can be handled by both ends. No classes that are too advanced for JavaME so to speak. All classes are there, but NB refuses to use them and generates classes of its own and uses them.

The interesting part here is that when generating a mobile client to web application, the package hierarchy as well as the classnames generated are the same as those found in my web application, i.e. the shared library mentioned above, so I can just delete these generated versions of my classes and use the right classes instead.
When generating a mobile WS client, the package hierarchy and the class names differ. Which makes it harder to replace the generated classes with my own created classes. Really mind boggling is the fact that the standard naming convention 'MyClass' is donned for 'myClass', which looks exactly like the field naming convention utilized by most developers I know.

But mind, I didn't get any exception pop-ups at all since installing RC2, the IDE is rather responsive, more than RC1 I think. And overall it is becoming a solid product, at least from my point of view. Me being a developer working on a mobile massive multi-user online realtime strategy game (MMMORSG).


Tuesday, November 20, 2007

NB 6.0 RC1, more thoughts... some bad ones

... well, for starters I want to just say that the latest bug I found in the code generation of WS support in JavaME projects was fixed, almost immediately after filing it. Let me put it this way, if NB would be in constant beta, in constant NetCAT, I would download the latest dev build every day, use it, report the bugs and continue working with fixes the next day... but that would prevent the team from adding big new awesome features. So I am glad the NetCAT is only at the end of each release cycle and it is to improve the final version's quality.

So what have I been doing lately, to be honest not much. Why? Because the latest dev build of NB screwed up my build files, the build-impl.xml files to be accurate. After installing the build fixing my WS issues, I got build issues in the 'jax-ws.xml' file and the build-impl.xml file.
I think I will file a P1 bug on this, since I don't like tools to just go and 'fix' my files and render them useless without a backup anywhere. In fact the much lauded 'local history' feature is not helping here either, since probably it will only keep track of local history of those files I am editing myself.

Going back to RC1 didn't fix the problem... not immediately. I had to throw away my build-impl.xml and my jax-ws.xml files and have NB regenerate them, after that it all worked again.
B.t.w., I tested the fix by running my JavaEE project in RC1 and generate the WS code in the fixed build referring to the WSDL in the application started in the RC1 started instance of Glassfish.

I found another bug there though, some of the code that was to be generated, didn't generate at all. Weird considering the code, but still not good. So I need to check whether it is my code and otherwise report a bug, once again. With full faith in the NB development team. Sofar, they haven't let me down one bit.



Friday, November 16, 2007

NB 6.0 RC1, my thoughts sofar


It has been a while since I last blogged about NB 6. And for good reason since I used it instead of blogging about it. Which to my defense, means that it was a joy to use NB and our game has progressed considerably.

I had a few problems with the code generation for WS support in mobiles, but these were all fixed within a day. Although today I found another code generation problem in NB 6, but that will probably be fixed soon as well.

A few days ago they released the real RC1 and I installed it as soon as I got my hands on it. Luckily for me, one of the dev builds I was relying on, was already dubbed RC1 and thus I had all the customary folders setup already (/.netbeans/RC1) which was a timesaver, although moving the relevant files and folders from one version to another is a breeze nowadays. The RC1 is really stable and apart from a firewall problem I didn't encounter any serious issues, and to be honest, the firewall problem wasn't a NetBeans issue rather a Java issue. I had to remove all Java.EXE lines in the firewall rules of Symantec and have new rules applied and than open everything up for Java.EXE in Symantec in order to get the Update Centers back to work and more importantly the Collaboration stuff (Why isn't Collaboration not a part of the standard distro?) Because we develop the game while sitting at different locations, Collaboration is a major means of discussing our progress.
The SQE plugins (Findbugs and friends) are back in my installation as well, as they are so cool and great to use.

But back to NB 6 RC1. The major gripe I and others have are erroneous error-badges. I can't care that much about it, but a friend of mine considers this a really bad thing. Might be that he's got less confidence in his coding skills and thinks that when NB thinks something's wrong, it must be although he thinks all is fine :)
The rest is going really smoothly, loading is really fast, unless you have a lot of projects that need to be opened, than it can take for ages. Maybe NB could track the projects I really work on and open them eagerly and the others lazy? The same might apply for plugins. Those I use regularly should be opened right away, those I don't should be loaded lazily. If possible. Still RC1 loads faster than previous builds I feel.

All in all, it's getting there and the level of quality is great, especially since it feels like about all addon packs are updated and better integrated as well. Still some open issues that I would like to see fixed. Maybe those that are more irritating to newbies should be fixed asap in the first few weeks after the release of NB6.