DPML
DPML Transit Artifact Protocol
HomeUtilitiesStationMetro
Artifact Protocol

The artifact proptocol enables the separation of a resource identity from resource location. Location is handled by a the protocol handler based on the underlying configuration of the Transit system. and is configured by the user. Once DPML Transit is in place it is possible to request any type of resource via java.net.URL() and many existing applications can easily be made repository enabled just by providing DPML Transit in the classpath and setting one or two system properties.

Specification

The official specification of the artifact protocol is as follows;

 artifact:[type]:[group]/[name]#[version] 
type The type of the artifact. Typical example would be "jar", "png" or "dtd".
group The group to which the artifact belong, so that naming conflicts can be avoided. It is recommended that the group is multi-leveled and slash separated, where the top level denotes the distinguishable name of the organization.
name The name of the artifact.
version The version is an opaque identifier without any built-in semantic contract. That means that Transit places no meaning into the version itself, and 1.1.0 and 1.1.1 does not hint that the latter can be used if the former is not present.
Using an artifact URL

Using artifact URLs are no different from any http or ftp URLs. You create them by instantiating the java.net.URL class, and setting the protocol to "artifact" (no quotes).

The following example artifact URI identifies a resource named "dpml-http-server" associated with the "dpml/http" group, a resource type called "part" and a version value of "1024".

artifact:part:dpml/http/dpml-http-server#1024