[ 
http://jira.codehaus.org/browse/MNG-2715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_93797
 ] 

Arik Kfir commented on MNG-2715:
--------------------------------

Seva,

I don't think Jason meant Maven will *never* support namespaces; only the 2.0.x 
branch won't. I'm quite sure Maven 2.1 will support it (by moving to a standard 
XML parser) - I think work has already began on the matter. 

Jason, please correct me if I'm mistaken.

Best regards, 
  Arik.

> Maven does not comply to XML rules regarding prefixes.
> ------------------------------------------------------
>
>                 Key: MNG-2715
>                 URL: http://jira.codehaus.org/browse/MNG-2715
>             Project: Maven 2
>          Issue Type: Bug
>         Environment: Ubuntu 6.10
> Maven 2.0.4
>            Reporter: Seva Safris
>            Priority: Critical
>
> I am new to Maven and have been trying to learn how to create a simple 
> project.
> Let me walk through my scenario of creating a pom.xml file:
> 1. I bind the {http://maven.apache.org/POM/4.0.0} namespace (defined at 
> "http://maven.apache.org/maven-v4_0_0.xsd";) to Java classes using an XML 
> Binding solution.
> 2. I use the bound classes to create a simple <project/> as one would expect 
> to see in a pom.xml file.
> 3. I marshal the bound Java objects into xml and write it into pom.xml. Here 
> is the xml I use:
> <ns1:project
>       xmlns:ns1="http://maven.apache.org/POM/4.0.0";>
>       <ns1:modelVersion>4.0.0</ns1:modelVersion>
>       <ns1:groupId>com.myapp</ns1:groupId>
>       <ns1:artifactId>sample-project</ns1:artifactId>
>       <ns1:name>Sample Maven Project</ns1:name>
>       <ns1:version>1.0</ns1:version>
>       <ns1:developers>
>               <ns1:developer>
>                       <ns1:id>ssafris</ns1:id>
>                       <ns1:name>Seva Safris</ns1:name>
>               </ns1:developer>
>       </ns1:developers>
>       <ns1:build>
>               <ns1:sourceDirectory>${basedir}/src/java</ns1:sourceDirectory>
>       </ns1:build>
> </ns1:project>
> 4. I run mvn, and am promptly given a "Not a v4.0.0 POM." exception.
> Tracing through Maven's source, I went to the exact location of the exception 
> in DefaultMavenProjectBuilder.java. On line 1297 it has:
> if ( modelSource.indexOf( "<modelVersion>4.0.0" ) < 0 )
> {
>     throw new InvalidProjectModelException( projectId, pomLocation, "Not a 
> v4.0.0 POM." );
> }
> Since modelSource is checked explicitly for <modelVersion[...], my <project/> 
> xml as shown above will fail this test because it has: <ns1:modelVersion[...].
> This is most definitely a bug in Maven and should be fixed as soon as 
> possible. The workaround is to use a 
> xmlns="http://maven.apache.org/POM/4.0.0"; and define all elements without a 
> prefix. However, my use of xmlns:ns1="http://maven.apache.org/POM/4.0.0"; 
> should not break Maven as it is not merely legal by xml conventions, but is 
> also a better practice for xml documents.
> I hope you see the importance of getting this bug fixed: My use of a XML 
> Binding solution to bind Maven's xml to Java allows me a strongly-typed level 
> of indirection that will deterministically create proper xml that will 
> validate successfully. If this bug is not fixed, then this level of 
> indirection is not possible (or very very very difficult because the XML 
> Binding solution would have to be hacked to use the xmlns="[...]" 
> convention). I have only found this one instance of where the bug is obvious, 
> but perhaps there are more locations in Maven where the same kind of error 
> can occur.
> Thank you for your time, and I hope you consider this issue as seriously as I 
> do.
> Sincerely,
> Seva Safris

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to