Subject: [URN] ANN: Java URI Code v0.5

From: Justin Couch <[email-masked]>
Date: Thu, 25 Feb 1999 21:24:22 +0800

As previously mentioned....

My implemenation of URI handling code is now available online. This is
version 0.5 and represents the first stable release that potentially
could be used in a production environment. One of the features of this
code is the complete flexibility to allow any sort of resolver (RDS) to
work with it regardless of how the URN is represented. 

The code as it exists is being used in our latest application
development which is a mobile C3I system for special forces and
emergency services markets so it is taking a hammering testing wise. I'm
pretty confident about stability and usablity aspects. 

I've attached the included readme file below. Please d/l and play with
the code. 

-- 
Justin Couch                                   Author, Java Hacker
Snr Software Engineer                     [email-masked]
ADI Ltd, Systems Group              http://www.vlc.com.au/~justin/
Java3D FAQ:       http://tintoy.ncsa.uiuc.edu/~srp/java3d/faq.html
-------------------------------------------------------------------
"Look through the lens, and the light breaks down into many lights.
 Turn it or move it, and a new set of arrangements appears... is it
 a single light or many lights, lights that one must know how to
 distinguish, recognise and appreciate? Is it one light with many
 frames or one frame for many lights?"      -Subcomandante Marcos
-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                               Readme.txt

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                         URN implementation V0.5

                   (c) The Virtual Light Company 1999

This is the first public, widely announced release of the URI code.
As such, there are still many things missing functionality-wise. It
is almost feature complete and is running in a commercial test
environment. I want as much feedback as possible - good, bad or
otherwise.

Licensing
-----------

This code is released under the GNU LGPL. If you wish to redistribute
this code then you must include the license.txt file as is.

The original copy of this code can be found at

http://www.vlc.com.au/~justin/java/urn/uri_0.5.zip

This code makes use of other 3rd party GNU libraries.

GNU Regexp v1.0.6 can be found at:
  http://www.cacas.org/~wes/java/

The GNU LGPL can be found in license.txt or at
http://www.gnu.org/lgpl.html

#include <std_disclaimer.h>

Installing
-----------

Sorry, no JAR file yet. Just extract everything from the zip file (or
leave it in there if you wish) and point the classpath at it. Make sure
that urn.conf and urn_bindings may be found from the classpath as that
is how they are loaded.

Place gun_regexp_106.jar into your classpath

Once you've done this, then you may import the classes under
org.ietf.uri.* and run code with them.

This code makes very heavy use of JDK 1.2 so you need that to be running
this library.

Add your own naming schemes to the urn_bindings file. Comments indicate
where to find the syntax definition.

To generate javadocs run  make_docs.[sh|bat] for your platform. The
unix shell script is untested though!

Philosophy
-----------

The idea of these classes is to completely replace everything in
java.net.
In your application, everywhere that you reference java.net.URL change
that
to org.ietf.uri.URL. There are some other differences that are better
in behaviour, so it is not a completely pluggable replacement.

At the bottom end, a lot more things are configurable and perform the
way
that you expect them to behave. You can put multiple FileNameMaps and
multiple factory implemenations for content and protocol handler (some
parts
not implemented yet). You can fetch the currently set factory.

I've made the best attempt possible at seamless integration with the
java.net classes to ease migration hassles. You can use the same content
handlers and filename maps. Unfortunately you cannot use the protocol
handlers due to a design decision by Sun stopping an external class from
fetching URLConnections. There are public wrapper classes for everything
that it is possible to use.

There are a number of minor and potentially troubling aspects with this
that may not allow full use of the java.net stuff. Read the comments at
the top of JavaNetURLConnectionWrapper for when the code deals with
URNs.

TODO
-----

- Build lots of content handlers! The default one is for text/plain. I
will shortly have image loaders available. Stay tuned.
  o handler for text/uri-list needed.
  o handler for HTML needed

- Protocol handlers for HTTP and FTP are needed. Have some GNU'd code to
work with, but work is incomplete.

- Resolvers:
 o Complete the DNS based resolver based on NetSol code (Problem is that
   its license doesn't allow commercial use which is a pain)
 o JINI based resolver
 o THTTP resolver

- Content handler and ResourceConnection code should have a listener for
a percentage complete type feedback and authentication stuff.

- Complete URL implementation. Currently is mainly delegating directly
to java.net.URL. This needs to be ripped out and replaced with proper
working code (the java.net implementation is very wrong in a couple of
places). Also, the resolving to URN/URC from URL needs to be looked at.

Justin Couch, 25 Feb 1999
[email-masked] (work)
[email-masked] (home)

---

From: Justin Couch <[email-masked]>
Date: Fri, 26 Feb 1999 11:00:58 +0800

More to add util wise to make the URI libs more useful. Sorry this is
off topic for this list but I felt it is worthwhile for those wishing to
play with my libraries.

I've just posted a bunch of content handlers for dealing with images.
This supplements the URI library I released yesterday.

These image handlers can be found at

http://www.vlc.com.au/~justin/java/images/imageloader_0.9.zip

---

From: "Aaron E. Walsh" <[email-masked]>
Date: Fri, 26 Feb 1999 14:53:04 -0500

Hi Justin,

Is this rev one I can turn the Universal Media working group onto, or
would you like to keep it private for now?

I'm writing from VRML99 in Germany, and I think URNs are really starting
to get their due attention. The Universal Media workshop presentation I
gave on Wednesday introduced URNs in some detail, and they've since
surfaced in discussions and on other workshop slides as something to
consider supporting along with the ubiquitous URL.

I can also point some people in the MPEG4 group to your download if
you'd like, since we've been talking about implementing Universal Media
in their system but with a network-based resolver (as opposed to the
local resolver used by Universal Media).

Just give me the word :)

Aaron

-----------------------------------------------------------------------
Aaron E. Walsh
  http://www.mantiscorp.com/people/aew/

Chair, Web3D Universal Media Element Library (Web3D-UMEL) Working Group
  http://www.web3d.org/WorkingGroups/umel/

Co-chair, Web3D Intellectual Property Rights (Web3D-IPR) Task Group 
  http://www.web3d.org/TaskGroups/vrml-ipr/
-----------------------------------------------------------------------

---

From: Justin Couch <[email-masked]>
Date: Sat, 27 Feb 1999 09:11:11 +0800

> would you like to keep it private for now?

Let 'em at it. This is the first point where I think it is stable enough
to be used in any application. The major issues now are just lack of
support for various protocol handling like HTTP, FTP, JAR etc. I can't
just copy and modify Sun's Java2 source to suit my apps due to the SCSL
so it means doing a lot of it from scratch or snaffling other code.
 
> local resolver used by Universal Media).

Sure. Just have to remember that this code is Java only. I suspect the
MPEG guys would like to see C/C++ versions. I'd like to put some effort
into one of these ports, but since I'm now doing a lot of the
development within work contexts java is the only one getting attention. 

Another point is that I really need to get some web page front ends up.
At the moment it is just the raw directory being shown.