maven/maven-settings/settings.mdo

352 lines
12 KiB
Plaintext
Raw Normal View History

<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 rootElement="true" xml.tagName="settings">
<name>Settings</name>
<version>1.0.0</version>
<description>Root element of the user configuration file.</description>
<fields>
<!-- [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>profiles</name>
<version>1.0.0</version>
<description><![CDATA[
Configuration for different runtime profiles for maven itself. For
example, this will allow plugin developers to switch from a "work"
local repository to a "testing" local repository. It may also allow
configuration of such things as password keystore, etc. Once again,
the active profile will be switchable via either the defaults section
or the command line (read: system properties).
]]></description>
<association>
<type>Profile</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
<codeSegments>
<codeSegment>
<version>1.0.0</version>
<code><![CDATA[
private Profile activeProfile;
private Proxy activeProxy;
public synchronized void initializeActiveProfile(String localRepository)
{
if(getActiveProfile() == null)
{
Profile profile = new Profile();
profile.setLocalRepository(localRepository);
profile.setActive(true);
addProfile(profile);
activeProfile = profile;
}
}
public synchronized Profile getActiveProfile()
{
if(activeProfile == null)
{
List profiles = getProfiles();
if ( profiles != null && !profiles.isEmpty() )
{
if ( profiles.size() > 1 )
{
for ( Iterator it = profiles.iterator(); it.hasNext(); )
{
Profile profile = (Profile) it.next();
if ( profile.isActive() )
{
activeProfile = profile;
break;
}
}
}
else
{
// If we only have one profile, use it as the active one.
activeProfile = (Profile) profiles.get( 0 );
}
}
}
return activeProfile;
}
public synchronized Proxy getActiveProxy()
{
if(activeProxy == null)
{
List proxies = getProxies();
if ( proxies != null && !proxies.isEmpty() )
{
if ( proxies.size() > 1 )
{
for ( 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;
List servers = getServers();
if ( servers != null && serverId != null )
{
for ( Iterator it = servers.iterator(); it.hasNext(); )
{
Server server = (Server) it.next();
if ( serverId.equals( server.getId() ) )
{
match = server;
break;
}
}
}
return match;
}
]]></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>
<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>
<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>
<fields>
<field>
<name>id</name>
<version>1.0.0</version>
<required>true</required>
<description><![CDATA[
The ID of this configuration for indicating the default or "active"
profile.
]]></description>
<type>String</type>
</field>
<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>Profile</name>
<version>1.0.0</version>
<fields>
<field>
<name>active</name>
<version>1.0.0</version>
<required>false</required>
<defaultValue>false</defaultValue>
<description><![CDATA[Whether this is the active maven profile.]]></description>
<type>boolean</type>
</field>
<field>
<name>localRepository</name>
<version>1.0.0</version>
<required>true</required>
<description><![CDATA[The local repository.]]></description>
<type>String</type>
</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>
</fields>
</class>
</classes>
</model>