mcconnell 2003/11/17 02:03:59
Added: repository/api/src/java/org/apache/avalon/repository
TODO.TXT
Log:
Things to do.
Revision Changes Path
1.1
avalon-sandbox/repository/api/src/java/org/apache/avalon/repository/TODO.TXT
Index: TODO.TXT
===================================================================
Review artifact classes
-----------------------
If we can factor out the maven semantic into a factory - we can get rid of
ArtifactDescriptor and JarDescriptor and then combine ArtifactReference into just
Artifact.
- Artifact: an abstract class from which a URL is resolvable relative to a remote
repository
- ArtifactReference: extends Artifact and holding a relative url directory and
filename
- ArtifactDescriptor: extends Artifact to include group/name/version/type/semantics
(uses ArtifactReference to hold the derived relative path) - could be removed
if we were to extend ArtifactReference to expose properties (such as group,
name,
version, etc.) which would reduce facility assumptions concerning maven
repository
layout semantics. In effect we need a MavenArtifactReferenceFactory that does
the
spec parsing and returns an ArtifactReference with properties.
- JarDescriptor: an ArtifactDescriptor for a jar artifact (is it necessary?)
- ApplicationDirective: icky - needs reworking so that it is not dependent on a
network
connection - also operations such as getJarDescriptor() should be reviewed to
return
an Artifact.
Repository interface
--------------------
We can simplfy the repository interface by using the Artifact (or ArtifactReference)
class
as the argument - resuling in a significant simplfication and elimination of maven
specific
repository semantics (because we can move maven specific into a artifact factory).
- Remove operations that assume group/name/version/typoe semantics in favour of a
nautral ArtifactReference (or Artifact)
- ClassLoader creation operation should take an ApplicationDirective as the
operational argument.
RepositoryUtils
---------------
On failure to get a set of properties the utility should try and get the resource
from
its own classloader. This will ensure that the package is buildable without a
network
connection.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]