Thursday, October 15, 2009

Upgrade JDeveloper 10.1.3.3 to work with Subversion 1.6

I wanted to upgrade my Subversion server and client to version 1.6, but what was holding me back was the fear that JDeveloper 10.1.3.3 would no longer be able to access my repository. When I finally got a block of time to play around with it, the mechanics of it turned out to be relatively easy.

The first step was to update my Subversion server and client. The client, unfortunately, is necessary because the JDeveloper interface is limited to basic version control operations. Even then, it doesn't support some necessary corrective actions as files are modified and moved around. I use HTTP as my transport protocol of choice, so see my previous post for how I made an easy task difficult by disengaging my brain :-P.

The next step was about as painless as it gets in the Oracle world - updating JDeveloper's Subversion extension. Thanks to Aino Andriessen's blog, Upgrade JDeveloper 10g Subversion client, on the AMIS Technology web site, I already had a blueprint of how to make JDev work with Subversion 1.5. The same works for 1.6. Since recent incarnations of JDeveloper rely on the SVNKit for its Subversion extension, I simply had to replace a few libraries.
  1. Make sure JDeveloper is shut down.
  2. Download the Standalone Version of SVNKit from the SVNKit web site. The latest version available when I got mine was 1.3.1.
  3. Extract the svnkit-javahl.jar and svnkit.jar files from the archive.
  4. Rename svnkit-javahl.jar to svnjavahl.jar.
  5. Copy the two JAR files to your JDeveloper extensions directory, [JDevRoot]/jdev/extensions/oracle.jdeveloper.subversion.10.1.3, replacing the existing files.
  6. Restart JDeveloper. If it starts without error, that's a good sign (see below).
  7. Open Tools->Preferences... then expand the Versioning->Subversion category to verify JDev recognized the new client libraries. Mine showed:


  8.   Subversion client:

        SVN/1.6.5 SVNKit/1.3.1 (http://svnkit.com.) r6109
That's all there is. Now you can access your updated repositories from within JDeveloper.

For what it's worth, I did run into a minor problem the first time. I forgot to copy the updated svnkit.jar. When I tried to start JDeveloper, it failed with an exception because a JavaHL function was trying to use one of the new classes in it that it obviously couldn't find. Copying both library files solved the problem. Here is the exception I got, with a bit of the stack trace:


java.lang.NoClassDefFoundError: org/tmatesoft/svn/core/internal/util/SVNHashMap

at org.tigris.subversion.javahl.JavaHLObjectFactory.<clinit>(JavaHLObjectFactory.java:69)

at org.tmatesoft.svn.core.javahl.SVNClientImpl$1.handleStatus(SVNClientImpl.java:170)

at org.tmatesoft.svn.core.internal.wc.SVNStatusEditor.sendUnversionedStatus(SVNStatusEditor.java:315)

at org.tmatesoft.svn.core.internal.wc.SVNStatusEditor.getDirStatus(SVNStatusEditor.java:189)

at org.tmatesoft.svn.core.internal.wc.SVNStatusEditor.closeEdit(SVNStatusEditor.java:114)

...

No comments:

Post a Comment