Skip to main content

Pulling Muscles

Posted by editor on July 18, 2006 at 8:59 AM PDT

SwingX prepares for some heavy CVS lifting

Oh, I soooooooo don't miss CVS. Actually, day-by-day CVS is just fine -- be sure to cvs update often, check in your code often (as long as everything builds), and life should be good. Even merges aren't as scary as some make them out to be. No, the scary part with CVS is when you have to move files around in the repository, something CVS wasn't really meant to do. It's something you have to do directly on the server, and it's not pretty.

This scenario was surely one of the top things that Subversion set out to do right, and having used both systems, it really is nice to know that I can svn move my way out of bad repository decisions (like not having trunk, tags, and branches directories from the start), or to be able to repackage my java classes into new hierarchies with impunity, from the client-side command-line or with a GUI.

By the way, everyone's clear that you can use Subversion for new projects, right? That hasn't always been the case, and it was rolled out slowly, so a lot of people might not know it's an option. But yes, for new projects, you can choose CVS or Subversion for your repository. That said, there's no service to magically transmogrify the CVS history of existing projects into a Subversion repository -- the workaround, if you really want to move to Subversion, is to start a new project, choose Subversion as your source-control option, and once approved, to add all your existing source to the trunk, leaving the previous project as an archive of the old code.

I've got CVS moves on the mind, because it sounds like the SwingX project has a pretty nasty re-org looming, one that they'll need server-side admin access to pull off. If you recall Joshua Marinacci talking about SwingX in a pre-JavaOne podcast, he said that SwingX was getting ready to determine which components would be ready for a 1.0 release and which would need to be set aside for further work. Well, now the reorg seems to be taking shape, according to Richard Bair's forum message Re: SwingX roadmap?, in which he says:

I was planning on bringing this topic up next week, but since you asked it, here it is. One of the issues we've had with SwingX is to define which components are finished (where finished means 1.0 quality), which are a work in progress, and which are experimental. Arguably we should have done this when we split JDNC up and created SwingX. Also, as much as we'd liek to continue adding new features forever it's time to get a 1.0 release out the door (timeframe not yet determined) so that developers have a stable base to work on. To that end, Romain and Josh and I have drafted a plan we want to discuss which will give us a beta release quickly, but will require some CVS changes.

He goes on to list the many SwingX components, with an initial assessment of whether its going onto a "release candidate" or "development" branch, and with notes of the to-do's.

There's a lot of functionality in SwingX to look forward to, but I can tell you from experience, the CVS work is going to be a bear.

Also in today's Forums, ejb3newuser has some Questions regarding Persistence Context and Detached Entities:
"I am a new user of EJB 3.0. I have some doubts regarding the persistence context and the detached entities, as listed below: In case of an extended persistence context, if an entity is persisted within a transaction, will the entity remain managed after the transaction commits? If yes, how does the persistence provider make sure that the same entity is not persisted again when the next transaction commits (assuming that the same entity is never used in the next transaction)? If the persistent provider keeps checking the states of all the managed entities in the extended persistence context at transaction commit time, it could be a huge performance overhead because the number of such entities would keep growing with every new transaction."

In the latest Feature Article, Johannes Brodwall introduces a handy data-management technique in
Lazy Loading is Easy: Implementing a Rich Domain Model.
Lazy loading -- not fetching data until it's needed -- is an approach that gets a lot of developers nodding their heads in agreement, even if they don't actually try implementing it themselves. But as this article shows, it's not hard to do, and conveys some genuine benefits.

In Java Today, NetBeans has announced the release of the first milestone build for NetBeans IDE 6.0 and NetBeans Profiler 6.0. Milestone builds will replace the present Q-Build system and are designed to provide a fuller set of features, more stabilization time for new features introduced in the trunk, and more time for feedback from the community. You can get the Milestone 1 builds NetBeans 6.0 and NetBeans Profiler 6.0,
see a full description of the Milestone build process, and view the New and Noteworthy Features of the Milestone 1 build.

A Computer World special report on Hot Skills, Cold Skills argues that "the most sought-after corporate IT workers in 2010 may be those with no deep-seated technical skills at all. The nuts-and-bolts programming and easy-to-document support jobs will have all gone to third-party providers in the U.S. or abroad. Instead, IT departments will be populated with 'versatilists' -- those with a technology background who also know the business sector inside and out, can architect and carry out IT plans that will add business value, and can cultivate relationships both inside and outside the company."

The Mac Java Community recently noted Ninjar, a free-as-in-beer Spotlight importer that allows OS X to index the content of .jar (Java Archive) files. Its author says: "As a Java developer myself I found it infuriating that there was no simple way to find which .jar a certain class or package could be found in. This importer aims to help by leveraging the power of Spotlight and enabling you to enter package or class names into the search bar."

Continuing the spate of blogs about desktop development and the appropriateness of bundling Java DB with the Mustang JDK, Joshua Marinacci asks Do We Need Databases on the Desktop? in today's Weblogs. "Do desktop apps need a database? Rather than say yes and describe why this is so, I thought I'd simply go through the applications installed on my computer and speculate about which ones have or could have a real database inside."

Greg Murray introduces The XmlHttpProxy Client for Java:
"One drawback of working with AJAX is that an AJAX-based client cannot make calls to URLs outside of its domain, which means that it cannot access services located on another server. A Java based proxy can be created to allow a client to access content from other domains and gives you the ability to transfrom and have better control of the data you allow your clients to see."

Finally, in JXTransformer: The power of a real Swing !, Alexander Potochkin introduces some broadly-useful rendering hacks:
"A long time ago I wanted to have a component which could paint rotated text for my application I definitely could create my own component, override paintComponent(), implement correct resizing etc... Yes, it was clear how to implement your own rotatable JLabel, but what if I want to have a rotatable JButton and I want to have it for each Look and Feels, how many classes I would have to sublclass in this case? "

Sun Microsystems, Inc. invites you to take this one-page survey for developers. Name and email are not required, unless you want to participate in the random

drawing to WIN a six-month subscription to the Safari Bookshelf.

In today's
News Headlines

Registered users can submit news items for the href=""> News Page using our
news submission
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href=""> News RSS

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

SwingX prepares for some heavy CVS lifting