Author: xavier
Date: Tue Nov 27 10:09:59 2007
New Revision: 598722

URL: http://svn.apache.org/viewvc?rev=598722&view=rev
Log:
IMPROVEMENT: New text representation for main module metadata concepts (IVY-649)

Added:
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/package.html   
(with props)
Modified:
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleRevisionId.java
    
incubator/ivy/core/trunk/test/java/org/apache/ivy/core/module/id/ModuleRevisionIdTest.java

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleRevisionId.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleRevisionId.java?rev=598722&r1=598721&r2=598722&view=diff
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleRevisionId.java
 (original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleRevisionId.java
 Tue Nov 27 10:09:59 2007
@@ -39,7 +39,8 @@
     private static final String NULL_ENCODE = "@#:NULL:#@";
     
     private static final String STRICT_CHARS_PATTERN = "[a-zA-Z0-9\\-/\\._+=]";
-    private static final String REV_STRICT_CHARS_PATTERN = 
"[a-zA-Z0-9\\-/\\._+=,\\[\\]\\{\\}:]";
+    private static final String REV_STRICT_CHARS_PATTERN 
+        = "[a-zA-Z0-9\\-/\\._+=,\\[\\]\\{\\}\\(\\):@]";
     private static final Pattern MRID_PATTERN = 
         Pattern.compile(
             "(" + STRICT_CHARS_PATTERN + "*)" 

Added: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/package.html
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/package.html?rev=598722&view=auto
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/package.html 
(added)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/package.html 
Tue Nov 27 10:09:59 2007
@@ -0,0 +1,39 @@
+<body>
+<p>
+This packages gathers classes used to represent identifiers of objects 
involved in dependency management.
+</p>
+<p>
+As identifiers, they do not store any information on the module content and 
detailed metadata (like dependencies).
+</p>
+<h2>Classes</h2>
+<p>
+<ul>
+<li>ModuleId</li> is used as the identifier of module, without considering its 
version. It's basically an organization and module name couple.
+<li>ModuleRevisionId</li> is used as the identifier of a module in a 
particular version or version constraint. It is composed of a ModuleId, a 
revision, and optionally a branch and extra attributes. 
+<li>ArtifactId</li> identifies an artifact without considering its version. 
It's basically a ModuleId and an artifact name, type and extension, plus 
optional extra attributes.
+<li>ArtifactRevisionId</li> identifies an artifact of a module in a particular 
version. It is composed of a ModuleRevisionId along with artifact identifier 
like the name type and extension. 
+</ul>
+</p>
+<h2>Text Representation</h2>
+<p>
+These classes share an homogeneous text representation, which can be easily 
obtained through the toString() method.
+</p>
+<p>
+The general pattern is: 
<code>[organisation]#[module]#[branch];[revision]![artifact].[ext]([type])</code>
+The # before the branch is present only if the branch is not empty.<br/>
+The type and surrounding parenthesis are present only if different from the 
extension.
+</p>
+<p>
+A textual representation can be parsed into an object (supported for 
ModuleRevisionId only yet), as long as a strict set of characters is used for 
each field (which is recommended).<br/>
+Allowed characters are:
+<ul>
+<li>organisation</li> a-z A-Z 0-9 - / . _ + =
+<li>module</li> a-z A-Z 0-9 - / . _ + =
+<li>branch</li> a-z A-Z 0-9 - / . _ + =
+<li>revision</li> a-z A-Z 0-9 - / . _ + = , [ ] { } ( ) : @
+<li>artifact</li> a-z A-Z 0-9 - / . _ + =
+<li>extension</li> a-z A-Z 0-9 - / . _ + =
+<li>type</li> a-z A-Z 0-9 - / . _ + =
+</ul>
+
+</body>
\ No newline at end of file

Propchange: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/package.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
incubator/ivy/core/trunk/test/java/org/apache/ivy/core/module/id/ModuleRevisionIdTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/core/module/id/ModuleRevisionIdTest.java?rev=598722&r1=598721&r2=598722&view=diff
==============================================================================
--- 
incubator/ivy/core/trunk/test/java/org/apache/ivy/core/module/id/ModuleRevisionIdTest.java
 (original)
+++ 
incubator/ivy/core/trunk/test/java/org/apache/ivy/core/module/id/ModuleRevisionIdTest.java
 Tue Nov 27 10:09:59 2007
@@ -29,7 +29,9 @@
         testParse("org#module;2.0");
         testParse("org#module#branch;myversion");
         testParse("org#module#branch;[1.2,1.3]");
+        testParse("org#module#branch;[EMAIL PROTECTED]");
         testParse(" org#module#branch;[1.2,1.3] ");
+        testParse(" org#module#branch;[1.2,1.3) ");
         
         testParseFailure("bad");
         testParseFailure("org#mod");


Reply via email to