On 9/27/06, Stephen McConnell <[EMAIL PROTECTED]> wrote:
> I make extensive use of custom protocols to represent links
> to resources not contained within a particular project
> code-base.  These protocols include the following:
>
>   'artifact'  used to resolve resources from a collection
>               of remote hosts (where the definition is 'remote'
>               is a configurable characteristic) based on group,
>               name, type and version data
>
>      'local'  used to reference local preference information
>               using the same 'group', 'name', 'type' and
>               'version' pattern
>
>       'link'  a symbolic reference that enables one group,
>               name, type, version reference to point to another
>               resource

The concept of REST
(http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)
is coming to mind as I read this.

What you have in the next paragraph is very REST-ful in its way of
encoding location, version and name in URLs. I would ask us to
consider (Occam's Razor in hand) at what point one actully needs to
create a custom protocol (and code to support it) versus using
REST-ful URL conventions to achieve much of the same thing with
existing protocols and software.

> All of these protocols include support for the establishment
> of a locally cached file that is a copy of the remote
> resource (partly driven by the need to handle the
> relationship between models of projects and Ant's build-time
> requirements).  Typically a link such as
> link:jar:acme/widget#1.2 (a symbolic link defining a jar file
> under the group namespace acme, name widget, with a published
> version of 1.2) could reference an artifact such as
> 'artifact:jar:net/osm/demo#1.2.9', which in turn maps to a
> range of possible sources where each source defines its own
> scheme for artifact to path transformation (i.e. the
> automation of the transformation of the artifact
> specification to something like
> file://d:/dpml/data/cache/net/osm/jars/demo-1.2.9.jar is an
> example of one of potentially multiple source paths).

Another take on the following statement is that location is a concern
to make explicit to the reader of a build script, rather than
obscuring a thing's actual location inside of a protocol handler
black's box.

> The key thing is that these protocols enable the removal of
> location concerns by shifting the focus to identity.

Just some thoughts on this interesting topic. I don't buy the need for
all these protocols and handlers or the associated flexibility in Ant
(yet).

Scott Stirling
Framingham, MA

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to