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 <currentVersion> element. It is now replaced by the
+ <version> 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]