o Decoupled it0068 from Modello Plugin

git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@721538 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Benjamin Bentmann 2008-11-28 17:15:26 +00:00
parent e36cf037be
commit 0718730270
10 changed files with 263 additions and 793 deletions

View File

@ -25,27 +25,33 @@ import org.apache.maven.it.util.ResourceExtractor;
import java.io.File; import java.io.File;
import java.util.Properties; import java.util.Properties;
/**
* This is a test set for <a href="http://jira.codehaus.org/browse/MNG-836">MNG-836</a>.
*
* @author Benjamin Bentmann
* @version $Id$
*/
public class MavenIT0068Test public class MavenIT0068Test
extends AbstractMavenIntegrationTestCase extends AbstractMavenIntegrationTestCase
{ {
/** /**
* Test repository accumulation. * Test that parent POMs referenced by a plugin POM can be resolved from ordinary repos, i.e. non-plugin repos.
* As a motivation for this, imagine the plugin repository hosts only snapshots while the ordinary repository
* hosts releases and a snapshot plugin might easily use a released parent.
*/ */
public void testit0068() public void testitMNG836()
throws Exception throws Exception
{ {
File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0068" ); File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0068" );
Verifier verifier = new Verifier( testDir.getAbsolutePath() ); Verifier verifier = new Verifier( testDir.getAbsolutePath() );
verifier.deleteArtifact( "org.codehaus.modello", "modello-core", "1.0-alpha-3", "jar" ); verifier.setAutoclean( false );
Properties verifierProperties = new Properties(); verifier.deleteDirectory( "target" );
verifierProperties.put( "failOnErrorOutput", "false" ); verifier.deleteArtifacts( "org.apache.maven.its.mng836" );
verifier.setVerifierProperties( verifierProperties ); verifier.executeGoal( "validate" );
verifier.executeGoal( "generate-sources" ); verifier.verifyErrorFreeLog();
verifier.assertFilePresent( "target/generated-sources/modello/org/apache/maven/settings/Settings.java" );
// don't verify error free log
verifier.resetStreams(); verifier.resetStreams();
} }
}
}

View File

@ -1,28 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<name>Maven Integration Test :: it0068</name> <groupId>org.apache.maven.its.mng836</groupId>
<groupId>org.apache.maven.its.it0068</groupId> <artifactId>test</artifactId>
<artifactId>maven-it-it0068</artifactId>
<description>Test repository accumulation.</description>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<name>Maven Integration Test :: MNG-836</name>
<description>
Test that parent POMs referenced by a plugin POM can be resolved from ordinary repos, i.e. non-plugin repos.
As a motivation for this, imagine the plugin repository hosts only snapshots while the ordinary repository
hosts releases and a snapshot plugin might easily use a released parent.
</description>
<repositories>
<repository>
<id>maven-core-it-repo-0</id>
<url>file:///${basedir}/repo-0</url>
<releases>
<checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-core-it-repo-1</id>
<url>file:///${basedir}/repo-1</url>
<releases>
<checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.codehaus.modello</groupId> <!--
<artifactId>modello-maven-plugin</artifactId> The POM for this plugin references a parent POM which is not hosted in the <pluginRepository> but in the
<version>1.0-alpha-7</version> ordinary <repository>.
-->
<groupId>org.apache.maven.its.mng836</groupId>
<artifactId>plugin</artifactId>
<version>0.1-SNAPSHOT</version>
<executions> <executions>
<execution> <execution>
<id>test</id>
<phase>validate</phase>
<goals> <goals>
<goal>xpp3-writer</goal> <goal>touch</goal>
<goal>java</goal>
<goal>xpp3-reader</goal>
</goals> </goals>
<configuration> <configuration>
<version>1.0.0</version> <file>target/test.txt</file>
<model>test.mdo</model>
<packageWithVersion>false</packageWithVersion>
</configuration> </configuration>
</execution> </execution>
</executions> </executions>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.mng836</groupId>
<artifactId>parent</artifactId>
<version>0.1</version>
<packaging>pom</packaging>
<distributionManagement>
<repository>
<id>maven-core-it</id>
<url>file:///${basedir}/repo</url>
</repository>
</distributionManagement>
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<resources>
<resource>
<directory>.</directory>
<includes>
<include>pom.xml</include>
<include>src/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.apache.maven.its.mng836</groupId>
<artifactId>parent</artifactId>
<version>0.1</version>
<versioning>
<versions>
<version>0.1</version>
</versions>
<lastUpdated>20081128163134</lastUpdated>
</versioning>
</metadata>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?><metadata>
<plugins>
<plugin>
<name>Unnamed - org.apache.maven.its.mng836:plugin:maven-plugin:0.1-SNAPSHOT</name>
<prefix></prefix>
<artifactId>plugin</artifactId>
</plugin>
</plugins>
</metadata>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.apache.maven.its.mng836</groupId>
<artifactId>plugin</artifactId>
<version>0.1-SNAPSHOT</version>
<versioning>
<snapshot>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20081128163159</lastUpdated>
</versioning>
</metadata>

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.maven.its.mng836</groupId>
<artifactId>parent</artifactId>
<version>0.1</version>
</parent>
<groupId>org.apache.maven.its.mng836</groupId>
<artifactId>plugin</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<distributionManagement>
<repository>
<id>maven-core-it</id>
<url>file:///${basedir}/repo</url>
<uniqueVersion>false</uniqueVersion>
</repository>
</distributionManagement>
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<!-- NOTE: Version managed from parent to make sure this build does not silently pass with a stub parent model. -->
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>.</directory>
<includes>
<include>pom.xml</include>
<include>src/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.apache.maven.its.mng836</groupId>
<artifactId>plugin</artifactId>
<version>0.1-SNAPSHOT</version>
<versioning>
<latest>0.1-SNAPSHOT</latest>
<versions>
<version>0.1-SNAPSHOT</version>
</versions>
<lastUpdated>20081128163159</lastUpdated>
</versioning>
</metadata>

View File

@ -1,769 +0,0 @@
<?xml version="1.0"?>
<model>
<id>settings</id>
<name>Settings</name>
<description><![CDATA[
User-specific configuration for maven. Includes things that should not
be distributed with the pom.xml file, such as developer identity, along with
local settings, like proxy information.]]></description>
<defaults>
<default>
<key>package</key>
<value>org.apache.maven.settings</value>
</default>
</defaults>
<classes>
<class>
<name>TrackableBase</name>
<version>1.0.0</version>
<description>common base class that contains code to track the source for this instance (USER|GLOBAL)</description>
<codeSegments>
<codeSegment>
<version>1.0.0</version>
<code><![CDATA[
public static final String USER_LEVEL = "user-level";
public static final String GLOBAL_LEVEL = "global-level";
private String sourceLevel = USER_LEVEL;
private boolean sourceLevelSet = false;
public void setSourceLevel( String sourceLevel )
{
if ( sourceLevelSet )
{
throw new IllegalStateException( "Cannot reset sourceLevel attribute; it is already set to: " + sourceLevel );
}
else if ( !( USER_LEVEL.equals( sourceLevel ) || GLOBAL_LEVEL.equals( sourceLevel ) ) )
{
throw new IllegalArgumentException( "sourceLevel must be one of: {" + USER_LEVEL + "," + GLOBAL_LEVEL + "}" );
}
else
{
this.sourceLevel = sourceLevel;
this.sourceLevelSet = true;
}
}
public String getSourceLevel()
{
return sourceLevel;
}
]]></code>
</codeSegment>
</codeSegments>
</class>
<class>
<name>IdentifiableBase</name>
<superClass>TrackableBase</superClass>
<version>1.0.0</version>
<fields>
<field>
<name>id</name>
<version>1.0.0</version>
<type>String</type>
<default>default</default>
<required>true</required>
</field>
</fields>
</class>
<class rootElement="true" xml.tagName="settings">
<name>Settings</name>
<version>1.0.0</version>
<superClass>TrackableBase</superClass>
<description>Root element of the user configuration file.</description>
<fields>
<field>
<name>localRepository</name>
<version>1.0.0</version>
<required>true</required>
<description><![CDATA[The local repository.]]></description>
<type>String</type>
</field>
<field>
<name>interactiveMode</name>
<version>1.0.0</version>
<description><![CDATA[Whether Maven should attempt to interact with the user for input.]]></description>
<type>boolean</type>
<defaultValue>true</defaultValue>
</field>
<field>
<name>usePluginRegistry</name>
<version>1.0.0</version>
<description><![CDATA[Whether Maven should use the plugin-registry.xml file to manage plugin versions.]]></description>
<type>boolean</type>
<defaultValue>true</defaultValue>
</field>
<!-- [JC] Not ready to use yet, so I'm making if unavailable for now. -->
<!-- field>
<name>passwordStore</name>
<version>1.0.0</version>
<required>false</required>
<description><![CDATA[The keystore used to store passwords.]]></description>
<type>String</type>
</field -->
<field>
<name>offline</name>
<version>1.0.0</version>
<required>false</required>
<description><![CDATA[Indicate whether maven should operate in offline mode full-time.]]>
</description>
<type>boolean</type>
<defaultValue>false</defaultValue>
</field>
<!-- [JC] Not ready to use yet, so I'm making if unavailable for now. -->
<!-- field>
<name>jdks</name>
<version>1.0.0</version>
<description><![CDATA[
Configuration for different java environment profiles. One good use
for this might be to configure both JDK 1.4 and JDK 1.5 to work with
maven. Profiles will allow switching of entire java environments
based on the profile id, either in the defaults section below, or on
the command line.
]]></description>
<association>
<type>Jdk</type>
<multiplicity>*</multiplicity>
</association>
</field -->
<field>
<name>proxies</name>
<version>1.0.0</version>
<description><![CDATA[
Configuration for different proxy profiles. Multiple proxy profiles
might come in handy for anyone working from a notebook or other
mobile platform, to enable easy switching of entire proxy
configurations by simply specifying the profile id, again either from
the command line or from the defaults section below.
]]></description>
<association>
<type>Proxy</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>servers</name>
<version>1.0.0</version>
<description><![CDATA[
Configuration of server-specific settings, mainly authentication
method. This allows configuration of authentication on a per-server
basis.
]]></description>
<association>
<type>Server</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>mirrors</name>
<version>1.0.0</version>
<description> Configuration of download mirrors for repositories.
</description>
<association>
<type>Mirror</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>profiles</name>
<version>1.0.0</version>
<description><![CDATA[
Configuration of build profiles for adjusting the build
according to environmental parameters
]]></description>
<association>
<type>Profile</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>activeProfiles</name>
<version>1.0.0</version>
<description><![CDATA[
List of manually-activated build profiles, specified in the order in which
they should be applied.
]]></description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>pluginGroups</name>
<version>1.0.0</version>
<description>List of groupIds to search for a plugin when that plugin groupId is not explicitly provided.</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
<codeSegments>
<codeSegment>
<version>1.0.0</version>
<code><![CDATA[
private Proxy activeProxy;
public void flushActiveProxy()
{
this.activeProxy = null;
}
public synchronized Proxy getActiveProxy()
{
if(activeProxy == null)
{
java.util.List proxies = getProxies();
if ( proxies != null && !proxies.isEmpty() )
{
if ( proxies.size() > 1 )
{
for ( java.util.Iterator it = proxies.iterator(); it.hasNext(); )
{
Proxy proxy = (Proxy) it.next();
if ( proxy.isActive() )
{
activeProxy = proxy;
break;
}
}
}
else
{
// If we only have one proxy, use it as the active one.
activeProxy = (Proxy) proxies.get( 0 );
}
}
}
return activeProxy;
}
public Server getServer( String serverId )
{
Server match = null;
java.util.List servers = getServers();
if ( servers != null && serverId != null )
{
for ( java.util.Iterator it = servers.iterator(); it.hasNext(); )
{
Server server = (Server) it.next();
if ( serverId.equals( server.getId() ) )
{
match = server;
break;
}
}
}
return match;
}
public Mirror getMirrorOf( String repositoryId )
{
Mirror match = null;
java.util.List mirrors = getMirrors();
if ( mirrors != null && repositoryId != null )
{
for ( java.util.Iterator it = mirrors.iterator(); it.hasNext(); )
{
Mirror mirror = (Mirror) it.next();
if ( repositoryId.equals( mirror.getMirrorOf() ) )
{
match = mirror;
break;
}
}
}
return match;
}
private java.util.Map profileMap;
public void flushProfileMap()
{
this.profileMap = null;
}
public java.util.Map getProfilesAsMap()
{
if ( profileMap == null )
{
profileMap = new java.util.HashMap();
if ( getProfiles() != null )
{
for ( java.util.Iterator it = getProfiles().iterator(); it.hasNext(); )
{
Profile profile = (Profile) it.next();
profileMap.put( profile.getId(), profile );
}
}
}
return profileMap;
}
private RuntimeInfo runtimeInfo;
public void setRuntimeInfo( RuntimeInfo runtimeInfo )
{
this.runtimeInfo = runtimeInfo;
}
public RuntimeInfo getRuntimeInfo()
{
return runtimeInfo;
}
]]></code>
</codeSegment>
</codeSegments>
</class>
<!-- @todo: is any of this too CVS specific? Investigate other SCMs -->
<!-- [JC] Commenting out until we're ready to use it... -->
<!-- class>
<name>Jdk</name>
<version>1.0.0</version>
<superClass>TrackableBase</superClass>
<description><![CDATA[Describes one Java environment]]></description>
<fields>
<field>
<name>active</name>
<version>1.0.0</version>
<required>false</required>
<defaultValue>false</defaultValue>
<description><![CDATA[Whether this JDK is the active one.]]></description>
<type>boolean</type>
</field>
<field>
<name>version</name>
<version>1.0.0</version>
<required>true</required>
<description><![CDATA[The JDK major version (eg. '1.4').]]></description>
<type>String</type>
</field>
<field>
<name>javaHome</name>
<version>1.0.0</version>
<required>true</required>
<description><![CDATA[The JDK home.]]></description>
<type>String</type>
</field>
</fields>
</class -->
<class>
<name>Proxy</name>
<version>1.0.0</version>
<superClass>IdentifiableBase</superClass>
<fields>
<field>
<name>active</name>
<version>1.0.0</version>
<required>false</required>
<defaultValue>false</defaultValue>
<description><![CDATA[Whether this proxy configuration is the active one.]]>
</description>
<type>boolean</type>
</field>
<field>
<name>protocol</name>
<version>1.0.0</version>
<description><![CDATA[The proxy protocol.]]></description>
<type>String</type>
<defaultValue>http</defaultValue>
</field>
<field>
<name>username</name>
<version>1.0.0</version>
<description><![CDATA[The proxy user.]]></description>
<type>String</type>
</field>
<field>
<name>password</name>
<version>1.0.0</version>
<description><![CDATA[The proxy password.]]></description>
<type>String</type>
</field>
<field>
<name>port</name>
<version>1.0.0</version>
<description><![CDATA[The proxy port.]]></description>
<type>int</type>
</field>
<field>
<name>host</name>
<version>1.0.0</version>
<description><![CDATA[The proxy host.]]></description>
<type>String</type>
</field>
<field>
<name>nonProxyHosts</name>
<version>1.0.0</version>
<description><![CDATA[
The list of non-proxied hosts (usually
comma-delimited).
]]></description>
<type>String</type>
</field>
</fields>
</class>
<class>
<name>Server</name>
<version>1.0.0</version>
<superClass>IdentifiableBase</superClass>
<fields>
<field>
<name>username</name>
<version>1.0.0</version>
<description><![CDATA[The username used to authenticate.]]>
</description>
<type>String</type>
</field>
<field>
<name>password</name>
<version>1.0.0</version>
<description><![CDATA[
The password used in conjunction with the username to authenticate.
]]></description>
<type>String</type>
</field>
<field>
<name>privateKey</name>
<version>1.0.0</version>
<description><![CDATA[The private key location used to authenticate.]]>
</description>
<type>String</type>
</field>
<field>
<name>passphrase</name>
<version>1.0.0</version>
<description><![CDATA[
The passphrase used in conjunction with the privateKey to authenticate.
]]></description>
<type>String</type>
</field>
</fields>
</class>
<class>
<name>Mirror</name>
<version>1.0.0</version>
<superClass>IdentifiableBase</superClass>
<description> A download mirror for a given repository. </description>
<fields>
<field>
<name>mirrorOf</name>
<required>true</required>
<version>1.0.0</version>
<type>String</type>
<description> The server ID of the repository being mirrored, eg
"central". This MUST NOT match the mirror id. </description>
</field>
<field>
<name>name</name>
<required>false</required>
<version>1.0.0</version>
<type>String</type>
<description> The optional name that describes the mirror.
</description>
</field>
<field>
<name>url</name>
<required>true</required>
<version>1.0.0</version>
<type>String</type>
<description> The URL of the mirror repository. </description>
</field>
<!--
<field>
<name>allowOriginal</name>
<version>1.0.0</version>
<type>boolean</type>
<defaultValue>true</defaultValue>
<description>
Whether to allow the user of the original as a fallback if an artifact is not found on the mirror.
</description>
</field>
-->
</fields>
</class>
<!-- Profile support -->
<class>
<name>Profile</name>
<version>1.0.0</version>
<superClass>IdentifiableBase</superClass>
<description><![CDATA[
Modifications to the build process which is keyed on some
sort of environmental parameter.
]]></description>
<fields>
<field>
<name>activation</name>
<version>1.0.0</version>
<description><![CDATA[The conditional logic which will automatically
trigger the inclusion of this profile.]]></description>
<association>
<type>Activation</type>
</association>
</field>
<field>
<name>localRepository</name>
<version>1.0.0</version>
<type>String</type>
<description>backwards-compatible location for specifying the local repository for use in builds</description>
<comment>THIS IS DEPRECATED: use localRepository under the root element instead.</comment>
</field>
<field>
<name>properties</name>
<description>Extended configuration specific to this profile goes
here.</description>
<type>Properties</type>
<association xml.mapStyle="inline">
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>repositories</name>
<version>1.0.0</version>
<description><![CDATA[The lists of the remote repositories]]>
</description>
<association>
<type>Repository</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>pluginRepositories</name>
<version>1.0.0</version>
<description><![CDATA[
The lists of the remote repositories for discovering plugins
]]></description>
<association>
<type>Repository</type>
<multiplicity>*</multiplicity>
</association>
<comment><![CDATA[ This may be removed or relocated in the near
future. It is undecided whether plugins really need a remote
repository set of their own. ]]></comment>
</field>
</fields>
</class>
<class>
<name>Activation</name>
<version>1.0.0</version>
<description><![CDATA[
The conditions within the build runtime environment which will trigger
the automatic inclusion of the parent build profile.
]]></description>
<fields>
<field>
<name>activeByDefault</name>
<version>1.0.0</version>
<type>boolean</type>
<description>Flag specifying whether this profile is active as a default.</description>
</field>
<field>
<name>jdk</name>
<version>1.0.0</version>
<type>String</type>
<description><![CDATA[
Specifies that this profile will be activated when a matching JDK is detected.
]]></description>
</field>
<field>
<name>property</name>
<version>1.0.0</version>
<description><![CDATA[
Specifies that this profile will be activated when this System property is specified.
]]></description>
<association>
<type>ActivationProperty</type>
</association>
</field>
</fields>
</class>
<!-- TODO: reproduced from maven-model/maven.mdo, instead should inherit code and link to external docs -->
<class>
<name>RepositoryBase</name>
<version>1.0.0</version>
<description><![CDATA[
Repository contains the information needed
for establishing connections with remote repoistory
]]></description>
<fields>
<field>
<name>id</name>
<version>1.0.0</version>
<description><![CDATA[
A unique identifier for a repository.
]]></description>
<type>String</type>
</field>
<field>
<name>name</name>
<version>1.0.0</version>
<description><![CDATA[
Human readable name of the repository
]]></description>
<type>String</type>
</field>
<field>
<name>url</name>
<version>1.0.0</version>
<description><![CDATA[
The url of the repository
]]></description>
<type>String</type>
</field>
<field>
<name>layout</name>
<version>1.0.0</version>
<description>The type of layout this repository uses for locating and storing artifacts - can be "legacy" or
"default".</description>
<type>String</type>
<defaultValue>default</defaultValue>
</field>
</fields>
<codeSegments>
<codeSegment>
<version>1.0.0</version>
<code><![CDATA[
public boolean equals( Object obj )
{
RepositoryBase other = (RepositoryBase) obj;
boolean retValue = false;
if ( id != null )
{
retValue = id.equals( other.id );
}
return retValue;
}
]]></code>
</codeSegment>
</codeSegments>
</class>
<class>
<name>Repository</name>
<superClass>RepositoryBase</superClass>
<version>1.0.0</version>
<description>
Repository contains the information needed for establishing connections with remote repoistory
</description>
<fields>
<!-- TODO: deprecated -->
<field>
<name>snapshotPolicy</name>
<version>1.0.0</version>
<description>
The policy for downloading snapshots - can be "always", "daily" (default), "interval:XXX" (in minutes) or
"never" (repository is not checked, even if the snapshot is not present locally).
</description>
<type>String</type>
</field>
<!-- TODO: deprecated -->
<field>
<name>checksumPolicy</name>
<version>1.0.0</version>
<description>What to do when verification of an artifact checksum fails - warn, fail, etc. Valid values are
"fail" or "warn"</description>
<type>String</type>
</field>
<field>
<name>releases</name>
<version>1.0.0</version>
<description>How to handle downloading of releases from this repository</description>
<association>
<type>RepositoryPolicy</type>
</association>
</field>
<field>
<name>snapshots</name>
<version>1.0.0</version>
<description>How to handle downloading of snapshots from this repository</description>
<association>
<type>RepositoryPolicy</type>
</association>
</field>
</fields>
<!-- prevent modello generation of an incorrect equals method. Could be avoided by using <identity/> tags to mark ID as the only identity field -->
<codeSegments>
<codeSegment>
<version>1.0.0</version>
<code><![CDATA[
public boolean equals( Object obj )
{
return super.equals( obj );
}
]]></code>
</codeSegment>
</codeSegments>
</class>
<class>
<name>RepositoryPolicy</name>
<version>1.0.0</version>
<description>Download policy</description>
<fields>
<field>
<name>enabled</name>
<version>1.0.0</version>
<description>Whether to use this repository for downloading this type of artifact</description>
<type>boolean</type>
<defaultValue>true</defaultValue>
</field>
<field>
<name>updatePolicy</name>
<version>1.0.0</version>
<description>
The frequency for downloading updates - can be "always", "daily" (default), "interval:XXX" (in minutes) or
"never" (only if it doesn't exist locally).
</description>
<type>String</type>
</field>
<field>
<name>checksumPolicy</name>
<version>1.0.0</version>
<description>What to do when verification of an artifact checksum fails - warn, fail, etc. Valid values are
"fail" or "warn"</description>
<type>String</type>
</field>
</fields>
</class>
<class>
<name>ActivationProperty</name>
<version>1.0.0</version>
<description><![CDATA[
This is the property specification used to activate a profile. If the value field is empty,
then the existence of the named property will activate the profile, otherwise it does a case-sensitive
match against the property value as well.
]]></description>
<fields>
<field>
<name>name</name>
<version>1.0.0</version>
<type>String</type>
<required>true</required>
<description>The name of the property to be used to activate a profile</description>
</field>
<field>
<name>value</name>
<version>1.0.0</version>
<type>String</type>
<description>The value of the property to be used to activate a profile</description>
</field>
</fields>
</class>
<!-- /BuildProfile support -->
</classes>
</model>