URIlib Library
You are probably very familiar with the URL - a Uniform Resource Locator. It's
that thing in the Location box on the web browser. They belong to a much
bigger family of resource describers called URIs - Uniform Resource Identifier.
The standard java libraries of java.net only provide a very
limited capability to deal with URLs only. You could not use it to provide a
proper, customised web browser for example without a lot of very serious
hacking of the system.
The aim of this library is two-fold:
Provide a complete URL/URN/URI resolver capability in line with the
relevant IETF
RFC's.
Provide a system that has all the capabilites for a standard web browser
or other graphical client.
It is designed as a close to plugin replacement for the java.net.
That is, most of the APIs look exactly the same, except now there are much
greater capabilities (ie extra methods). The only thing that needs to
generally change is the import line.
Development Info
The library is broken into two separate parts - the core library that
implements the RFC specifications and deals with managing all of the resources
required, and a set of implementations of various protocols, content loaders
and other elements required to make the system work and a proper security
system for those connections that require passwords etc.
This library has been in use for 2 years in a number of commercial
applications. The stability is excellent and suffers from no major bugs that
we're aware of. The only reason this is not a 1.0 release is the wish to develop
a few more libraries for resolvers.
The library consists of the following major package areas:
org.ietf.uri
The major package that implements the IETF RFCs. This provides the abstraction
and management code for resolving URIs, loading them and ensuring that they
behave correctly. There are three packages in total in this area
org.ietf.uri The main package including all of the classes that
represent a URI and fetch information from it.
org.ietf.uri.event Event classes and listener interfaces that
provide asyncrhonous feedback. Messages about how the download is going,
errors and other feedback.
org.ietf.uri.resolve Common exceptions for resolver
implementations.
vlc.net.resolve
Implementations of various URI resolver mechanisms. The current library
comes with THTTP and file based resolvers.
vlc.net.protocol
Protocol handlers. Once you have found the machine to go to, then you need
talk to it directly. Protocol handlers are the implementations of specific
protocols. The current handled protocols are:
- HTTP/HTTPS/SHTTP
- JAR
- file
- data
FTP is not yet implemented.
vlc.net.content
Content handlers take the raw bytes from the stream presented by the protocol
handler and turn them into Java objects. For example it could create an image
file, text string or Java class. The following content handlers are available
(based on MIME type).
- text/plain
- text/uri-list
- x-java/jar
Content handlers for dealing with images are in a separate downloadable area
on this site - here. Handlers for multipart and
java classes are coming.
Downloading
License: GNU LGPL
Last Stable Version: 0.8
CVSROOT: :pserver:anonymous@case.vlc.com.au:/home/cvs/code/cvsroot
password: anonymous
CVS Module Name: uri
CVS Stable Tag: 0-8-BETA1
Prebuilt software
Zip: FTP HTTP
Tar.gz: FTP HTTP
Documentation
Zip: FTP HTTP
Tar.gz: FTP HTTP
Online
[ About ]
[ Software ]
[ CVS Info ]
[ Resources ]