You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ah...@apache.org on 2006/08/01 23:51:30 UTC

svn commit: r427755 - /maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml

Author: aheritier
Date: Tue Aug  1 14:51:30 2006
New Revision: 427755

URL: http://svn.apache.org/viewvc?rev=427755&view=rev
Log:
Update backwards incompatibilities

Modified:
    maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml

Modified: maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml
URL: http://svn.apache.org/viewvc/maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml?rev=427755&r1=427754&r2=427755&view=diff
==============================================================================
--- maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml (original)
+++ maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml Tue Aug  1 14:51:30 2006
@@ -21,7 +21,9 @@
 
   <properties>
     <title>Compatibility Issues</title>
-    <author email="brett@apache.org">Brett Porter</author>
+    <author email="brett AT apache DOT org">Brett Porter</author>
+    <author email="ltheussl AT apache DOT org">Lukas Theussl</author>
+    <author email="aheritiert AT apache DOT org">Arnaud Heritier</author>
   </properties>
 
   <body>
@@ -29,186 +31,271 @@
       <p>
         This page details some of the backwards compatibility issues that you
         might encounter upgrading between Maven versions, and how to update your
-        project.
+        project. You'll find here :
       </p>
-      <subsection name="Changes Between Maven 1.0 and Maven 1.1-beta-2">
-        <p>
-          <b>JDK requirement is now 1.4 and above</b>
-        </p>
-        <p>
-          The JDK required to <i>run</i> Maven is now 1.4 or above. This does not affect what JDKs you can build your
-          libraries for, however - you can still generate class files that will run on 1.1 JVMs as before.
-        </p>
-        <p>
-          <b>Deprecated Plugins Removed</b>
-        </p>
-        <p>
-          The following plugins are no longer distributed with Maven by default. They are still available using
-          the <code>plugin:download</code> command to obtain the version released with Maven 1.0.2, and the source
-          code is available from the plugin sandbox. If there is sufficient interest in maintaining them or moving
-          them to another project it will be considered.
-        </p>
-        <ul>
-          <li>appserver</li>
-          <li>ashkelon</li>
-          <li>aspectwerkz</li>
-          <li>caller</li>
-          <li>docbook <i>(note that there is a superior docbook plugin at <a href="http://maven-plugins.sourceforge.net/">the SourceForge Maven Plugins project</a>)</i></li>
-          <li>jdee</li>
-          <li>jdeveloper</li>
-          <li>junit-doclet</li>
-          <li>latex</li>
-          <li>latka</li>
-          <li>shell</li>
-          <li>struts</li>
-          <li>tjdo</li>
-          <li>vdoclet</li>
-          <li>webserver</li>
-          <li>wizard</li>
-        </ul>
-        <p>
-          <b>The <code>default</code> attribute in maven.xml has been deprecated</b>
-        </p>
-        <p>
-          The default goal should be specified in a <code>&lt;defaultGoal&gt;</code> tag inside the 
-          <code>&lt;build&gt;</code> section of project.xml instead of maven.xml.
-        </p>
-        <p>
-          <b>Changes for XML parsers</b>
-        </p>
-        <p>
-          Due to the minimum JDK requirement, Xerces is no longer bundled with Maven. Plugins that relied on
-          that particular version of Xerces and are no JAXP compliant may need modifications.
-        </p>
-        <p>
-          XSLT should now work under JDK 1.4 and 5.0 without the plugin modifications previously required.
-        </p>
-        <p>
-          <b>Bundled Ant version changed from 1.5.3-1 to 1.6.5</b>
-        </p>
-        <p>
-          While in most cases this change should be transparent, those using optional tasks will need to add them as
-          a dependency to their plugin/project, as not all optional tasks are bundled with Maven any more.
-        </p>
-        <p>
-          <b>Implicit dependencies on JARs in Maven's <code>lib</code> directory</b>
-        </p>
-        <p>
-          Aside from the XML parsers, the following libraries are no longer distributed with Maven:
-        </p>
-        <ul>
-          <li><code>commons-digester</code></li>
-          <li><code>commons-graph</code></li>
-          <li><code>commons-lang</code></li>
-          <li><code>which</code></li>
-        </ul>
-        <p>
-          If a plugin did not declare a dependency but relied on its existence, it may fail to work under Maven 1.1.
-        </p>
-        <p>
-          In addition, the versions of some libraries have changed, which may affect plugins.
-        </p>
-        <p>
-          <b>Upgrading <code>maven.jar</code></b>
-        </p>
-        <p>
-          If you are directly importing and using classes from this package, you may find classes
-          from the <code>org.apache.maven.project</code> package are missing as they have moved.
-          This may also apply if you are using <code>maven-jelly-tags</code>.
-        </p>
-        <p>
-          <b>Fix:</b> Include <code>maven-model-3.0.1</code> in your project's dependencies.
-        </p>
-        <p>
-          <b>Changes to <code>org.apache.maven.project.Repository</code> (and use of <code>pom.repository.*</code> in Jelly)</b>
-        </p>
-        <p>
-          The <code>Repository</code> class now houses only the information from the project model.
-          You may find that static methods such as <code>splitSCMConnection</code> and <code>tokenizerToArray</code>
-          or fields such as <code>scmType</code>, which depended on the split function, are missing.
-        </p>
-        <p>
-          <b>Fix:</b> These functions have been removed. The static methods do exist in
-          <code>maven-changelog-plugin</code> if needed, in the <code>RepositoryUtils</code> class.
-          All other plugins had been manually splitting the connection string. 
-          See <code>maven-scm-plugin</code> for an example of this.
-          The future should see all plugins and code using Maven SCM for this task, and all dealings with an
-          SCM system.
-        </p>
-        <p>
-          <b>Use of <code>Project.getDependencyPath</code> and <code>Project.getDependency</code></b>
-        </p>
-        <p>
-          If you have a single non-JAR artifact that you resolve using this function, it will no longer be
-          found.
-        </p>
-        <p>
-          <b>Fix:</b> Specify the type in the argument. The full form is
-          <code>getDependency('groupId:artifactId:type')</code>. Type is defaulted to <code>jar</code>.
-        </p>
-        <p>
-          <b>Parse errors on previously 'valid' project files</b>
-        </p>
-        <p>
-          <code>project.xml</code> files that used to work in older versions of Maven may now present parse
-          errors. The parser in Maven 1.1 is much less tolerant of invalid <code>project.xml</code> files
-          to avoid silently masking syntax errors. Some XML features are not enabled (such as DOCTYPE ENTITY
-          declarations) - see the <a href="../faq.html">FAQ</a> for an explanation.
-        </p>
-        <p>
-          <b>Fix:</b> Check your project file against the XSD published for the model version you are using.
-        </p>
-        <p>
-          <b>Entities and JDK 1.4</b>
-        </p>
-        <p>
-          Due to a bug in the parser included with JDK 1.4, relative SYSTEM entities will not work in
-          <code>maven.xml</code> where they may have previously. 
-        </p>
-        <p>
-          <b>Fix:</b> As above, we recommend not using entities in <code>maven.xml</code>, in favour of inheritance
-          and plugins. If you want an existing file to work without modifications, you should
-          download <a href="http://www.ibiblio.org/maven2/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar">Xerces</a> and place it in
-          <code>&lt;JAVA_HOME&gt;/jre/lib/endorsed</code> (this directory may need to be created).
-        </p>
+      <ul>
+        <li><a href="#Changes_Between_Maven_1.0.2_and_Maven_1.1-beta-3">Changes Between Maven 1.0.2 and Maven 1.1-beta-3</a> : If you are using the last release.</li>
+        <li><a href="#Changes_Between_Maven_1.1-beta-2_and_Maven_1.1-beta-3">Changes Between Maven 1.1-beta-2 and Maven 1.1-beta-3</a> : If you are already using the last testing release.</li>
+      </ul>
+      <subsection name="Changes Between Maven 1.0.2 and Maven 1.1-beta-3">
+        <dl>
+          <dt>JDK requirement is now 1.4 and above</dt>
+          <dd>
+            <p>
+              The JDK required to <i>run</i> Maven is now 1.4 or above. This does not affect what JDKs you can build your
+              libraries for, however - you can still generate class files that will run on 1.1 JVMs as before.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Bundled Ant version changed from 1.5.3-1 to 1.6.5</dt>
+          <dd>
+            <p>
+              While in most cases this change should be transparent, those <b>using optional tasks will need to add them as
+              a dependency to their plugin/project</b>, as not all optional tasks are bundled with Maven any more.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Deprecated Plugins Removed</dt>
+          <dd>
+            <p>
+              The following plugins are no longer distributed with Maven by default. They are still available using
+              the <code>plugin:download</code> command to obtain the last version released, and the source
+              code is available from the plugin sandbox. If there is sufficient interest in maintaining them or moving
+              them to another project it will be considered.
+            </p>
+            <ul>
+              <li>abbot</li>
+              <li>appserver</li>
+              <li>ashkelon</li>
+              <li>aspectwerkz</li>
+              <li>caller</li>
+              <li>castor</li>
+              <li>docbook <i>(note that there is a superior docbook plugin at <a href="http://maven-plugins.sourceforge.net/">the SourceForge Maven Plugins project</a>)</i></li>
+              <li>hibernate</li>
+              <li>j2ee</li>
+              <li>jboss <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+              <li>jbuilder</li>
+              <li>jcoverage</li>
+              <li>jdee</li>
+              <li>jdeveloper</li>
+              <li>jetty <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+              <li>jnlp</li>
+              <li>junit-doclet</li>
+              <li>latex</li>
+              <li>latka</li>
+              <li>release <i>(replaced functionality by scm)</i></li>
+              <li>repository</li>
+              <li>shell</li>
+              <li>struts</li>
+              <li>tjdo</li>
+              <li>uberjar <i>(can be replaced by <a href="http://maven-plugins.sourceforge.net/maven-javaapp-plugin/">javaapp</a>)</i></li>
+              <li>vdoclet</li>
+              <li>webserver</li>
+              <li>wizard</li>
+            </ul>
+          </dd>
+        </dl>
+        <dl>
+          <dt>The <code>default</code> attribute in maven.xml has been deprecated</dt>
+          <dd>
+            <p>
+              The default goal should be specified in a <code>&lt;defaultGoal&gt;</code> tag inside the 
+              <code>&lt;build&gt;</code> section of project.xml instead of maven.xml.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Implicit dependencies on JARs in Maven's <code>lib</code> directory</dt>
+          <dd>
+            <p>
+              The following libraries are no longer distributed with Maven:
+            </p>
+            <ul>
+              <li><code>commons-digester</code></li>
+              <li><code>commons-graph</code></li>
+              <li><code>commons-lang</code></li>
+              <li><code>which</code></li>
+            </ul>
+            <p>
+              If a plugin did not declare a dependency but relied on its existence, it may fail to work under Maven 1.1.
+            </p>
+            <p>
+              In addition, the versions of some libraries have changed, which may affect plugins.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Upgrading <code>maven.jar</code></dt>
+          <dd>
+            <p>
+              If you are directly importing and using classes from this package, you may find classes
+              from the <code>org.apache.maven.project</code> package are missing as they have moved.
+              This may also apply if you are using <code>maven-jelly-tags</code>.
+            </p>
+            <p>
+              <b>Fix:</b> Include <code>maven-model-3.0.1</code> in your project's dependencies.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Changes to <code>org.apache.maven.project.Repository</code> (and use of <code>pom.repository.*</code> in Jelly)</dt>
+          <dd>
+            <p>
+              The <code>Repository</code> class now houses only the information from the project model.
+              You may find that static methods such as <code>splitSCMConnection</code> and <code>tokenizerToArray</code>
+              or fields such as <code>scmType</code>, which depended on the split function, are missing.
+            </p>
+            <p>
+              <b>Fix:</b> These functions have been removed. The static methods do exist in
+              <code>maven-changelog-plugin</code> if needed, in the <code>RepositoryUtils</code> class.
+              All other plugins had been manually splitting the connection string. 
+              See <code>maven-scm-plugin</code> for an example of this.
+              The future should see all plugins and code using Maven SCM for this task, and all dealings with an
+              SCM system.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Use of <code>Project.getDependencyPath</code> and <code>Project.getDependency</code></dt>
+          <dd>
+            <p>
+              If you have a single non-JAR artifact that you resolve using this function, it will no longer be
+              found.
+            </p>
+            <p>
+              <b>Fix:</b> Specify the type in the argument. The full form is
+              <code>getDependency('groupId:artifactId:type')</code>. Type is defaulted to <code>jar</code>.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>POM and Entities</dt>
+          <dd>
+            <p>
+              Due to a bug in the new model generated by modello (See <a href="http://jira.codehaus.org/browse/MAVEN-1755">MAVEN-1755</a>) relative SYSTEM entities not work in the POM.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>XML APIs</dt>
+          <dd>
+            <p>
+              As in maven 1.0, <a href="/dependencies.html">xercesImpl,xml-apis and xml-resolver</a> 
+              are loaded in the endorsed libraries of the JVM. You can't override them and if you use 
+              another version of xml-apis in your tests, you have to fork the JVM.
+            </p>
+            <p>
+              If in a custom goal or in a plugin, you use some xslt transformations, we recommend to not
+              use the style task in ant which will not work with all JDKs. Instead of that you are
+              encouraged to use a custom process launched in a forked JVM (like it's done in the PDF plugin
+              for example).
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Parse errors on previously 'valid' project files</dt>
+          <dd>
+            <p>
+              <code>project.xml</code> files that used to work in older versions of Maven may now present parse
+              errors. The parser in Maven 1.1 is much less tolerant of invalid <code>project.xml</code> files
+              to avoid silently masking syntax errors. Some XML features are not enabled (such as DOCTYPE ENTITY
+              declarations) - see the <a href="../faq.html">FAQ</a> for an explanation.
+            </p>
+            <p>
+              <b>Fix:</b> Check your project file against the XSD published for the model version you are using.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Deprecated <code>create-upload-bundle</code> goal.</dt>
+          <dd>
+            <p>
+              Replaced by <code>artifact:create-upload-bundle</code>.
+            </p>
+          </dd>
+        </dl>
       </subsection>
 
-      <subsection name="Changes Between Maven 1.1-beta-2 and Maven 1.1-beta-3 (unpublished)">
-        <p>
-          <b>Deprecated Plugins Removed</b>
-        </p>
-        <p>
-          The following plugins are no longer distributed with Maven by default. They are still available using
-          the <code>plugin:download</code> command to obtain the version released with Maven 1.0.2, and the source
-          code is available from the plugin sandbox. If there is sufficient interest in maintaining them or moving
-          them to another project it will be considered.
-        </p>
-        <ul>
-          <li>abbot</li>
-          <li>castor</li>
-          <li>hibernate</li>
-          <li>j2ee</li>
-          <li>jboss <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
-          <li>jbuilder</li>
-          <li>jcoverage</li>
-          <li>jetty <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
-          <li>jnlp</li>
-          <li>release <i>(replaced functionality by scm)</i></li>
-          <li>repository</li>
-          <li>uberjar <i>(can be replaced by <a href="http://maven-plugins.sourceforge.net/maven-javaapp-plugin/">javaapp</a>)</i></li>
-        </ul>
-        <p>
-          <b>Deprecated <code>create-upload-bundle</code> goal.</b>
-        </p>
-        <p>
-          Replaced by <code>artifact:create-upload-bundle</code>.
-        </p>
-        <p>
-          <b>Xerces is back.</b>
-        </p>
-        <p>
-          See <a href="http://jira.codehaus.org/browse/MAVEN-1753">MAVEN-1753</a>.
-        </p>
+      <subsection name="Changes Between Maven 1.1-beta-2 and Maven 1.1-beta-3">
+        <dl>
+          <dt>Deprecated Plugins Removed</dt>
+          <dd>
+            <p>
+              The following plugins are no longer distributed with Maven by default. They are still available using
+              the <code>plugin:download</code> command to obtain the version released with Maven 1.0.2, and the source
+              code is available from the plugin sandbox. If there is sufficient interest in maintaining them or moving
+              them to another project it will be considered.
+            </p>
+            <ul>
+              <li>abbot</li>
+              <li>castor</li>
+              <li>hibernate</li>
+              <li>j2ee</li>
+              <li>jboss <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+              <li>jbuilder</li>
+              <li>jcoverage</li>
+              <li>jetty <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+              <li>jnlp</li>
+              <li>release <i>(replaced functionality by scm)</i></li>
+              <li>repository</li>
+              <li>uberjar <i>(can be replaced by <a href="http://maven-plugins.sourceforge.net/maven-javaapp-plugin/">javaapp</a>)</i></li>
+            </ul>
+          </dd>
+        </dl>
+        <dl>
+          <dt>XML APIs</dt>
+          <dd>
+            <p>
+              Due to the problems found in the parsers bundled in the different JDK, we re-introduced 
+              xerces in maven.
+            </p>
+            <p>
+              As in maven 1.0, <a href="/dependencies.html">xercesImpl,xml-apis and xml-resolver</a> 
+              are loaded in the endorsed libraries of the JVM. You can't override them and if you use 
+              another version of xml-apis in your tests, you have to fork the JVM.
+            </p>
+            <p>
+              If in a custom goal or in a plugin, you use some xslt transformations, we recommend to not
+              use the style task in ant which will not work with all JDKs. Instead of that you are
+              encouraged to use a custom process launched in a forked JVM (Like it's done in the PDF plugin
+              for example).
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>XML Entities</dt>
+          <dd>
+            <p>
+              With the upgrade of Dom4J, relative SYSTEM entities work in xdocs and maven.xml.
+              Due to a bug in the new model generated by modello 
+              (See <a href="http://jira.codehaus.org/browse/MAVEN-1755">MAVEN-1755</a>) relative 
+              SYSTEM entities not work in the POM.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Deprecated <code>create-upload-bundle</code> goal.</dt>
+          <dd>
+            <p>
+              Replaced by <code>artifact:create-upload-bundle</code>.
+            </p>
+          </dd>
+        </dl>
+        <dl>
+          <dt>Multi-projects issues fixed</dt>
+          <dd>
+            <p>
+              Several important issues concerning multi-projects are now fixed which resolve backward 
+              incompabilities with maven 1.0.x introduced in previous betas.
+              (<a href="http://jira.codehaus.org/browse/MPMULTIPROJECT-66">MPMULTIPROJECT-66</a>,
+              <a href="http://jira.codehaus.org/browse/MPMULTIPROJECT-60">MPMULTIPROJECT-60</a>,
+              <a href="http://jira.codehaus.org/browse/MAVEN-1638">MAVEN-1638</a>,
+              <a href="http://jira.codehaus.org/browse/MAVEN-1691">MAVEN-1691</a>, ...)
+            </p>
+          </dd>
+        </dl>
       </subsection>
 
     </section>