vmassol     2003/11/13 12:14:37

  Modified:    .        build-bootstrap.xml maven.xml
                        build-bootstrap-core.xml
               src/java/org/apache/maven DefaultProjectUnmarshaller.java
                        DefaultProjectMarshaller.java
               xdocs/reference project-descriptor.xml
               src/test/java/org/apache/maven/project ProjectTest.java
               src/java/org/apache/maven/project Project.java
               xdocs    changes.xml
  Added:       src/xsd  maven-project-4.xsd maven-project-3.xsd
  Removed:     src/xsd  maven-project.xsd
  Log:
  Deprecated <currentVersion> element. It is now replaced by the <version> element. 
Created new version 4 of the POM and added support for several POM versions.
  
  Revision  Changes    Path
  1.1                  maven/src/xsd/maven-project-4.xsd
  
  Index: maven-project-4.xsd
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
    elementFormDefault="qualified">
    <xs:element name="project">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="extend" minOccurs="0"/>
          <xs:element ref="pomVersion"/>
          <xs:element ref="id"/>
          <xs:element ref="name"/>
          <xs:element ref="groupId" minOccurs="0"/>
          <xs:element ref="version"/>
          <xs:element ref="organization"/>
          <xs:element ref="inceptionYear"/>
          <xs:element ref="package" minOccurs="0"/>
          <xs:element ref="logo" minOccurs="0"/>
          <xs:element ref="gumpRepositoryId" minOccurs="0"/>
          <xs:element ref="description" minOccurs="0"/>
          <xs:element ref="shortDescription"/>
          <xs:element ref="url" minOccurs="0" />
          <xs:element ref="issueTrackingUrl" minOccurs="0"/>
          <xs:element ref="siteAddress" minOccurs="0"/>
          <xs:element ref="siteDirectory" minOccurs="0"/>
          <xs:element ref="distributionSite" minOccurs="0"/>
          <xs:element ref="distributionDirectory" minOccurs="0"/>
          <xs:element ref="repository" minOccurs="0"/>
          <xs:element ref="versions" minOccurs="0"/>
          <xs:element ref="branches" minOccurs="0"/>
          <xs:element ref="mailingLists" minOccurs="0"/>
          <xs:element ref="developers"/>
          <xs:element ref="contributors" minOccurs="0"/>
          <xs:element ref="licenses" minOccurs="0"/>
          <xs:element ref="dependencies" minOccurs="0"/>
          <xs:element ref="build"/>
          <xs:element ref="reports" minOccurs="0"/>
          <xs:element ref="properties" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="extend" type='xs:string'/>
    <xs:element name="connection" type='xs:string'/>
    <xs:element name="developerConnection" type='xs:string'/>
    <xs:element name="currentVersion" type='xs:string'/>
    <xs:element name="description" type='xs:string'/>
    <xs:element name="distributionSite" type='xs:string'/>
    <xs:element name="distributionDirectory" type='xs:string'/>
    <xs:element name="name" type='xs:string'/>
    <xs:element name="groupId" type='xs:string'/>
    <xs:element name="artifactId" type='xs:string'/>
    <xs:element name="gumpRepositoryId" type='xs:string'/>
    <xs:element name="id" type='xs:string'/>
    <xs:element name="inceptionYear" type='xs:gYear'/>
    <!-- not anyURI as it can contain ${pom....} -->
    <xs:element name="issueTrackingUrl" type='xs:string'/>
    <xs:element name="logo" type='xs:string'/>
    <xs:element name="package" type='xs:string'/>
    <xs:element name="pomVersion" type='xs:string'/>
    <xs:element name="shortDescription" type='xs:string'/>
    <xs:element name="siteAddress" type='xs:string'/>
    <xs:element name="siteDirectory" type='xs:string'/>
    <!-- not anyURI as it can contain ${pom....} -->
    <xs:element name="url" type='xs:string'/>
  
    <!-- /repository element -->
    <xs:element name="repository">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="connection"/>
          <xs:element ref="developerConnection" minOccurs="0"/>
          <xs:element ref="url" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /organization element -->
    <xs:element name="organization">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:element ref="url" minOccurs="0" />
          <xs:element ref="logo" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /versions element -->
    <xs:element name="versions">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="version" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /versions/version element -->
    <xs:element name="version">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="id"/>
          <xs:element ref="name"/>
          <xs:element ref="tag"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /versions/version/tag and branches/branch/tag-->
    <xs:element name="tag" type='xs:string'/>
    
    <!-- /branches element -->
    <xs:element name="branches">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="branch" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /branches/branch element -->
    <xs:element name="branch">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="tag"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /mailingLists element -->
    <xs:element name="mailingLists">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="mailingList" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /mailingLists/mailingList element -->
    <xs:element name="mailingList">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:element ref="subscribe"/>
          <xs:element ref="unsubscribe"/>
          <xs:element ref="archive" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /mailingLists/mailingList/subscribe element -->  
    <xs:element name="subscribe" type='xs:string'/>
    <!-- /mailingLists/mailingList/unsubscribe element -->  
    <xs:element name="unsubscribe" type='xs:string'/>
    <!-- /mailingLists/mailingList/archive element -->  
    <xs:element name="archive" type='xs:string'/>
    
    <!-- /developers element -->
    <xs:element name="developers">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="developer" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /developers/developer element -->
    <xs:element name="developer">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:element ref="id"/>
          <xs:group ref="contactDetails" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /developers/developer/contactDetails group and
         /contributors/contributor/contactDetails group -->
    <xs:group name="contactDetails">
        <xs:sequence>
          <xs:element ref="email"/>
          <xs:element name="organization" type='xs:string' minOccurs="0"/>
          <xs:element ref="roles" minOccurs="0" />
          <xs:element ref="url" minOccurs="0" />
          <xs:element ref="timezone" minOccurs="0" />
        </xs:sequence>
    </xs:group>
  
    <!-- contactDetails/email element -->
    <xs:element name="email" type='xs:string'/>
  
    <!-- contactDetails/roles element -->
    <xs:element name="roles">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="role" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- contactDetails/roles/role element -->
    <xs:element name="role" type='xs:string'/>
  
    <!-- type for contactDetails/roles/timezone element -->  
    <xs:simpleType name="timezoneType">
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="-14"/>
        <xs:maxInclusive value="+14"/>
      </xs:restriction>
    </xs:simpleType> 
    
    <!-- contactDetails/roles/timezone element
         Stores a decimal that is the offset to GMT.
      -->  
    <xs:element name="timezone" type='timezoneType'/>
  
    <!-- /contributors element -->  
    <xs:element name="contributors">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="contributor" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /contributors/contributor element -->
    <xs:element name="contributor">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:group ref="contactDetails" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /licenses element -->
    <xs:element name="licenses">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="license" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /licenses/license element -->
    <xs:element name="license">
      <xs:complexType>
        <xs:sequence>
          <!-- name of the license, e.g. ASL 1.1 -->
          <xs:element ref="name" minOccurs="0"/>
          <!-- fetchable version of the license -->
          <xs:element ref="url" minOccurs="0" />
          <!-- 'manual' or 'repo' -->
          <xs:element ref="distribution" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /licenses/license/distribution element -->
    <xs:element name="distribution">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="manual|repo"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    
    <!-- /dependencies element -->
    <xs:element name="dependencies">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /dependencies/dependency element -->
    <xs:element name="dependency">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="id" minOccurs="0" />
          <xs:element ref="groupId" minOccurs="0" />
          <xs:element ref="artifactId" minOccurs="0" />
          <xs:element name="version" type="xs:string" />
          <xs:element ref="jar" minOccurs="0"/>
          <xs:element ref="type" minOccurs="0"/>
          <xs:element ref="url" minOccurs="0"/>
          <xs:element ref="properties" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /dependencies/dependency/type element -->
    <xs:element name="type" type='xs:string'/>
    <!-- /dependencies/dependency/jar element -->
    <xs:element name="jar" type='xs:string'/>
    
    <!-- /build element -->
    <xs:element name="build">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="nagEmailAddress" minOccurs="0"/>
          <xs:element ref="sourceDirectory" minOccurs="0"/>
          <xs:element ref="sourceModifications" minOccurs="0"/>
          <xs:element ref="unitTestSourceDirectory" minOccurs="0"/>
          <xs:element ref="integrationUnitTestSourceDirectory" minOccurs="0"/>
          <xs:element ref="aspectSourceDirectory" minOccurs="0"/>
          <xs:element ref="unitTest" minOccurs="0"/>
          <!-- no longer appears in build.java 
          <xs:element ref="integrationUnitTest" minOccurs="0"/>
          -->
          <xs:element ref="resources" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <xs:element name="nagEmailAddress" type='xs:string'/>
  
    <xs:element name="sourceDirectory" type='xs:string'/>
    
    <xs:element name="sourceModifications">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="sourceModification" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    
    <xs:element name="sourceModification">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="className" type='xs:string'/>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    
    <xs:element name="unitTestSourceDirectory" type='xs:string'/>
    <xs:element name="integrationUnitTestSourceDirectory" type='xs:string'/>
    <xs:element name="aspectSourceDirectory" type='xs:string'/>
    
    <xs:element name="unitTest">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="resources" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="includes">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="include" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="excludes">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="exclude" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="include" type='xs:string'/>
    <xs:element name="exclude" type='xs:string'/>
    
    <!-- no longer appears in build.java
    <xs:element name="integrationUnitTest">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    -->
    <xs:element name="resources">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="resource" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="directory" type='xs:string'/>
    <xs:element name="targetPath" type='xs:string'/>
    <xs:element name="filtering" type="xs:boolean" />
  
    <xs:element name="resource">
      <xs:complexType>
        <xs:sequence>
          <!-- FIXME: I think that this defaults to basedir, need a check -->
          <xs:element ref="directory" minOccurs="0"/>
          <xs:element ref="targetPath" minOccurs="0"/>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="filtering" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element> 
  
    <xs:element name="reports">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="report" minOccurs="0" maxOccurs="unbounded" 
            type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <xs:element name="properties">
      <xs:complexType>
        <xs:sequence>
          <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="classloader">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="root|root.maven"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
  
  </xs:schema>
  
  
  
  1.1                  maven/src/xsd/maven-project-3.xsd
  
  Index: maven-project-3.xsd
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
    elementFormDefault="qualified">
    <xs:element name="project">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="extend" minOccurs="0"/>
          <xs:element ref="pomVersion"/>
          <xs:element ref="id"/>
          <xs:element ref="name"/>
          <xs:element ref="groupId" minOccurs="0"/>
          <xs:element ref="currentVersion"/>
          <xs:element ref="organization"/>
          <xs:element ref="inceptionYear"/>
          <xs:element ref="package" minOccurs="0"/>
          <xs:element ref="logo" minOccurs="0"/>
          <xs:element ref="gumpRepositoryId" minOccurs="0"/>
          <xs:element ref="description" minOccurs="0"/>
          <xs:element ref="shortDescription"/>
          <xs:element ref="url" minOccurs="0" />
          <xs:element ref="issueTrackingUrl" minOccurs="0"/>
          <xs:element ref="siteAddress" minOccurs="0"/>
          <xs:element ref="siteDirectory" minOccurs="0"/>
          <xs:element ref="distributionSite" minOccurs="0"/>
          <xs:element ref="distributionDirectory" minOccurs="0"/>
          <xs:element ref="repository" minOccurs="0"/>
          <xs:element ref="versions" minOccurs="0"/>
          <xs:element ref="branches" minOccurs="0"/>
          <xs:element ref="mailingLists" minOccurs="0"/>
          <xs:element ref="developers"/>
          <xs:element ref="contributors" minOccurs="0"/>
          <xs:element ref="licenses" minOccurs="0"/>
          <xs:element ref="dependencies" minOccurs="0"/>
          <xs:element ref="build"/>
          <xs:element ref="reports" minOccurs="0"/>
          <xs:element ref="properties" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="extend" type='xs:string'/>
    <xs:element name="connection" type='xs:string'/>
    <xs:element name="developerConnection" type='xs:string'/>
    <xs:element name="currentVersion" type='xs:string'/>
    <xs:element name="description" type='xs:string'/>
    <xs:element name="distributionSite" type='xs:string'/>
    <xs:element name="distributionDirectory" type='xs:string'/>
    <xs:element name="name" type='xs:string'/>
    <xs:element name="groupId" type='xs:string'/>
    <xs:element name="artifactId" type='xs:string'/>
    <xs:element name="gumpRepositoryId" type='xs:string'/>
    <xs:element name="id" type='xs:string'/>
    <xs:element name="inceptionYear" type='xs:gYear'/>
    <!-- not anyURI as it can contain ${pom....} -->
    <xs:element name="issueTrackingUrl" type='xs:string'/>
    <xs:element name="logo" type='xs:string'/>
    <xs:element name="package" type='xs:string'/>
    <xs:element name="pomVersion" type='xs:string'/>
    <xs:element name="shortDescription" type='xs:string'/>
    <xs:element name="siteAddress" type='xs:string'/>
    <xs:element name="siteDirectory" type='xs:string'/>
    <!-- not anyURI as it can contain ${pom....} -->
    <xs:element name="url" type='xs:string'/>
  
    <!-- /repository element -->
    <xs:element name="repository">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="connection"/>
          <xs:element ref="developerConnection" minOccurs="0"/>
          <xs:element ref="url" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /organization element -->
    <xs:element name="organization">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:element ref="url" minOccurs="0" />
          <xs:element ref="logo" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /versions element -->
    <xs:element name="versions">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="version" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /versions/version element -->
    <xs:element name="version">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="id"/>
          <xs:element ref="name"/>
          <xs:element ref="tag"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /versions/version/tag and branches/branch/tag-->
    <xs:element name="tag" type='xs:string'/>
    
    <!-- /branches element -->
    <xs:element name="branches">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="branch" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /branches/branch element -->
    <xs:element name="branch">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="tag"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /mailingLists element -->
    <xs:element name="mailingLists">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="mailingList" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /mailingLists/mailingList element -->
    <xs:element name="mailingList">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:element ref="subscribe"/>
          <xs:element ref="unsubscribe"/>
          <xs:element ref="archive" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /mailingLists/mailingList/subscribe element -->  
    <xs:element name="subscribe" type='xs:string'/>
    <!-- /mailingLists/mailingList/unsubscribe element -->  
    <xs:element name="unsubscribe" type='xs:string'/>
    <!-- /mailingLists/mailingList/archive element -->  
    <xs:element name="archive" type='xs:string'/>
    
    <!-- /developers element -->
    <xs:element name="developers">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="developer" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /developers/developer element -->
    <xs:element name="developer">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:element ref="id"/>
          <xs:group ref="contactDetails" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /developers/developer/contactDetails group and
         /contributors/contributor/contactDetails group -->
    <xs:group name="contactDetails">
        <xs:sequence>
          <xs:element ref="email"/>
          <xs:element name="organization" type='xs:string' minOccurs="0"/>
          <xs:element ref="roles" minOccurs="0" />
          <xs:element ref="url" minOccurs="0" />
          <xs:element ref="timezone" minOccurs="0" />
        </xs:sequence>
    </xs:group>
  
    <!-- contactDetails/email element -->
    <xs:element name="email" type='xs:string'/>
  
    <!-- contactDetails/roles element -->
    <xs:element name="roles">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="role" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- contactDetails/roles/role element -->
    <xs:element name="role" type='xs:string'/>
  
    <!-- type for contactDetails/roles/timezone element -->  
    <xs:simpleType name="timezoneType">
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="-14"/>
        <xs:maxInclusive value="+14"/>
      </xs:restriction>
    </xs:simpleType> 
    
    <!-- contactDetails/roles/timezone element
         Stores a decimal that is the offset to GMT.
      -->  
    <xs:element name="timezone" type='timezoneType'/>
  
    <!-- /contributors element -->  
    <xs:element name="contributors">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="contributor" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /contributors/contributor element -->
    <xs:element name="contributor">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="name"/>
          <xs:group ref="contactDetails" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /licenses element -->
    <xs:element name="licenses">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="license" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /licenses/license element -->
    <xs:element name="license">
      <xs:complexType>
        <xs:sequence>
          <!-- name of the license, e.g. ASL 1.1 -->
          <xs:element ref="name" minOccurs="0"/>
          <!-- fetchable version of the license -->
          <xs:element ref="url" minOccurs="0" />
          <!-- 'manual' or 'repo' -->
          <xs:element ref="distribution" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <!-- /licenses/license/distribution element -->
    <xs:element name="distribution">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="manual|repo"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    
    <!-- /dependencies element -->
    <xs:element name="dependencies">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /dependencies/dependency element -->
    <xs:element name="dependency">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="id" minOccurs="0" />
          <xs:element ref="groupId" minOccurs="0" />
          <xs:element ref="artifactId" minOccurs="0" />
          <xs:element name="version" type="xs:string" />
          <xs:element ref="jar" minOccurs="0"/>
          <xs:element ref="type" minOccurs="0"/>
          <xs:element ref="url" minOccurs="0"/>
          <xs:element ref="properties" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <!-- /dependencies/dependency/type element -->
    <xs:element name="type" type='xs:string'/>
    <!-- /dependencies/dependency/jar element -->
    <xs:element name="jar" type='xs:string'/>
    
    <!-- /build element -->
    <xs:element name="build">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="nagEmailAddress" minOccurs="0"/>
          <xs:element ref="sourceDirectory" minOccurs="0"/>
          <xs:element ref="sourceModifications" minOccurs="0"/>
          <xs:element ref="unitTestSourceDirectory" minOccurs="0"/>
          <xs:element ref="integrationUnitTestSourceDirectory" minOccurs="0"/>
          <xs:element ref="aspectSourceDirectory" minOccurs="0"/>
          <xs:element ref="unitTest" minOccurs="0"/>
          <!-- no longer appears in build.java 
          <xs:element ref="integrationUnitTest" minOccurs="0"/>
          -->
          <xs:element ref="resources" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <xs:element name="nagEmailAddress" type='xs:string'/>
  
    <xs:element name="sourceDirectory" type='xs:string'/>
    
    <xs:element name="sourceModifications">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="sourceModification" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    
    <xs:element name="sourceModification">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="className" type='xs:string'/>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    
    <xs:element name="unitTestSourceDirectory" type='xs:string'/>
    <xs:element name="integrationUnitTestSourceDirectory" type='xs:string'/>
    <xs:element name="aspectSourceDirectory" type='xs:string'/>
    
    <xs:element name="unitTest">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="resources" minOccurs="0" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="includes">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="include" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="excludes">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="exclude" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="include" type='xs:string'/>
    <xs:element name="exclude" type='xs:string'/>
    
    <!-- no longer appears in build.java
    <xs:element name="integrationUnitTest">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    -->
    <xs:element name="resources">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="resource" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="directory" type='xs:string'/>
    <xs:element name="targetPath" type='xs:string'/>
    <xs:element name="filtering" type="xs:boolean" />
  
    <xs:element name="resource">
      <xs:complexType>
        <xs:sequence>
          <!-- FIXME: I think that this defaults to basedir, need a check -->
          <xs:element ref="directory" minOccurs="0"/>
          <xs:element ref="targetPath" minOccurs="0"/>
          <xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="filtering" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element> 
  
    <xs:element name="reports">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="report" minOccurs="0" maxOccurs="unbounded" 
            type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    
    <xs:element name="properties">
      <xs:complexType>
        <xs:sequence>
          <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  
    <xs:element name="classloader">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="root|root.maven"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
  
  </xs:schema>
  
  
  
  1.208     +6 -6      maven/build-bootstrap.xml
  
  Index: build-bootstrap.xml
  ===================================================================
  RCS file: /home/cvs/maven/build-bootstrap.xml,v
  retrieving revision 1.207
  retrieving revision 1.208
  diff -u -r1.207 -r1.208
  --- build-bootstrap.xml       18 Sep 2003 10:25:56 -0000      1.207
  +++ build-bootstrap.xml       13 Nov 2003 20:14:37 -0000      1.208
  @@ -353,12 +353,12 @@
         overwrite="yes"
       />
   
  -    <copy
  -      file="${basedir}/src/xsd/maven-project.xsd"
  -      todir="${maven.bootstrap.install.dir}"
  -      overwrite="yes"
  -    />
  -
  +    <copy todir="${maven.bootstrap.install.dir}" overwrite="yes">
  +      <fileset dir="${basedir}/src/xsd">
  +        <include name="maven-project-*.xsd"/>
  +      </fileset>
  +    </copy>
  +    
       <copy
         file="${basedir}/src/xsd/maven-navigation-1.0.xsd"
         todir="${maven.bootstrap.install.dir}"
  
  
  
  1.95      +1 -1      maven/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/maven/maven.xml,v
  retrieving revision 1.94
  retrieving revision 1.95
  diff -u -r1.94 -r1.95
  --- maven.xml 28 Oct 2003 00:10:35 -0000      1.94
  +++ maven.xml 13 Nov 2003 20:14:37 -0000      1.95
  @@ -211,7 +211,7 @@
           <include name="plugins/*.jar"/>
           <include name="bin/*"/>
           <include name="lib/**"/>
  -        <include name="maven-project.xsd"/>
  +        <include name="maven-project-*.xsd"/>
         </fileset>
       </copy>
   
  
  
  
  1.7       +5 -5      maven/build-bootstrap-core.xml
  
  Index: build-bootstrap-core.xml
  ===================================================================
  RCS file: /home/cvs/maven/build-bootstrap-core.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- build-bootstrap-core.xml  20 Aug 2003 13:08:00 -0000      1.6
  +++ build-bootstrap-core.xml  13 Nov 2003 20:14:37 -0000      1.7
  @@ -345,11 +345,11 @@
         overwrite="yes"
       />
   
  -    <copy
  -      file="${basedir}/src/xsd/maven-project.xsd"
  -      todir="${maven.bootstrap.install.dir}"
  -      overwrite="yes"
  -    />
  +    <copy todir="${maven.bootstrap.install.dir}" overwrite="yes">
  +      <fileset dir="${basedir}/src/xsd">
  +        <include name="maven-project-*.xsd"/>
  +      </fileset>
  +    </copy>
   
       <copy
         file="${basedir}/src/xsd/maven-navigation-1.0.xsd"
  
  
  
  1.9       +7 -2      maven/src/java/org/apache/maven/DefaultProjectUnmarshaller.java
  
  Index: DefaultProjectUnmarshaller.java
  ===================================================================
  RCS file: /home/cvs/maven/src/java/org/apache/maven/DefaultProjectUnmarshaller.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DefaultProjectUnmarshaller.java   19 Aug 2003 04:31:38 -0000      1.8
  +++ DefaultProjectUnmarshaller.java   13 Nov 2003 20:14:37 -0000      1.9
  @@ -81,6 +81,7 @@
   
   /**
    * @author Jason van Zyl
  + * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
    * @version $Id$
    */
   public class DefaultProjectUnmarshaller
  @@ -124,9 +125,13 @@
                   {
                       project.setName( parser.nextText() );
                   }
  +                else if ( parser.getName().equals( "version" ) )
  +                {
  +                    project.setVersion( parser.nextText() );
  +                }
                   else if ( parser.getName().equals( "currentVersion" ) )
                   {
  -                    project.setCurrentVersion( parser.nextText() );
  +                    project.setVersion( parser.nextText() );
                   }
                   else if ( parser.getName().equals( "inceptionYear" ) )
                   {
  
  
  
  1.9       +3 -3      maven/src/java/org/apache/maven/DefaultProjectMarshaller.java
  
  Index: DefaultProjectMarshaller.java
  ===================================================================
  RCS file: /home/cvs/maven/src/java/org/apache/maven/DefaultProjectMarshaller.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DefaultProjectMarshaller.java     21 Aug 2003 04:22:46 -0000      1.8
  +++ DefaultProjectMarshaller.java     13 Nov 2003 20:14:37 -0000      1.9
  @@ -81,8 +81,8 @@
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Gilles Dodinet</a>
  - * @version $Id: DefaultProjectMarshaller.java,v 1.4 2003/05/20 21:42:57
  - *      gdodinet Exp $
  + * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
  + * @version $Id$
    */
   public class DefaultProjectMarshaller
   {
  @@ -142,7 +142,7 @@
           marshallString( project.getGroupId(), "groupId" );
           marshallString( project.getArtifactId(), "artifactId" );
   
  -        marshallRequiredString( project.getCurrentVersion(), "currentVersion" );
  +        marshallRequiredString( project.getVersion(), "version" );
   
           marshallOrganization( project );
   
  
  
  
  1.30      +1 -1      maven/xdocs/reference/project-descriptor.xml
  
  Index: project-descriptor.xml
  ===================================================================
  RCS file: /home/cvs/maven/xdocs/reference/project-descriptor.xml,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- project-descriptor.xml    9 Nov 2003 14:56:44 -0000       1.29
  +++ project-descriptor.xml    13 Nov 2003 20:14:37 -0000      1.30
  @@ -20,7 +20,7 @@
         <p>
           For reference, the XML schema used to validate the project
           descriptor is available in the <a
  -        href="http://cvs.apache.org/viewcvs.cgi/maven/src/xsd/maven-project.xsd";>CVS
  +        href="http://cvs.apache.org/viewcvs.cgi/maven/src/xsd";>CVS
           Repository</a>.  In addition, a sample project descriptor is
           presented in the <a href="../start/integrate.html">Integration</a>
           document. For those wondering, yes, Maven's build system is built 
  
  
  
  1.6       +5 -5      maven/src/test/java/org/apache/maven/project/ProjectTest.java
  
  Index: ProjectTest.java
  ===================================================================
  RCS file: /home/cvs/maven/src/test/java/org/apache/maven/project/ProjectTest.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ProjectTest.java  5 Sep 2003 15:28:42 -0000       1.5
  +++ ProjectTest.java  13 Nov 2003 20:14:37 -0000      1.6
  @@ -340,17 +340,17 @@
           // JUnitDoclet end method hasRepository
       }
   
  -    public void testSetGetCurrentVersion() throws Exception
  +    public void testSetGetVersion() throws Exception
       {
  -        // JUnitDoclet begin method setCurrentVersion getCurrentVersion
  +        // JUnitDoclet begin method setVersion getVersion
           java.lang.String[] tests = {"", "a", "A", "ä", "ß", "0123456789", 
"012345678901234567890", null};
   
           for ( int i = 0; i < tests.length; i++ )
           {
  -            project.setCurrentVersion( tests[i] );
  -            assertEquals( tests[i], project.getCurrentVersion() );
  +            project.setVersion( tests[i] );
  +            assertEquals( tests[i], project.getVersion() );
           }
  -        // JUnitDoclet end method setCurrentVersion getCurrentVersion
  +        // JUnitDoclet end method setVersion getVersion
       }
   
       public void testSetGetOrganization() throws Exception
  
  
  
  1.92      +29 -7     maven/src/java/org/apache/maven/project/Project.java
  
  Index: Project.java
  ===================================================================
  RCS file: /home/cvs/maven/src/java/org/apache/maven/project/Project.java,v
  retrieving revision 1.91
  retrieving revision 1.92
  diff -u -r1.91 -r1.92
  --- Project.java      5 Sep 2003 15:28:41 -0000       1.91
  +++ Project.java      13 Nov 2003 20:14:37 -0000      1.92
  @@ -981,14 +981,34 @@
       }
   
       /**
  -     * Sets the currentVersion attribute of the Project object.
  +     * @see #setVersion(String)
  +     * @deprecated use [EMAIL PROTECTED] #setVersion(String)}
  +     */
  +    public void setCurrentVersion( String currentVersion )
  +    {
  +        setVersion(currentVersion);
  +    }
  +
  +    /**
  +     * Sets the version attribute of the Project object.
        *
  -     * @param currentVersion the current version number of the project, e.g.
  +     * @param version the current version number of the project, e.g.
        * <code>1.0</code>, <code>1.1-dev</code>
  +     * 
  +     * @since 1.0 rc2
        */
  -    public void setCurrentVersion( String currentVersion )
  +    public void setVersion(String version)
       {
  -        this.currentVersion = StringTool.trim(currentVersion);
  +        this.currentVersion = StringTool.trim(version);
  +    }
  +    
  +    /**
  +     * @see #getVersion()
  +     * @deprecated use [EMAIL PROTECTED] #getVersion()}
  +     */
  +    public String getCurrentVersion()
  +    {
  +        return getVersion();
       }
   
       /**
  @@ -996,12 +1016,14 @@
        *
        * @return the current version of the project e.g. <code>1.0</code>,
        * <code>1.1-dev</code>
  +     * 
  +     * @since 1.0 rc2
        */
  -    public String getCurrentVersion()
  +    public String getVersion()
       {
           return currentVersion;
       }
  -
  +    
       /**
        * Sets the project Organization.
        *
  
  
  
  1.15      +8 -2      maven/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven/xdocs/changes.xml,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- changes.xml       29 Aug 2003 06:26:23 -0000      1.14
  +++ changes.xml       13 Nov 2003 20:14:37 -0000      1.15
  @@ -7,12 +7,18 @@
   
     <body>
   
  -    <release version="1.0RC1" date="in CVS">
  +    <release version="1.0RC2" date="in CVS">
  +      <action dev="vmassol" type="add">
  +        Deprecated &lt;currentVersion&gt; element. It is now replaced by the
  +        &lt;version&gt; element. Created new version 4 of the POM and added
  +        support for several POM versions.
  +      </action>
  +    </release>
   
  +    <release version="1.0RC1" date="2003-09-30">
         <action dev='dion' type='fix'>
           Move maven.docs.* and maven.gen.docs to defaults.properties instead of xdoc 
plugin
         </action>
  -
         <action dev="jvanzyl" type="add">
           Added the new POM marshaller and unmarshaller based on the xpp3
           xmlpull parser. This eliminates betwixt and friends from the POM
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to