[ 
https://issues.apache.org/jira/browse/MNG-8537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17916624#comment-17916624
 ] 

Guillaume Nodet commented on MNG-8537:
--------------------------------------


bq. Even if we live with the existing broken namepace handling in model version 
4.0, we should be able to require the namespace in modelVersion 4.1.0 and error 
if it's not there; and that's true no matter what the namespace URI for that 
modelVersion is.

Yes, it should be fairly easy to add something along the following lines to the 
file validation:
https://github.com/apache/maven/blob/98dedaf0e355063bd076cc746a219a3bc8f4ac69/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelValidator.java#L306
{code}
        if (!Objects.equals(m.getModelVersion(), 
ModelBuilder.MODEL_VERSION_4_0_0)) {
            validateStringNotEmpty("project namespace", problems, 
Severity.FATAL, Version.BASE, m.getNamespaceUri(), m);
        }
{code}

> Maven 4 namespace should not change
> -----------------------------------
>
>                 Key: MNG-8537
>                 URL: https://issues.apache.org/jira/browse/MNG-8537
>             Project: Maven
>          Issue Type: Bug
>            Reporter: Elliotte Rusty Harold
>            Priority: Blocker
>
> Just noticed that Maven 4 has a new namespace URL. The old namespace was
>  
> [http://maven.apache.org/POM/4.0.0]
>  
> The new one is
>  
> [http://maven.apache.org/POM/4.1.0]
>  
> Putting version numbers in namespaces is a known XML antipattern because it 
> makes it extremely difficult and inconvenient to write tools that process 
> both, even when they are much the same. XSLT, DOM, XQuery, JDOM, etc. — 
> really any XML aware tool — is going to have problems with this.
> Model version 4.1.0 is not a new and different schema that completely breaks 
> with the past. Most old elements from 4.0.0 are still present and still mean 
> exactly the same thing: groupId, artifactId, name, dependency, and most 
> others. There are new elements but that doesn't imply a new namespace. Adding 
> a new namespace is asserting that all the elements are different.
> IMHO Maven 4 should not change the namespace URL.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to