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]

Reply via email to