I'd tend to disagree about classifier not being a 'core' part of the
artifact system...it distinguishes a main artifact from one of its
derivatives, and serves as a pretty foundational part of how we
retrieve artifacts from existing remote repositories. Without it, I
doubt that you can reconstruct the path to some existing artifacts
(like sources or javadocs) reliably without bastardizing the version
string.
We can see that the artifact system has certain inescapable identity
attributes. Scope is obviously more related to how an artifact is
used, since you can't see any trace of scope in the artifact as it's
been deployed on a remote repository. Classifier, however, doesn't
fit this criteria...it's not a usage marker, but an identity marker.
The rest I agree with.
-john
On Feb 4, 2008, at 3:00 AM, [EMAIL PROTECTED] wrote:
Author: jvanzyl
Date: Mon Feb 4 00:00:21 2008
New Revision: 618196
URL: http://svn.apache.org/viewvc?rev=618196&view=rev
Log:
o notes about the refactoring
Added:
maven/artifact/branches/CAP/notes.txt (with props)
Added: maven/artifact/branches/CAP/notes.txt
URL: http://svn.apache.org/viewvc/maven/artifact/branches/CAP/
notes.txt?rev=618196&view=auto
======================================================================
========
--- maven/artifact/branches/CAP/notes.txt (added)
+++ maven/artifact/branches/CAP/notes.txt Mon Feb 4 00:00:21 2008
@@ -0,0 +1,28 @@
+Maven Artifact is supposed to be a general artifact mechanism for
retrieving, installing, and deploying artifacts
+to repositories. Maven Artifact was originally decoupled from
Maven proper and as such carries a lot of baggage
+which prevents it from being used generally and carries many
notions that are very specific to Maven itself. Artifacts
+currently have a notion of scope, classifiers, and behavioral
attributes such as whether scopes should be inherited.
+For any mechanism to work generally these baked in notions need to
be removed, vetted, and then made compatible with
+notions currently in Maven. A list of things that should not be in
the Artifact:
+
+ * scope
+ * classifier
+ * dependency filter
+ * dependency trail
+ * resolved
+ * released
+ * optional
+ * available versions
+
+These are all attributes of the target system
+
+*Removal of the ArtifactFactory
+
+ 3 February 2008 (Sunday)
+
+ I have removed the factory and left only a small set of
constructors (which I would like to reduce to one) so that you
+ have a valid artifact after construction. I have also started to
hide the VersionRange creation. You just pass in
+ a string and the constructor for the DefaultArtifact will do the
right thing. This will ultimately need to be more
+ pluggable as different versioning strategies happen. But
variations of the theme like Maven, OSGi, will have their
+ own subclasses and tools to operate on the graphs of dependencies.
+
Propchange: maven/artifact/branches/CAP/notes.txt
----------------------------------------------------------------------
--------
svn:eol-style = native
Propchange: maven/artifact/branches/CAP/notes.txt
----------------------------------------------------------------------
--------
svn:keywords = "Author Date Id Revision"
---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john