diff options
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-core/src/main/mdo/toolchains.mdo')
-rw-r--r-- | framework/src/maven/apache-maven-3.3.3/maven-core/src/main/mdo/toolchains.mdo | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-core/src/main/mdo/toolchains.mdo b/framework/src/maven/apache-maven-3.3.3/maven-core/src/main/mdo/toolchains.mdo new file mode 100644 index 00000000..830a5275 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-core/src/main/mdo/toolchains.mdo @@ -0,0 +1,231 @@ +<?xml version="1.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. + +--> +<model xmlns="http://modello.codehaus.org/MODELLO/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.0.0 http://modello.codehaus.org/xsd/modello-1.0.0.xsd" + xml.namespace="http://maven.apache.org/TOOLCHAINS/${version}" + xml.schemaLocation="http://maven.apache.org/xsd/toolchains-${version}.xsd"> + <id>toolchains</id> + <name>MavenToolchains</name> + <description><![CDATA[ + <p>This is a reference for the Maven Toolchains descriptor.</p> + <p>The default location for the toolchains file is <code>~/.m2/toolchains.xml</code></p> + <p>A Toolchain is a preconfigured object that Maven plugins can use for tool configuration retrieval (location and other information).</p> + <p>The <a href="/plugins/maven-toolchains-plugin/">toolchains-plugin</a> can read available toolchains on the user's computer + and match them against the toolchain requirements of the project (as configured in <code>pom.xml</code>): + if match is found, the toolchain instance is made available to other Maven plugins.</p> + <p>With <code>jdk</code> toolchain, for example, instead of being stuck with the JDK used to run Maven, all plugins can use + the same other JDK instance without hardcoding absolute paths into the <code>pom.xml</code> + and without configuring every plugin that require path to JDK tools.</p> + <p>See the <a href="/guides/mini/guide-using-toolchains.html">Guide to Using Toolchains</a> for + more information.</p> + ]]></description> + + <defaults> + <default> + <key>package</key> + <value>org.apache.maven.toolchain.model</value> + </default> + </defaults> + + <classes> + <class java.clone="deep"> + <name>TrackableBase</name> + <version>1.1.0+</version> + <description> + common base class that contains code to track the source for + this instance (USER|GLOBAL) + </description> + <codeSegments> + <codeSegment> + <version>1.1.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 rootElement="true" xml.tagName="toolchains" xsd.compositor="sequence"> + <name>PersistedToolchains</name> + <superClass>TrackableBase</superClass> + <description><![CDATA[ + The <code><toolchains></code> element is the root of the descriptor. + The following table lists all of the possible child elements. + ]]></description> + <version>1.0.0+</version> + <fields> + <field> + <name>toolchains</name> + <version>1.0.0+</version> + <description><![CDATA[The toolchain instance definition.]]></description> + <association xml.itemsStyle="flat"> + <type>ToolchainModel</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + </class> + <class> + <name>ToolchainModel</name> + <superClass>TrackableBase</superClass> + <version>1.0.0+</version> + <description>Definition of a toolchain instance.</description> + <fields> + <field> + <name>type</name> + <version>1.0.0+</version> + <!-- <identifier>true</identifier> --> + <description> + <![CDATA[Type of toolchain:<ul> + <li><code>jdk</code> for + <a href="http://maven.apache.org/plugins/maven-toolchains-plugin/toolchains/jdk.html">JDK Standard Toolchain</a>,</li> + <li>other value for + <a href="http://maven.apache.org/plugins/maven-toolchains-plugin/toolchains/custom.html">Custom Toolchain</a></li> + </ul> + ]]></description> + <type>String</type> + </field> + <field> + <name>provides</name> + <version>1.0.0/1.0.99</version> <!-- fake upperbound, it's inclusive --> + <type>DOM</type> <!-- DOM for Maven 2.0.9/2.3.3 --> + <description> + <![CDATA[ + <p>Toolchain identification information, which will be matched against project requirements.</p> + <p>Actual content structure is completely open: each toolchain type will define its own format and semantics.</p> + <p>In general, this is a properties format: <code><name>value</name></code> with + predefined properties names.</p> + ]]></description> + </field> + <field> + <name>provides</name> + <version>1.1.0+</version> + <type>Properties</type> <!-- Properties for Maven 2.3.4+ --> + <association xml.mapStyle="inline"> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + <!-- <identifier>true</identifier> --> + <description> + <![CDATA[ + <p>Toolchain identification information, which will be matched against project requirements.</p> + <p>For Maven 2.0.9 to 3.2.3, the actual content structure was completely open: each toolchain type would define its own format and semantics. + In general, this was a properties format.</p> + <p>Since Maven 3.2.4, the type for this field has been changed to Properties to match the de-facto format.</p> + <p>Each toolchain defines its own properties names and semantics.</p> + ]]></description> + </field> + <field> + <name>configuration</name> + <version>1.0.0+</version> + <type>DOM</type> + <description> + <![CDATA[ + <p>Toolchain configuration information, like location or any information that is to be retrieved.</p> + <p>Actual content structure is completely open: each toochain type will define its own format and semantics.</p> + <p>In general, this is a properties format: <code><name>value</name></code> with + per-toolchain defined properties names.</p> + ]]></description> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>1.1.0+</version> + <comment>Generated hashCode() and equals() based on identifier also calls its super, which breaks comparison</comment> + <code> + <![CDATA[ + /** + * Method hashCode. + * + * @return int + */ + public int hashCode() + { + int result = 17; + + result = 37 * result + ( type != null ? type.hashCode() : 0 ); + result = 37 * result + ( provides != null ? provides.hashCode() : 0 ); + + return result; + } //-- int hashCode() + + /** + * Method equals. + * + * @param other + * @return boolean + */ + public boolean equals( Object other ) + { + if ( this == other ) + { + return true; + } + + if ( !( other instanceof ToolchainModel ) ) + { + return false; + } + + ToolchainModel that = (ToolchainModel) other; + boolean result = true; + + result = result && ( getType() == null ? that.getType() == null : getType().equals( that.getType() ) ); + result = result && ( getProvides() == null ? that.getProvides() == null : getProvides().equals( that.getProvides() ) ); + + return result; + } //-- boolean equals( Object ) + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + </classes> +</model> + |