Sunday, October 24, 2004

Preparing for the 1.0.0.16 build

I finished coding of the final 'feature' for the 1.0.0.16 build this evening. It was much easier than I had feared.

The 'final' feature is a 'nice-to-have' for enabling/disabling the server's generation of reference copies at check-in time. I added a new set of check-boxes to the new project properties dialog that is in the admin tool. This new project properties dialog allows you to enable the creation of reference copies on the server. You can also disable the creation of reference copies on the server.

The 'nice-to-have' part of this feature is a couple of added check boxes that allow you to request that the server create or delete any reference copies at the instant that you click ok on the project properties dialog. This makes it so you can change you mind about whether you need reference copies well after the project has been around for awhile.

The deletion of the reference copies is a straight forward task -- just recurse through the archive directory structure, and delete any 'reference' files in the corresponding reference file directory hierarchy.

The trickier behavior was to have the server create reference copies for the entire project hierarchy if the user is enabling the creation of reference copies on the server.

This turned out to be simpler than I had thought it would be -- much of the hard work had already been coded in order to support the revision compare feature. Suffice it to say that it took less than 30 lines of code, and less than 2 hours of work. Cool.

Don't you just love it when things work out that way?

So, I'm on track to finish things up for the October 31 target date.

Tuesday, October 12, 2004

Java 5 Support for QVCS-Enterprise?

I'm finishing up the 1.0.0.15 build for QVCS-Enterprise, and in the process, thought I'd give Java 5 (a.k.a Java 1.5) a whirl. Testing is nowhere near complete, and I'm not sure that I'll 'officially' support it, but I have gotten the client application to work.

Startup time is improved, as promised, and overall, the application has a snappier feel to it. For the test, I ran the client application on Java 5, and had the server still running on a 1.4.2_05 JVM. All source was built using the 1.4.2_05 compiler, so all I was testing was whether the 1.4.2 byte code would execute correctly in a Java 5 virtual machine.

The only problem I ran into was at application initialization. Apparently the Java 5 VM has a different startup sequence for loading the logging subsystem than existed in 1.4.2, or the Java 5 logging subsystem is less forgiving of null pointer exceptions than it was in 1.4.2. The 'fix' was to change the initialization code within the logging component to defer logging anything until after the main frame window has actually been created. With that minor change to just one source file, the client application is running in the Java 5 VM, talking to a 1.4.2 server. Cool.

Monday, October 04, 2004

Forum Support now available

I just set up forum support. We'll see how it goes. QVCS Forums will take you to the home page of the forums. You need to register in order to be able to post to the forums. Hopefully, we can build up some body of knowledge there that users can have easy and searchable access to.

Friday, October 01, 2004

What's in the next release

I've been targeting late October as the release date for the next build of QVCS-Enterprise.

Obviously, to hit that date, some (most?) of what will appear in that build must already have been coded. So here's a list of what is in progress or already done:

  • Improved look and feel support so user can choose from several look and feel alternatives.
  • Add support for reference copies on the server. This means when you check-in or create an archive file, a copy of the associated workfile will get made in a reference location on the server.
  • Add support for running the server as a Windows service.
  • I've done a lot of work to clean up some of the nuisances in the way the client application behaves when there is pending work on the server. In earlier builds, it was sometimes difficult to tell when the server was still processing a client request. Much of that ambiguity is now gone. I won't claim that it's yet perfect, but it is improved over earlier builds.
  • In the client app, you can now change the workfile location without having to restart the client app.
  • I put in a lot of changes to make sure that all the client updates occur on the Swing thread. Java developers will understand what I'm talking about.
  • Fixed a client bug that caused concurrent modification exceptions to get thrown.
  • Fixed a bug in keyword expansion that happened when doing a visual compare.
  • System properties now get logged to the respective log files at application startup.
  • Use a combo box on the label dialog so you don't have to always type in the label string.
  • Several other bug fixes.