mirror of https://github.com/apache/maven.git
o more meshing of trunk and my branch, two tests that are out of sync
git-svn-id: https://svn.apache.org/repos/asf/maven/components/branches/MNG-2766@768832 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
006b3cf25b
commit
a14dd02e93
13
bs
13
bs
|
@ -1,13 +0,0 @@
|
|||
#
|
||||
# 1009-02-18 Oleg:
|
||||
# this is a temporary script to simplify debugging of mercury-based bootstrap (bs) build
|
||||
# it addresses the issue of random XMLInputStreamFactory class that varies across installations
|
||||
# and maven-3 requires a specific default implementation
|
||||
#
|
||||
export CLASSPATH=./mercury-ant-tasks-1.0-alpha-6-SNAPSHOT.jar
|
||||
export ANT_OPTS='-Dmercury.log.level=info -Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory '
|
||||
#export ANT_OPTS=$ANT_OPTS' -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000'
|
||||
|
||||
echo ANT_OPTS=$ANT_OPTS
|
||||
|
||||
ant -f build-mercury.xml $*
|
|
@ -1,347 +0,0 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
<!-- START SNIPPET: ant-bootstrap
|
||||
|
||||
By default the bootstrap will use ~/.m2/repository as the integration repository but you can define the integration
|
||||
repository by specifying a property on the command line:
|
||||
|
||||
ant -Dmaven.repo.local=/my/integration/repository
|
||||
|
||||
Those familiar with Maven will note this is the same way the local repository can be set from the command-line.
|
||||
This facilitates having a set of builds converge on the same repository for integration purposes.
|
||||
|
||||
END SNIPPET: ant-bootstrap -->
|
||||
|
||||
<project default="all" basedir="." xmlns:mercury="urn:mercury-ant-tasks">
|
||||
|
||||
<property name="it.workdir.version" value="3.0.x"/>
|
||||
|
||||
<target name="initTaskDefs">
|
||||
<xmlproperty file="pom.xml" prefix="pom" keepRoot="false"/>
|
||||
<path id="mercury-ant-tasks.classpath" path="mercury-ant-tasks-1.0-alpha-6-SNAPSHOT.jar"/>
|
||||
<typedef resource="org/apache/maven/mercury/ant/tasks/antlib.xml" uri="urn:mercury-ant-tasks" classpathref="mercury-ant-tasks.classpath"/>
|
||||
</target>
|
||||
|
||||
<target name="isMavenHomeSet" depends="initTaskDefs">
|
||||
<property environment="env"/>
|
||||
<condition property="maven.home" value="${env.M2_HOME}">
|
||||
<isset property="env.M2_HOME"/>
|
||||
</condition>
|
||||
<fail message="You must set the M2_HOME environment variable or specify a maven.home property to this Ant script">
|
||||
<condition>
|
||||
<or>
|
||||
<not>
|
||||
<isset property="maven.home" />
|
||||
</not>
|
||||
<equals arg1="${maven.home}" arg2="" trim="true" />
|
||||
</or>
|
||||
</condition>
|
||||
</fail>
|
||||
</target>
|
||||
|
||||
<target name="init" depends="isMavenHomeSet">
|
||||
<xmlproperty prefix="pom" file="pom.xml"/>
|
||||
<basename file="${maven.home}" property="maven.home.basename"/>
|
||||
<dirname file="${maven.home}" property="maven.home.dirname"/>
|
||||
<!-- Initialize properties -->
|
||||
<property name="maven.home.basename.expected" value="apache-maven-${pom.project.version}"/>
|
||||
<property name="maven.assembly" location="apache-maven/target/${maven.home.basename.expected}-bin.zip"/>
|
||||
<property name="maven.repo.local" value="${user.home}/.m2/repository"/>
|
||||
<property name="maven.repo.central" value="http://repository.sonatype.org/content/groups/public"/>
|
||||
<!--
|
||||
<property name="maven.repo.central" value="http://repo1.maven.org/maven2"/>
|
||||
<property name="maven.repo.update.policy" value="daily"/>
|
||||
<property name="maven.repo.update.policy" value="always"/>
|
||||
-->
|
||||
<property name="maven.repo.update.policy" value="daily"/>
|
||||
|
||||
<property name="maven.repo.system" value="don.t"/>
|
||||
|
||||
<condition property="do.not.clean.local.repo">
|
||||
<not>
|
||||
<isset property="clean.local.repo"/>
|
||||
</not>
|
||||
</condition>
|
||||
|
||||
<property name="surefire.useFile" value="true"/>
|
||||
<echo>maven.home = ${maven.home}</echo>
|
||||
</target>
|
||||
|
||||
<target name="clean-bootstrap" description="cleans up generated bootstrap classes">
|
||||
<delete dir="bootstrap"/>
|
||||
</target>
|
||||
|
||||
<target name="clean-local-repo" description="cleans up local repo" unless="do.not.clean.local.repo">
|
||||
<delete dir="${maven.repo.local}"/>
|
||||
<mkdir dir="${maven.repo.local}"/>
|
||||
</target>
|
||||
|
||||
<target name="flip-default-repository" unless="do.not.flip.repository">
|
||||
|
||||
<replace dir="${basedir}/maven-repository/src/main/java">
|
||||
<include name="**/LegacyRepositorySystem.java"/>
|
||||
<replacefilter token='@Component( role = RepositorySystem.class, hint = "default" )'
|
||||
value='@Component( role = RepositorySystem.class, hint = "${legacy-hint}" )'/>
|
||||
<replacefilter token='@Component( role = RepositorySystem.class, hint = "legacy" )'
|
||||
value='@Component( role = RepositorySystem.class, hint = "${legacy-hint}" )'/>
|
||||
</replace>
|
||||
|
||||
<replace dir="${basedir}/maven-repository-mercury/src/main/java">
|
||||
<include name="**/MercuryRepositorySystem.java"/>
|
||||
<replacefilter token='@Component( role = RepositorySystem.class, hint = "mercury" )'
|
||||
value='@Component( role = RepositorySystem.class, hint = "${mercury-hint}" )'/>
|
||||
<replacefilter token='@Component( role = RepositorySystem.class, hint = "default" )'
|
||||
value='@Component( role = RepositorySystem.class, hint = "${mercury-hint}" )'/>
|
||||
</replace>
|
||||
|
||||
<echo>maven.repo.system is ${maven.repo.system}, flip: legacy-hint=${legacy-hint}, mercury-hint=${mercury-hint}</echo>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="flip-default-repository-system" description="flips repository system impl">
|
||||
|
||||
<condition property="legacy-hint" value="default">
|
||||
<equals arg1="${maven.repo.system}" arg2="legacy"/>
|
||||
</condition>
|
||||
<condition property="mercury-hint" value="mercury">
|
||||
<equals arg1="${maven.repo.system}" arg2="legacy"/>
|
||||
</condition>
|
||||
|
||||
<condition property="legacy-hint" value="legacy">
|
||||
<equals arg1="${maven.repo.system}" arg2="mercury"/>
|
||||
</condition>
|
||||
<condition property="mercury-hint" value="default">
|
||||
<equals arg1="${maven.repo.system}" arg2="mercury"/>
|
||||
</condition>
|
||||
|
||||
<condition property="do.not.flip.repository" value="default">
|
||||
<equals arg1="${maven.repo.system}" arg2="don.t"/>
|
||||
</condition>
|
||||
|
||||
<antcall target="flip-default-repository"/>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="pull" depends="init,clean-local-repo" unless="skip.pull">
|
||||
<property name="verbose" value="false"/>
|
||||
<!-- Pull the dependencies that Maven needs to build -->
|
||||
<copy file="pom.xml" tofile="dependencies.xml"/>
|
||||
<replace file="${basedir}/dependencies.xml" token="<!--bootstrap-start-comment-->" value="<!--"/>
|
||||
<replace file="${basedir}/dependencies.xml" token="<!--bootstrap-end-comment-->" value="-->"/>
|
||||
|
||||
<mercury:local-repository location="${maven.repo.local}"/>
|
||||
<mercury:remote-repository id="central" location="${maven.repo.central}" updatePolicy="${maven.repo.update.policy}"/>
|
||||
|
||||
<property name="tsFormat" value="HH:mm:ss"/>
|
||||
<tstamp><format property="start.time" pattern="${tsFormat}"/></tstamp>
|
||||
|
||||
<!-- classpaths with default names: mercury.classpath, mercury.classpath.test, mercury.classpath.runtime -->
|
||||
<mercury:resolve-dependencies scope="compile">
|
||||
<mercury:dependency source="maven:${basedir}/dependencies.xml"/>
|
||||
<mercury:dependency id="org.codehaus.plexus:plexus-component-metadata:${pom.properties.plexusVersion}"/>
|
||||
|
||||
<mercury:exclusions>
|
||||
<mercury:exclusion id="org.sonatype.mercury:mercury-mp3-cli"/>
|
||||
<mercury:exclusion id="org.sonatype.mercury:mercury-mp3-delta"/>
|
||||
<mercury:exclusion id="org.sonatype.mercury:mercury-mp3-api"/>
|
||||
</mercury:exclusions>
|
||||
|
||||
</mercury:resolve-dependencies>
|
||||
|
||||
<tstamp><format property="stop.time" pattern="${tsFormat}"/></tstamp>
|
||||
|
||||
<echo>========================================================================</echo>
|
||||
<echo>Mercury: start ${start.time}, stop ${stop.time}</echo>
|
||||
<echo>========================================================================</echo>
|
||||
<property name="mc" refid="mercury.classpath"/>
|
||||
<echo>mercury.classpath=${mc}</echo>
|
||||
<echo>========================================================================</echo>
|
||||
|
||||
<!--
|
||||
<delete file="${basedir}/dependencies.xml"/>
|
||||
-->
|
||||
|
||||
<tstamp><format property="modello.start.time" pattern="${tsFormat}"/></tstamp>
|
||||
|
||||
<!-- only one named classpath: modello.classpath -->
|
||||
<mercury:resolve-dependencies pathid="modello.classpath" scope="runtime">
|
||||
<mercury:dependency id="org.codehaus.modello:modello-maven-plugin:${pom.properties.modelloVersion}"/>
|
||||
</mercury:resolve-dependencies>
|
||||
|
||||
<tstamp><format property="modello.stop.time" pattern="${tsFormat}"/></tstamp>
|
||||
|
||||
<echo>=======================================</echo>
|
||||
<echo>Modello: start ${modello.start.time}, stop ${modello.stop.time}</echo>
|
||||
<echo>=======================================</echo>
|
||||
|
||||
<!--
|
||||
<echo>========================================================================</echo>
|
||||
<property name="modello.cp" refid="modello.classpath"/>
|
||||
<echo>modello.cp=${modello.cp}</echo>
|
||||
<echo>========================================================================</echo>
|
||||
-->
|
||||
|
||||
</target>
|
||||
|
||||
<target name="process-classes" depends="pull" description="generates plexus component metadata.">
|
||||
<mkdir dir="${basedir}/bootstrap/target"/>
|
||||
<mkdir dir="${basedir}/bootstrap/target/classes"/>
|
||||
|
||||
<path id="maven.classpath">
|
||||
<pathelement location="bootstrap/target/classes"/>
|
||||
<path refid="sources"/>
|
||||
<path refid="mercury.classpath"/>
|
||||
</path>
|
||||
|
||||
<echo>Using plexus version ${pom.properties.plexusVersion}</echo>
|
||||
<java fork="fork" classname="org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" failonerror="true">
|
||||
<classpath refid="maven.classpath"/>
|
||||
<!-- We need to generate component descriptors from the maven-artifact sources which use javadoc annotations. -->
|
||||
<arg value="--source"/>
|
||||
<arg value="${basedir}/maven-compat/src/main/java"/>
|
||||
<!-- We have separated the artifact handlers and lifecycle mappings into a separate file. -->
|
||||
<arg value="--descriptors"/>
|
||||
<arg value="${basedir}/maven-core/src/main/resources/META-INF/plexus"/>
|
||||
<!-- Search the classes for annotations that we've compiled. -->
|
||||
<arg value="--classes"/>
|
||||
<arg value="${basedir}/bootstrap/target/classes"/>
|
||||
<!-- We'll make one big fat components descriptor. -->
|
||||
<arg value="--output"/>
|
||||
<arg value="${basedir}/bootstrap/target/classes/META-INF/plexus/components.xml"/>
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="generate-sources" depends="pull" description="generates Java sources from Modello mdo model files">
|
||||
<mkdir dir="bootstrap/target"/>
|
||||
<mkdir dir="bootstrap/target/generated-sources"/>
|
||||
|
||||
<macrodef name="modello-single-mode">
|
||||
<attribute name="file"/>
|
||||
<attribute name="mode"/>
|
||||
<attribute name="version"/>
|
||||
<sequential>
|
||||
<java fork="fork" classname="org.codehaus.modello.ModelloCli" failonerror="true" classpathref="modello.classpath">
|
||||
<arg file="@{file}"/> <!-- model file -->
|
||||
<arg value="@{mode}"/> <!-- output type -->
|
||||
<arg file="bootstrap/target/generated-sources"/> <!-- output directory -->
|
||||
<arg value="@{version}"/> <!-- model version -->
|
||||
<arg value="false"/> <!-- package with version -->
|
||||
<arg value="true"/> <!-- use Java 5 -->
|
||||
<arg value="UTF-8"/> <!-- encoding -->
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
<macrodef name="modello">
|
||||
<attribute name="file"/>
|
||||
<attribute name="version" default="1.0.0"/>
|
||||
<sequential>
|
||||
<echo taskname="modello" message="Generating sources for @{file}"/>
|
||||
<modello-single-mode file="@{file}" version="@{version}" mode="java"/>
|
||||
<modello-single-mode file="@{file}" version="@{version}" mode="xpp3-reader"/>
|
||||
<modello-single-mode file="@{file}" version="@{version}" mode="xpp3-writer"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
<modello file="maven-model/src/main/mdo/maven.mdo" version="4.0.0"/>
|
||||
<modello file="maven-lifecycle/src/main/mdo/maven-lifecycle.mdo"/>
|
||||
<modello file="maven-plugin-api/src/main/mdo/lifecycle.mdo"/>
|
||||
<modello file="maven-model-builder/src/main/mdo/profiles.mdo"/>
|
||||
<modello file="maven-core/src/main/mdo/settings.mdo"/>
|
||||
<modello file="maven-toolchain/src/main/mdo/toolchains.xml"/>
|
||||
<modello file="maven-compat/src/main/mdo/metadata.mdo"/>
|
||||
</target>
|
||||
|
||||
<target name="compile-boot" depends="generate-sources,flip-default-repository-system" description="compiles the bootstrap sources">
|
||||
|
||||
<path id="sources">
|
||||
<dirset dir=".">
|
||||
<include name="bootstrap/target/generated-sources"/>
|
||||
<include name="*/src/main/*"/>
|
||||
</dirset>
|
||||
</path>
|
||||
|
||||
<mkdir dir="bootstrap/target/classes"/>
|
||||
|
||||
<javac destdir="bootstrap/target/classes" encoding="UTF-8" source="1.5" target="1.5" debug="true">
|
||||
<src refid="sources"/>
|
||||
<classpath refid="mercury.classpath"/>
|
||||
</javac>
|
||||
|
||||
<path id="maven.classpath">
|
||||
<pathelement location="bootstrap/target/classes"/>
|
||||
<pathelement location="maven-compat/src/main/resources"/>
|
||||
<path refid="sources"/>
|
||||
<path refid="mercury.classpath"/>
|
||||
</path>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="maven-compile" depends="compile-boot,process-classes" description="compiles Maven using the bootstrap Maven, skipping automated tests">
|
||||
<java fork="true" classname="org.apache.maven.cli.MavenCli" failonerror="true">
|
||||
<classpath refid="maven.classpath"/>
|
||||
<arg value="-X"/>
|
||||
<arg value="-B"/>
|
||||
<arg value="clean"/>
|
||||
<arg value="install"/>
|
||||
<arg value="-Dmaven.repo.local=${maven.repo.local}"/>
|
||||
<arg value="-Dsurefire.useFile=${surefire.useFile}"/>
|
||||
<!--
|
||||
<debug-the-bootstrap>
|
||||
|
||||
<jvmarg value="-Xdebug"/>
|
||||
<jvmarg value="-Xnoagent"/>
|
||||
<jvmarg value="-Djava.compiler=NONE"/>
|
||||
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"/>
|
||||
|
||||
</debug-the-bootstrap>
|
||||
-->
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="maven-assembly" depends="maven-compile" description="generates the Maven installation assembly using the bootstrap Maven">
|
||||
<echo>
|
||||
The new Maven distribution was created as part of the MAVEN-COMPILE step, above.
|
||||
This goal just validates the presence of that distribution.
|
||||
</echo>
|
||||
<condition property="build.failed">
|
||||
<not>
|
||||
<available file="${maven.assembly}"/>
|
||||
</not>
|
||||
</condition>
|
||||
<fail if="build.failed" message="Assembly task seemed to succeed, but couldn't find assembly file: ${maven.assembly}"/>
|
||||
</target>
|
||||
|
||||
<target name="extract-assembly" depends="init,maven-assembly" description="extracts the maven assembly into maven.home">
|
||||
<echo>Extracting assembly to ${maven.home.dirname} ...</echo>
|
||||
<!-- If we are starting from scratch make sure the directory is created -->
|
||||
<delete dir="${maven.home}"/>
|
||||
<mkdir dir="${maven.home}"/>
|
||||
<unzip src="${maven.assembly}" dest="${maven.home.dirname}"/>
|
||||
<chmod perm="+x">
|
||||
<fileset dir="${maven.home}/bin">
|
||||
<include name="mvn"/>
|
||||
</fileset>
|
||||
</chmod>
|
||||
</target>
|
||||
|
||||
<target name="all" depends="clean-bootstrap,init,extract-assembly"/>
|
||||
|
||||
</project>
|
|
@ -73,8 +73,6 @@ public class DefaultUpdateCheckManager
|
|||
// we can safely assume that we're calculating based on the snapshot policy here if we've made it past the
|
||||
// release-artifact short circuit above.
|
||||
ArtifactRepositoryPolicy policy = repository.getSnapshots();
|
||||
|
||||
System.out.println( "snappies " + repository.getSnapshots().getUpdatePolicy() );
|
||||
|
||||
return isUpdateRequired( artifact, repository, policy );
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ public class LifecycleExecutorTest
|
|||
File pom = getProject( "project-with-additional-lifecycle-elements" );
|
||||
MavenSession session = createMavenSession( pom );
|
||||
assertEquals( "project-with-additional-lifecycle-elements", session.getCurrentProject().getArtifactId() );
|
||||
assertEquals( "1.0-SNAPSHOT", session.getCurrentProject().getVersion() );
|
||||
assertEquals( "1.0", session.getCurrentProject().getVersion() );
|
||||
List<MojoDescriptor> lifecyclePlan = lifecycleExecutor.calculateLifecyclePlan( "package", session );
|
||||
|
||||
// resources:resources
|
||||
|
@ -76,7 +76,7 @@ public class LifecycleExecutorTest
|
|||
File pom = getProject( "project-with-additional-lifecycle-elements" );
|
||||
MavenSession session = createMavenSession( pom );
|
||||
assertEquals( "project-with-additional-lifecycle-elements", session.getCurrentProject().getArtifactId() );
|
||||
assertEquals( "1.0-SNAPSHOT", session.getCurrentProject().getVersion() );
|
||||
assertEquals( "1.0", session.getCurrentProject().getVersion() );
|
||||
lifecycleExecutor.execute( session );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@ public class PluginManagerTest
|
|||
Plugin plugin = new Plugin();
|
||||
plugin.setGroupId( "org.apache.maven.plugins" );
|
||||
plugin.setArtifactId( "maven-remote-resources-plugin" );
|
||||
plugin.setVersion( "1.1" );
|
||||
plugin.setVersion( "1.0-beta-2" );
|
||||
|
||||
MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor( plugin, goal, session );
|
||||
assertPluginDescriptor( mojoDescriptor, "org.apache.maven.plugins", "maven-remote-resources-plugin", "1.1" );
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<groupId>org.apache.maven.lifecycle.test</groupId>
|
||||
<artifactId>project-with-additional-lifecycle-elements</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<version>1.0</version>
|
||||
<name>project-with-additional-lifecycle-elements</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<dependencies>
|
||||
|
|
|
@ -382,12 +382,7 @@ public class LegacyRepositorySystem
|
|||
}
|
||||
|
||||
public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
|
||||
{
|
||||
|
||||
if ( request.getRemoteRepostories() != null && request.getRemoteRepostories().size() > 10 )
|
||||
{
|
||||
System.out.println( "legacy: request with " + request.getRemoteRepostories().size() + " remote repositories" );
|
||||
}
|
||||
{
|
||||
ArtifactResolutionResult res = artifactResolver.resolve( request );
|
||||
|
||||
return res;
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue