| <?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> |