diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:00:02 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:00:02 -0700 |
commit | 753a6c60f47f3ac4f270005b65e9d6481de8eb68 (patch) | |
tree | 3d0a1ae3b4d994550f6614b417b991eee3eb8911 /framework/src/maven/apache-maven-3.3.3/maven-model | |
parent | c62d20eb3b4620c06d833be06f50b2600d96dd42 (diff) |
Adding maven and ant source trees
Change-Id: I0a39b9add833a31b9c3f98d193983ae2f3a5a445
Signed-off-by: Ashlee Young <ashlee@onosfw.com>
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-model')
46 files changed, 8966 insertions, 0 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/pom.xml b/framework/src/maven/apache-maven-3.3.3/maven-model/pom.xml new file mode 100644 index 00000000..851c3e32 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/pom.xml @@ -0,0 +1,132 @@ +<?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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.maven</groupId> + <artifactId>maven</artifactId> + <version>3.3.3</version> + </parent> + + <artifactId>maven-model</artifactId> + + <name>Maven Model</name> + <description>Model for Maven POM (Project Object Model)</description> + + <scm><!-- remove when git scm url format can accept artifact-id at the end, as automatically inherited --> + <connection>scm:git:https://git-wip-us.apache.org/repos/asf/maven.git</connection> + <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/maven.git</developerConnection> + <tag>maven-3.3.3</tag> + </scm> + + <properties> + <checkstyle.violation.ignore>FileLength</checkstyle.violation.ignore> + </properties> + + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <configuration> + <version>4.0.0</version> + <models> + <model>src/main/mdo/maven.mdo</model> + </models> + </configuration> + <executions> + <execution> + <id>standard</id> + <goals> + <goal>java</goal> + <goal>xpp3-reader</goal> + <goal>xpp3-extended-reader</goal> + <goal>xpp3-writer</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <configuration> + <!-- Exclude the navigation file for Maven 1 sites + as it interferes with the site generation. --> + <moduleExcludes> + <xdoc>navigation.xml</xdoc> + </moduleExcludes> + </configuration> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <id>all-models</id> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <executions> + <execution> + <id>v3</id> + <goals> + <goal>java</goal> + <goal>xpp3-writer</goal> + <goal>xpp3-reader</goal> + <goal>xsd</goal> + </goals> + <configuration> + <version>3.0.0</version> + <packageWithVersion>true</packageWithVersion> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + <configuration> + <classifier>all</classifier> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/io/xpp3/package-info.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/io/xpp3/package-info.java new file mode 100644 index 00000000..648607ce --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/io/xpp3/package-info.java @@ -0,0 +1,30 @@ +// CHECKSTYLE_OFF: RegexpHeader|LineLength +/** + * XML reader and writer classes for Maven POM, generated from <code>maven.mdo</code> model. + * These classes use + * <a href="http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/pull/package-summary.html">plexus-utils' + * XML Pull Parser API</a> for their internal XML handling and + * <a href="http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomBuilder.html">Xpp3DomBuilder</a> + + * <a href="http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3Dom.html">Xpp3Dom</a> for + * DOM content representation (see <code><configuration></code> elements). + */ +package org.apache.maven.model.io.xpp3; + +/* + * 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. + */
\ No newline at end of file diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java new file mode 100644 index 00000000..b671d981 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java @@ -0,0 +1,2924 @@ +package org.apache.maven.model.merge; + +/* + * 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. + */ + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import org.apache.maven.model.Activation; +import org.apache.maven.model.Build; +import org.apache.maven.model.BuildBase; +import org.apache.maven.model.CiManagement; +import org.apache.maven.model.ConfigurationContainer; +import org.apache.maven.model.Contributor; +import org.apache.maven.model.Dependency; +import org.apache.maven.model.DependencyManagement; +import org.apache.maven.model.DeploymentRepository; +import org.apache.maven.model.Developer; +import org.apache.maven.model.DistributionManagement; +import org.apache.maven.model.Exclusion; +import org.apache.maven.model.Extension; +import org.apache.maven.model.FileSet; +import org.apache.maven.model.InputLocation; +import org.apache.maven.model.IssueManagement; +import org.apache.maven.model.License; +import org.apache.maven.model.MailingList; +import org.apache.maven.model.Model; +import org.apache.maven.model.ModelBase; +import org.apache.maven.model.Notifier; +import org.apache.maven.model.Organization; +import org.apache.maven.model.Parent; +import org.apache.maven.model.PatternSet; +import org.apache.maven.model.Plugin; +import org.apache.maven.model.PluginConfiguration; +import org.apache.maven.model.PluginContainer; +import org.apache.maven.model.PluginExecution; +import org.apache.maven.model.PluginManagement; +import org.apache.maven.model.Prerequisites; +import org.apache.maven.model.Profile; +import org.apache.maven.model.Relocation; +import org.apache.maven.model.ReportPlugin; +import org.apache.maven.model.ReportSet; +import org.apache.maven.model.Reporting; +import org.apache.maven.model.Repository; +import org.apache.maven.model.RepositoryBase; +import org.apache.maven.model.RepositoryPolicy; +import org.apache.maven.model.Resource; +import org.apache.maven.model.Scm; +import org.apache.maven.model.Site; +import org.codehaus.plexus.util.xml.Xpp3Dom; + +/** + * This is a hand-crafted prototype of the default model merger that should eventually be generated by Modello by a new + * Java plugin. Code structure to merge source (read-only) object into the target object is:<ul> + * <li><code>merge<i>Classname</i>( <i>Classname</i> target, <i>Classname</i> source, boolean sourceDominant, + * Map<Object, Object> context )</code> for each model class</li> + * <li><code>merge<i>Classname</i>_<i>FieldName</i>( <i>Classname</i> target, <i>Classname</i> source, boolean + * sourceDominant, Map<Object, Object> context )</code> for each field of each model class</li> + * <li><code>Object get<i>Classname</i>Key( <i>Classname</i> <i>classname</i> )</code> + * for each class that is used in a list</li> + * </ul> + * Code is written like it could be generated, with default behaviour to be overridden when necessary. + * This is particularly the case for <code>Object get<i>Classname</i>Key( <i>Classname</i> <i>classname</i> )</code> + * method, which by default return the object itself and is expected to be overridden to calculate better suited key + * value. + * + * @author Benjamin Bentmann + */ +@SuppressWarnings( { "checkstyle:methodname" } ) +public class ModelMerger +{ + + /** + * Merges the specified source object into the given target object. + * + * @param target The target object whose existing contents should be merged with the source, must not be + * <code>null</code>. + * @param source The (read-only) source object that should be merged into the target object, may be + * <code>null</code>. + * @param sourceDominant A flag indicating whether either the target object or the source object provides the + * dominant data. + * @param hints A set of key-value pairs that customized merger implementations can use to carry domain-specific + * information along, may be <code>null</code>. + */ + public void merge( Model target, Model source, boolean sourceDominant, Map<?, ?> hints ) + { + if ( target == null ) + { + throw new IllegalArgumentException( "target missing" ); + } + + if ( source == null ) + { + return; + } + + Map<Object, Object> context = new HashMap<Object, Object>(); + if ( hints != null ) + { + context.putAll( hints ); + } + + mergeModel( target, source, sourceDominant, context ); + } + + protected void mergeModel( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeModelBase( target, source, sourceDominant, context ); + + mergeModel_ModelVersion( target, source, sourceDominant, context ); + mergeModel_Parent( target, source, sourceDominant, context ); + mergeModel_GroupId( target, source, sourceDominant, context ); + mergeModel_ArtifactId( target, source, sourceDominant, context ); + mergeModel_Version( target, source, sourceDominant, context ); + mergeModel_Packaging( target, source, sourceDominant, context ); + mergeModel_Name( target, source, sourceDominant, context ); + mergeModel_Description( target, source, sourceDominant, context ); + mergeModel_Url( target, source, sourceDominant, context ); + mergeModel_InceptionYear( target, source, sourceDominant, context ); + mergeModel_Organization( target, source, sourceDominant, context ); + mergeModel_Licenses( target, source, sourceDominant, context ); + mergeModel_MailingLists( target, source, sourceDominant, context ); + mergeModel_Developers( target, source, sourceDominant, context ); + mergeModel_Contributors( target, source, sourceDominant, context ); + mergeModel_IssueManagement( target, source, sourceDominant, context ); + mergeModel_Scm( target, source, sourceDominant, context ); + mergeModel_CiManagement( target, source, sourceDominant, context ); + mergeModel_Prerequisites( target, source, sourceDominant, context ); + mergeModel_Build( target, source, sourceDominant, context ); + mergeModel_Profiles( target, source, sourceDominant, context ); + } + + protected void mergeModel_ModelVersion( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getModelVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getModelVersion() == null ) + { + target.setModelVersion( src ); + target.setLocation( "modelVersion", source.getLocation( "modelVersion" ) ); + } + } + } + + protected void mergeModel_Parent( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) + { + Parent src = source.getParent(); + if ( src != null ) + { + Parent tgt = target.getParent(); + if ( tgt == null ) + { + tgt = new Parent(); + tgt.setRelativePath( null ); + target.setParent( tgt ); + } + mergeParent( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModel_GroupId( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergeModel_ArtifactId( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergeModel_Version( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getVersion() == null ) + { + target.setVersion( src ); + target.setLocation( "version", source.getLocation( "version" ) ); + } + } + } + + protected void mergeModel_Packaging( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getPackaging(); + if ( src != null ) + { + if ( sourceDominant || target.getPackaging() == null ) + { + target.setPackaging( src ); + target.setLocation( "packaging", source.getLocation( "packaging" ) ); + } + } + } + + protected void mergeModel_Name( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getName(); + if ( src != null ) + { + if ( sourceDominant || target.getName() == null ) + { + target.setName( src ); + target.setLocation( "name", source.getLocation( "name" ) ); + } + } + } + + protected void mergeModel_Description( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getDescription(); + if ( src != null ) + { + if ( sourceDominant || target.getDescription() == null ) + { + target.setDescription( src ); + target.setLocation( "description", source.getLocation( "description" ) ); + } + } + } + + protected void mergeModel_Url( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeModel_InceptionYear( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getInceptionYear(); + if ( src != null ) + { + if ( sourceDominant || target.getInceptionYear() == null ) + { + target.setInceptionYear( src ); + target.setLocation( "inceptionYear", source.getLocation( "inceptionYear" ) ); + } + } + } + + protected void mergeModel_Organization( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + Organization src = source.getOrganization(); + if ( src != null ) + { + Organization tgt = target.getOrganization(); + if ( tgt == null ) + { + tgt = new Organization(); + target.setOrganization( tgt ); + } + mergeOrganization( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModel_Licenses( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<License> src = source.getLicenses(); + if ( !src.isEmpty() ) + { + List<License> tgt = target.getLicenses(); + Map<Object, License> merged = new LinkedHashMap<Object, License>( ( src.size() + tgt.size() ) * 2 ); + + for ( License element : tgt ) + { + Object key = getLicenseKey( element ); + merged.put( key, element ); + } + + for ( License element : src ) + { + Object key = getLicenseKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setLicenses( new ArrayList<License>( merged.values() ) ); + } + } + + protected void mergeModel_MailingLists( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<MailingList> src = source.getMailingLists(); + if ( !src.isEmpty() ) + { + List<MailingList> tgt = target.getMailingLists(); + Map<Object, MailingList> merged = new LinkedHashMap<Object, MailingList>( ( src.size() + tgt.size() ) * 2 ); + + for ( MailingList element : tgt ) + { + Object key = getMailingListKey( element ); + merged.put( key, element ); + } + + for ( MailingList element : src ) + { + Object key = getMailingListKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setMailingLists( new ArrayList<MailingList>( merged.values() ) ); + } + } + + protected void mergeModel_Developers( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Developer> src = source.getDevelopers(); + if ( !src.isEmpty() ) + { + List<Developer> tgt = target.getDevelopers(); + Map<Object, Developer> merged = new LinkedHashMap<Object, Developer>( ( src.size() + tgt.size() ) * 2 ); + + for ( Developer element : tgt ) + { + Object key = getDeveloperKey( element ); + merged.put( key, element ); + } + + for ( Developer element : src ) + { + Object key = getDeveloperKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setDevelopers( new ArrayList<Developer>( merged.values() ) ); + } + } + + protected void mergeModel_Contributors( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Contributor> src = source.getContributors(); + if ( !src.isEmpty() ) + { + List<Contributor> tgt = target.getContributors(); + Map<Object, Contributor> merged = new LinkedHashMap<Object, Contributor>( ( src.size() + tgt.size() ) * 2 ); + + for ( Contributor element : tgt ) + { + Object key = getContributorKey( element ); + merged.put( key, element ); + } + + for ( Contributor element : src ) + { + Object key = getContributorKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setContributors( new ArrayList<Contributor>( merged.values() ) ); + } + } + + protected void mergeModel_IssueManagement( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + IssueManagement src = source.getIssueManagement(); + if ( src != null ) + { + IssueManagement tgt = target.getIssueManagement(); + if ( tgt == null ) + { + tgt = new IssueManagement(); + target.setIssueManagement( tgt ); + } + mergeIssueManagement( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModel_Scm( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) + { + Scm src = source.getScm(); + if ( src != null ) + { + Scm tgt = target.getScm(); + if ( tgt == null ) + { + tgt = new Scm(); + tgt.setTag( null ); + target.setScm( tgt ); + } + mergeScm( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModel_CiManagement( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + CiManagement src = source.getCiManagement(); + if ( src != null ) + { + CiManagement tgt = target.getCiManagement(); + if ( tgt == null ) + { + tgt = new CiManagement(); + target.setCiManagement( tgt ); + } + mergeCiManagement( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModel_Prerequisites( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + Prerequisites src = source.getPrerequisites(); + if ( src != null ) + { + Prerequisites tgt = target.getPrerequisites(); + if ( tgt == null ) + { + tgt = new Prerequisites(); + tgt.setMaven( null ); + target.setPrerequisites( tgt ); + } + mergePrerequisites( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModel_Build( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) + { + Build src = source.getBuild(); + if ( src != null ) + { + Build tgt = target.getBuild(); + if ( tgt == null ) + { + tgt = new Build(); + target.setBuild( tgt ); + } + mergeBuild( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModel_Profiles( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Profile> src = source.getProfiles(); + if ( !src.isEmpty() ) + { + List<Profile> tgt = target.getProfiles(); + Map<Object, Profile> merged = new LinkedHashMap<Object, Profile>( ( src.size() + tgt.size() ) * 2 ); + + for ( Profile element : tgt ) + { + Object key = getProfileKey( element ); + merged.put( key, element ); + } + + for ( Profile element : src ) + { + Object key = getProfileKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setProfiles( new ArrayList<Profile>( merged.values() ) ); + } + } + + protected void mergeModelBase( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeModelBase_DistributionManagement( target, source, sourceDominant, context ); + mergeModelBase_Modules( target, source, sourceDominant, context ); + mergeModelBase_Repositories( target, source, sourceDominant, context ); + mergeModelBase_PluginRepositories( target, source, sourceDominant, context ); + mergeModelBase_Dependencies( target, source, sourceDominant, context ); + mergeModelBase_Reporting( target, source, sourceDominant, context ); + mergeModelBase_DependencyManagement( target, source, sourceDominant, context ); + mergeModelBase_Properties( target, source, sourceDominant, context ); + } + + protected void mergeModelBase_Modules( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getModules(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getModules(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setModules( merged ); + } + } + + protected void mergeModelBase_Dependencies( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Dependency> src = source.getDependencies(); + if ( !src.isEmpty() ) + { + List<Dependency> tgt = target.getDependencies(); + Map<Object, Dependency> merged = new LinkedHashMap<Object, Dependency>( ( src.size() + tgt.size() ) * 2 ); + + for ( Dependency element : tgt ) + { + Object key = getDependencyKey( element ); + merged.put( key, element ); + } + + for ( Dependency element : src ) + { + Object key = getDependencyKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setDependencies( new ArrayList<Dependency>( merged.values() ) ); + } + } + + protected void mergeModelBase_Repositories( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Repository> src = source.getRepositories(); + if ( !src.isEmpty() ) + { + List<Repository> tgt = target.getRepositories(); + Map<Object, Repository> merged = new LinkedHashMap<Object, Repository>( ( src.size() + tgt.size() ) * 2 ); + + for ( Repository element : tgt ) + { + Object key = getRepositoryKey( element ); + merged.put( key, element ); + } + + for ( Repository element : src ) + { + Object key = getRepositoryKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setRepositories( new ArrayList<Repository>( merged.values() ) ); + } + } + + protected void mergeModelBase_PluginRepositories( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Repository> src = source.getPluginRepositories(); + if ( !src.isEmpty() ) + { + List<Repository> tgt = target.getPluginRepositories(); + Map<Object, Repository> merged = new LinkedHashMap<Object, Repository>( ( src.size() + tgt.size() ) * 2 ); + + for ( Repository element : tgt ) + { + Object key = getRepositoryKey( element ); + merged.put( key, element ); + } + + for ( Repository element : src ) + { + Object key = getRepositoryKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setPluginRepositories( new ArrayList<Repository>( merged.values() ) ); + } + } + + protected void mergeModelBase_DistributionManagement( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + DistributionManagement src = source.getDistributionManagement(); + if ( src != null ) + { + DistributionManagement tgt = target.getDistributionManagement(); + if ( tgt == null ) + { + tgt = new DistributionManagement(); + target.setDistributionManagement( tgt ); + } + mergeDistributionManagement( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModelBase_Reporting( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + Reporting src = source.getReporting(); + if ( src != null ) + { + Reporting tgt = target.getReporting(); + if ( tgt == null ) + { + tgt = new Reporting(); + target.setReporting( tgt ); + } + mergeReporting( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModelBase_DependencyManagement( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + DependencyManagement src = source.getDependencyManagement(); + if ( src != null ) + { + DependencyManagement tgt = target.getDependencyManagement(); + if ( tgt == null ) + { + tgt = new DependencyManagement(); + target.setDependencyManagement( tgt ); + } + mergeDependencyManagement( tgt, src, sourceDominant, context ); + } + } + + protected void mergeModelBase_Properties( ModelBase target, ModelBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + Properties merged = new Properties(); + if ( sourceDominant ) + { + merged.putAll( target.getProperties() ); + merged.putAll( source.getProperties() ); + } + else + { + merged.putAll( source.getProperties() ); + merged.putAll( target.getProperties() ); + } + target.setProperties( merged ); + target.setLocation( "properties", InputLocation.merge( target.getLocation( "properties" ), + source.getLocation( "properties" ), sourceDominant ) ); + } + + protected void mergeDistributionManagement( DistributionManagement target, DistributionManagement source, + boolean sourceDominant, Map<Object, Object> context ) + { + mergeDistributionManagement_Repository( target, source, sourceDominant, context ); + mergeDistributionManagement_SnapshotRepository( target, source, sourceDominant, context ); + mergeDistributionManagement_Site( target, source, sourceDominant, context ); + mergeDistributionManagement_Status( target, source, sourceDominant, context ); + mergeDistributionManagement_DownloadUrl( target, source, sourceDominant, context ); + } + + protected void mergeDistributionManagement_Repository( DistributionManagement target, + DistributionManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + DeploymentRepository src = source.getRepository(); + if ( src != null ) + { + DeploymentRepository tgt = target.getRepository(); + if ( tgt == null ) + { + tgt = new DeploymentRepository(); + target.setRepository( tgt ); + } + mergeDeploymentRepository( tgt, src, sourceDominant, context ); + } + } + + protected void mergeDistributionManagement_SnapshotRepository( DistributionManagement target, + DistributionManagement source, + boolean sourceDominant, + Map<Object, Object> context ) + { + DeploymentRepository src = source.getSnapshotRepository(); + if ( src != null ) + { + DeploymentRepository tgt = target.getSnapshotRepository(); + if ( tgt == null ) + { + tgt = new DeploymentRepository(); + target.setSnapshotRepository( tgt ); + } + mergeDeploymentRepository( tgt, src, sourceDominant, context ); + } + } + + protected void mergeDistributionManagement_Site( DistributionManagement target, DistributionManagement source, + boolean sourceDominant, Map<Object, Object> context ) + { + Site src = source.getSite(); + if ( src != null ) + { + Site tgt = target.getSite(); + if ( tgt == null ) + { + tgt = new Site(); + target.setSite( tgt ); + } + mergeSite( tgt, src, sourceDominant, context ); + } + } + + protected void mergeDistributionManagement_Status( DistributionManagement target, DistributionManagement source, + boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getStatus(); + if ( src != null ) + { + if ( sourceDominant || target.getStatus() == null ) + { + target.setStatus( src ); + target.setLocation( "status", source.getLocation( "status" ) ); + } + } + } + + protected void mergeDistributionManagement_DownloadUrl( DistributionManagement target, + DistributionManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getDownloadUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getDownloadUrl() == null ) + { + target.setDownloadUrl( src ); + target.setLocation( "downloadUrl", source.getLocation( "downloadUrl" ) ); + } + } + } + + protected void mergeRelocation( Relocation target, Relocation source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeRelocation_GroupId( target, source, sourceDominant, context ); + mergeRelocation_ArtifactId( target, source, sourceDominant, context ); + mergeRelocation_Version( target, source, sourceDominant, context ); + mergeRelocation_Message( target, source, sourceDominant, context ); + } + + protected void mergeRelocation_GroupId( Relocation target, Relocation source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergeRelocation_ArtifactId( Relocation target, Relocation source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergeRelocation_Version( Relocation target, Relocation source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getVersion() == null ) + { + target.setVersion( src ); + target.setLocation( "version", source.getLocation( "version" ) ); + } + } + } + + protected void mergeRelocation_Message( Relocation target, Relocation source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getMessage(); + if ( src != null ) + { + if ( sourceDominant || target.getMessage() == null ) + { + target.setMessage( src ); + target.setLocation( "message", source.getLocation( "message" ) ); + } + } + } + + protected void mergeDeploymentRepository( DeploymentRepository target, DeploymentRepository source, + boolean sourceDominant, Map<Object, Object> context ) + { + mergeRepository( target, source, sourceDominant, context ); + mergeDeploymentRepository_UniqueVersion( target, source, sourceDominant, context ); + } + + protected void mergeDeploymentRepository_UniqueVersion( DeploymentRepository target, DeploymentRepository source, + boolean sourceDominant, Map<Object, Object> context ) + { + if ( sourceDominant ) + { + target.setUniqueVersion( source.isUniqueVersion() ); + target.setLocation( "uniqueVersion", source.getLocation( "uniqueVersion" ) ); + } + } + + protected void mergeSite( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeSite_Id( target, source, sourceDominant, context ); + mergeSite_Name( target, source, sourceDominant, context ); + mergeSite_Url( target, source, sourceDominant, context ); + } + + protected void mergeSite_Id( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getId(); + if ( src != null ) + { + if ( sourceDominant || target.getId() == null ) + { + target.setId( src ); + target.setLocation( "id", source.getLocation( "id" ) ); + } + } + } + + protected void mergeSite_Name( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getName(); + if ( src != null ) + { + if ( sourceDominant || target.getName() == null ) + { + target.setName( src ); + target.setLocation( "name", source.getLocation( "name" ) ); + } + } + } + + protected void mergeSite_Url( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeRepository( Repository target, Repository source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeRepositoryBase( target, source, sourceDominant, context ); + mergeRepository_Releases( target, source, sourceDominant, context ); + mergeRepository_Snapshots( target, source, sourceDominant, context ); + } + + protected void mergeRepository_Releases( Repository target, Repository source, boolean sourceDominant, + Map<Object, Object> context ) + { + RepositoryPolicy src = source.getReleases(); + if ( src != null ) + { + RepositoryPolicy tgt = target.getReleases(); + if ( tgt == null ) + { + tgt = new RepositoryPolicy(); + target.setReleases( tgt ); + } + mergeRepositoryPolicy( tgt, src, sourceDominant, context ); + } + } + + protected void mergeRepository_Snapshots( Repository target, Repository source, boolean sourceDominant, + Map<Object, Object> context ) + { + RepositoryPolicy src = source.getSnapshots(); + if ( src != null ) + { + RepositoryPolicy tgt = target.getSnapshots(); + if ( tgt == null ) + { + tgt = new RepositoryPolicy(); + target.setSnapshots( tgt ); + } + mergeRepositoryPolicy( tgt, src, sourceDominant, context ); + } + } + + protected void mergeRepositoryBase( RepositoryBase target, RepositoryBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeRepositoryBase_Id( target, source, sourceDominant, context ); + mergeRepositoryBase_Name( target, source, sourceDominant, context ); + mergeRepositoryBase_Url( target, source, sourceDominant, context ); + mergeRepositoryBase_Layout( target, source, sourceDominant, context ); + } + + protected void mergeRepositoryBase_Id( RepositoryBase target, RepositoryBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getId(); + if ( src != null ) + { + if ( sourceDominant || target.getId() == null ) + { + target.setId( src ); + target.setLocation( "id", source.getLocation( "id" ) ); + } + } + } + + protected void mergeRepositoryBase_Url( RepositoryBase target, RepositoryBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeRepositoryBase_Name( RepositoryBase target, RepositoryBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getName(); + if ( src != null ) + { + if ( sourceDominant || target.getName() == null ) + { + target.setName( src ); + target.setLocation( "name", source.getLocation( "name" ) ); + } + } + } + + protected void mergeRepositoryBase_Layout( RepositoryBase target, RepositoryBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getLayout(); + if ( src != null ) + { + if ( sourceDominant || target.getLayout() == null ) + { + target.setLayout( src ); + target.setLocation( "layout", source.getLocation( "layout" ) ); + } + } + } + + protected void mergeRepositoryPolicy( RepositoryPolicy target, RepositoryPolicy source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeRepositoryPolicy_Enabled( target, source, sourceDominant, context ); + mergeRepositoryPolicy_UpdatePolicy( target, source, sourceDominant, context ); + mergeRepositoryPolicy_ChecksumPolicy( target, source, sourceDominant, context ); + } + + protected void mergeRepositoryPolicy_Enabled( RepositoryPolicy target, RepositoryPolicy source, + boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getEnabled(); + if ( src != null ) + { + if ( sourceDominant || target.getEnabled() == null ) + { + target.setEnabled( src ); + target.setLocation( "enabled", source.getLocation( "enabled" ) ); + } + } + } + + protected void mergeRepositoryPolicy_UpdatePolicy( RepositoryPolicy target, RepositoryPolicy source, + boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getUpdatePolicy(); + if ( src != null ) + { + if ( sourceDominant || target.getUpdatePolicy() == null ) + { + target.setUpdatePolicy( src ); + target.setLocation( "updatePolicy", source.getLocation( "updatePolicy" ) ); + } + } + } + + protected void mergeRepositoryPolicy_ChecksumPolicy( RepositoryPolicy target, RepositoryPolicy source, + boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getChecksumPolicy(); + if ( src != null ) + { + if ( sourceDominant || target.getChecksumPolicy() == null ) + { + target.setChecksumPolicy( src ); + target.setLocation( "checksumPolicy", source.getLocation( "checksumPolicy" ) ); + } + } + } + + protected void mergeDependency( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeDependency_GroupId( target, source, sourceDominant, context ); + mergeDependency_ArtifactId( target, source, sourceDominant, context ); + mergeDependency_Version( target, source, sourceDominant, context ); + mergeDependency_Type( target, source, sourceDominant, context ); + mergeDependency_Classifier( target, source, sourceDominant, context ); + mergeDependency_Scope( target, source, sourceDominant, context ); + mergeDependency_SystemPath( target, source, sourceDominant, context ); + mergeDependency_Optional( target, source, sourceDominant, context ); + mergeDependency_Exclusions( target, source, sourceDominant, context ); + } + + protected void mergeDependency_GroupId( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergeDependency_ArtifactId( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergeDependency_Version( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getVersion() == null ) + { + target.setVersion( src ); + target.setLocation( "version", source.getLocation( "version" ) ); + } + } + } + + protected void mergeDependency_Type( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getType(); + if ( src != null ) + { + if ( sourceDominant || target.getType() == null ) + { + target.setType( src ); + target.setLocation( "type", source.getLocation( "type" ) ); + } + } + } + + protected void mergeDependency_Classifier( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getClassifier(); + if ( src != null ) + { + if ( sourceDominant || target.getClassifier() == null ) + { + target.setClassifier( src ); + target.setLocation( "classifier", source.getLocation( "classifier" ) ); + } + } + } + + protected void mergeDependency_Scope( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getScope(); + if ( src != null ) + { + if ( sourceDominant || target.getScope() == null ) + { + target.setScope( src ); + target.setLocation( "scope", source.getLocation( "scope" ) ); + } + } + } + + protected void mergeDependency_SystemPath( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getSystemPath(); + if ( src != null ) + { + if ( sourceDominant || target.getSystemPath() == null ) + { + target.setSystemPath( src ); + target.setLocation( "systemPath", source.getLocation( "systemPath" ) ); + } + } + } + + protected void mergeDependency_Optional( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getOptional(); + if ( src != null ) + { + if ( sourceDominant || target.getOptional() == null ) + { + target.setOptional( src ); + target.setLocation( "optional", source.getLocation( "optional" ) ); + } + } + } + + protected void mergeDependency_Exclusions( Dependency target, Dependency source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Exclusion> src = source.getExclusions(); + if ( !src.isEmpty() ) + { + List<Exclusion> tgt = target.getExclusions(); + + Map<Object, Exclusion> merged = new LinkedHashMap<Object, Exclusion>( ( src.size() + tgt.size() ) * 2 ); + + for ( Exclusion element : tgt ) + { + Object key = getExclusionKey( element ); + merged.put( key, element ); + } + + for ( Exclusion element : src ) + { + Object key = getExclusionKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setExclusions( new ArrayList<Exclusion>( merged.values() ) ); + } + } + + protected void mergeExclusion( Exclusion target, Exclusion source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeExclusion_GroupId( target, source, sourceDominant, context ); + mergeExclusion_ArtifactId( target, source, sourceDominant, context ); + } + + protected void mergeExclusion_GroupId( Exclusion target, Exclusion source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergeExclusion_ArtifactId( Exclusion target, Exclusion source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergeReporting( Reporting target, Reporting source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeReporting_OutputDirectory( target, source, sourceDominant, context ); + mergeReporting_ExcludeDefaults( target, source, sourceDominant, context ); + mergeReporting_Plugins( target, source, sourceDominant, context ); + } + + protected void mergeReporting_OutputDirectory( Reporting target, Reporting source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getOutputDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getOutputDirectory() == null ) + { + target.setOutputDirectory( src ); + target.setLocation( "outputDirectory", source.getLocation( "outputDirectory" ) ); + } + } + } + + protected void mergeReporting_ExcludeDefaults( Reporting target, Reporting source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getExcludeDefaults(); + if ( src != null ) + { + if ( sourceDominant || target.getExcludeDefaults() == null ) + { + target.setExcludeDefaults( src ); + target.setLocation( "excludeDefaults", source.getLocation( "excludeDefaults" ) ); + } + } + } + + protected void mergeReporting_Plugins( Reporting target, Reporting source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<ReportPlugin> src = source.getPlugins(); + if ( !src.isEmpty() ) + { + List<ReportPlugin> tgt = target.getPlugins(); + Map<Object, ReportPlugin> merged = + new LinkedHashMap<Object, ReportPlugin>( ( src.size() + tgt.size() ) * 2 ); + + for ( ReportPlugin element : tgt ) + { + Object key = getReportPluginKey( element ); + merged.put( key, element ); + } + + for ( ReportPlugin element : src ) + { + Object key = getReportPluginKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setPlugins( new ArrayList<ReportPlugin>( merged.values() ) ); + } + } + + protected void mergeReportPlugin( ReportPlugin target, ReportPlugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeConfigurationContainer( target, source, sourceDominant, context ); + mergeReportPlugin_GroupId( target, source, sourceDominant, context ); + mergeReportPlugin_ArtifactId( target, source, sourceDominant, context ); + mergeReportPlugin_Version( target, source, sourceDominant, context ); + mergeReportPlugin_ReportSets( target, source, sourceDominant, context ); + } + + protected void mergeReportPlugin_GroupId( ReportPlugin target, ReportPlugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergeReportPlugin_ArtifactId( ReportPlugin target, ReportPlugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergeReportPlugin_Version( ReportPlugin target, ReportPlugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getVersion() == null ) + { + target.setVersion( src ); + target.setLocation( "version", source.getLocation( "version" ) ); + } + } + } + + protected void mergeReportPlugin_ReportSets( ReportPlugin target, ReportPlugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<ReportSet> src = source.getReportSets(); + if ( !src.isEmpty() ) + { + List<ReportSet> tgt = target.getReportSets(); + Map<Object, ReportSet> merged = new LinkedHashMap<Object, ReportSet>( ( src.size() + tgt.size() ) * 2 ); + + for ( ReportSet element : tgt ) + { + Object key = getReportSetKey( element ); + merged.put( key, element ); + } + + for ( ReportSet element : src ) + { + Object key = getReportSetKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setReportSets( new ArrayList<ReportSet>( merged.values() ) ); + } + } + + protected void mergeReportSet( ReportSet target, ReportSet source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeConfigurationContainer( target, source, sourceDominant, context ); + mergeReportSet_Id( target, source, sourceDominant, context ); + mergeReportSet_Reports( target, source, sourceDominant, context ); + } + + protected void mergeReportSet_Id( ReportSet target, ReportSet source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getId(); + if ( src != null ) + { + if ( sourceDominant || target.getId() == null ) + { + target.setId( src ); + target.setLocation( "id", source.getLocation( "id" ) ); + } + } + } + + protected void mergeReportSet_Reports( ReportSet target, ReportSet source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getReports(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getReports(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setReports( merged ); + } + } + + protected void mergeDependencyManagement( DependencyManagement target, DependencyManagement source, + boolean sourceDominant, Map<Object, Object> context ) + { + mergeDependencyManagement_Dependencies( target, source, sourceDominant, context ); + } + + protected void mergeDependencyManagement_Dependencies( DependencyManagement target, DependencyManagement source, + boolean sourceDominant, Map<Object, Object> context ) + { + List<Dependency> src = source.getDependencies(); + if ( !src.isEmpty() ) + { + List<Dependency> tgt = target.getDependencies(); + Map<Object, Dependency> merged = new LinkedHashMap<Object, Dependency>( ( src.size() + tgt.size() ) * 2 ); + + for ( Dependency element : tgt ) + { + Object key = getDependencyKey( element ); + merged.put( key, element ); + } + + for ( Dependency element : src ) + { + Object key = getDependencyKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setDependencies( new ArrayList<Dependency>( merged.values() ) ); + } + } + + protected void mergeParent( Parent target, Parent source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeParent_GroupId( target, source, sourceDominant, context ); + mergeParent_ArtifactId( target, source, sourceDominant, context ); + mergeParent_Version( target, source, sourceDominant, context ); + mergeParent_RelativePath( target, source, sourceDominant, context ); + } + + protected void mergeParent_GroupId( Parent target, Parent source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergeParent_ArtifactId( Parent target, Parent source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergeParent_Version( Parent target, Parent source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getVersion() == null ) + { + target.setVersion( src ); + target.setLocation( "version", source.getLocation( "version" ) ); + } + } + } + + protected void mergeParent_RelativePath( Parent target, Parent source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getRelativePath(); + if ( src != null ) + { + if ( sourceDominant || target.getRelativePath() == null ) + { + target.setRelativePath( src ); + target.setLocation( "relativePath", source.getLocation( "relativePath" ) ); + } + } + } + + protected void mergeOrganization( Organization target, Organization source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeOrganization_Name( target, source, sourceDominant, context ); + mergeOrganization_Url( target, source, sourceDominant, context ); + } + + protected void mergeOrganization_Name( Organization target, Organization source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getName(); + if ( src != null ) + { + if ( sourceDominant || target.getName() == null ) + { + target.setName( src ); + target.setLocation( "name", source.getLocation( "name" ) ); + } + } + } + + protected void mergeOrganization_Url( Organization target, Organization source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeLicense( License target, License source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeLicense_Name( target, source, sourceDominant, context ); + mergeLicense_Url( target, source, sourceDominant, context ); + mergeLicense_Distribution( target, source, sourceDominant, context ); + mergeLicense_Comments( target, source, sourceDominant, context ); + } + + protected void mergeLicense_Name( License target, License source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getName(); + if ( src != null ) + { + if ( sourceDominant || target.getName() == null ) + { + target.setName( src ); + target.setLocation( "name", source.getLocation( "name" ) ); + } + } + } + + protected void mergeLicense_Url( License target, License source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeLicense_Distribution( License target, License source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getDistribution(); + if ( src != null ) + { + if ( sourceDominant || target.getDistribution() == null ) + { + target.setDistribution( src ); + target.setLocation( "distribution", source.getLocation( "distribution" ) ); + } + } + } + + protected void mergeLicense_Comments( License target, License source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getComments(); + if ( src != null ) + { + if ( sourceDominant || target.getComments() == null ) + { + target.setComments( src ); + target.setLocation( "comments", source.getLocation( "comments" ) ); + } + } + } + + protected void mergeMailingList( MailingList target, MailingList source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeMailingList_Name( target, source, sourceDominant, context ); + mergeMailingList_Subscribe( target, source, sourceDominant, context ); + mergeMailingList_Unsubscribe( target, source, sourceDominant, context ); + mergeMailingList_Post( target, source, sourceDominant, context ); + mergeMailingList_OtherArchives( target, source, sourceDominant, context ); + } + + protected void mergeMailingList_Name( MailingList target, MailingList source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getName(); + if ( src != null ) + { + if ( sourceDominant || target.getName() == null ) + { + target.setName( src ); + target.setLocation( "name", source.getLocation( "name" ) ); + } + } + } + + protected void mergeMailingList_Subscribe( MailingList target, MailingList source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getSubscribe(); + if ( src != null ) + { + if ( sourceDominant || target.getSubscribe() == null ) + { + target.setSubscribe( src ); + target.setLocation( "subscribe", source.getLocation( "subscribe" ) ); + } + } + } + + protected void mergeMailingList_Unsubscribe( MailingList target, MailingList source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getUnsubscribe(); + if ( src != null ) + { + if ( sourceDominant || target.getUnsubscribe() == null ) + { + target.setUnsubscribe( src ); + target.setLocation( "unsubscribe", source.getLocation( "unsubscribe" ) ); + } + } + } + + protected void mergeMailingList_Post( MailingList target, MailingList source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getPost(); + if ( src != null ) + { + if ( sourceDominant || target.getPost() == null ) + { + target.setPost( src ); + target.setLocation( "post", source.getLocation( "post" ) ); + } + } + } + + protected void mergeMailingList_Archive( MailingList target, MailingList source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArchive(); + if ( src != null ) + { + if ( sourceDominant || target.getArchive() == null ) + { + target.setArchive( src ); + target.setLocation( "archive", source.getLocation( "archive" ) ); + } + } + } + + protected void mergeMailingList_OtherArchives( MailingList target, MailingList source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getOtherArchives(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getOtherArchives(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setOtherArchives( merged ); + } + } + + protected void mergeDeveloper( Developer target, Developer source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeContributor( target, source, sourceDominant, context ); + mergeDeveloper_Id( target, source, sourceDominant, context ); + } + + protected void mergeDeveloper_Id( Developer target, Developer source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getId(); + if ( src != null ) + { + if ( sourceDominant || target.getId() == null ) + { + target.setId( src ); + target.setLocation( "id", source.getLocation( "id" ) ); + } + } + } + + protected void mergeContributor( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeContributor_Name( target, source, sourceDominant, context ); + mergeContributor_Email( target, source, sourceDominant, context ); + mergeContributor_Url( target, source, sourceDominant, context ); + mergeContributor_Organization( target, source, sourceDominant, context ); + mergeContributor_OrganizationUrl( target, source, sourceDominant, context ); + mergeContributor_Timezone( target, source, sourceDominant, context ); + mergeContributor_Roles( target, source, sourceDominant, context ); + mergeContributor_Properties( target, source, sourceDominant, context ); + } + + protected void mergeContributor_Name( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getName(); + if ( src != null ) + { + if ( sourceDominant || target.getName() == null ) + { + target.setName( src ); + target.setLocation( "name", source.getLocation( "name" ) ); + } + } + } + + protected void mergeContributor_Email( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getEmail(); + if ( src != null ) + { + if ( sourceDominant || target.getEmail() == null ) + { + target.setEmail( src ); + target.setLocation( "email", source.getLocation( "email" ) ); + } + } + } + + protected void mergeContributor_Url( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeContributor_Organization( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getOrganization(); + if ( src != null ) + { + if ( sourceDominant || target.getOrganization() == null ) + { + target.setOrganization( src ); + target.setLocation( "organization", source.getLocation( "organization" ) ); + } + } + } + + protected void mergeContributor_OrganizationUrl( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getOrganizationUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getOrganizationUrl() == null ) + { + target.setOrganizationUrl( src ); + target.setLocation( "organizationUrl", source.getLocation( "organizationUrl" ) ); + } + } + } + + protected void mergeContributor_Timezone( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getTimezone(); + if ( src != null ) + { + if ( sourceDominant || target.getTimezone() == null ) + { + target.setTimezone( src ); + target.setLocation( "timezone", source.getLocation( "timezone" ) ); + } + } + } + + protected void mergeContributor_Roles( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getRoles(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getRoles(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setRoles( merged ); + } + } + + protected void mergeContributor_Properties( Contributor target, Contributor source, boolean sourceDominant, + Map<Object, Object> context ) + { + Properties merged = new Properties(); + if ( sourceDominant ) + { + merged.putAll( target.getProperties() ); + merged.putAll( source.getProperties() ); + } + else + { + merged.putAll( source.getProperties() ); + merged.putAll( target.getProperties() ); + } + target.setProperties( merged ); + target.setLocation( "properties", InputLocation.merge( target.getLocation( "properties" ), + source.getLocation( "properties" ), sourceDominant ) ); + } + + protected void mergeIssueManagement( IssueManagement target, IssueManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeIssueManagement_Url( target, source, sourceDominant, context ); + mergeIssueManagement_System( target, source, sourceDominant, context ); + } + + protected void mergeIssueManagement_System( IssueManagement target, IssueManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getSystem(); + if ( src != null ) + { + if ( sourceDominant || target.getSystem() == null ) + { + target.setSystem( src ); + target.setLocation( "system", source.getLocation( "system" ) ); + } + } + } + + protected void mergeIssueManagement_Url( IssueManagement target, IssueManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeScm( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeScm_Url( target, source, sourceDominant, context ); + mergeScm_Connection( target, source, sourceDominant, context ); + mergeScm_DeveloperConnection( target, source, sourceDominant, context ); + mergeScm_Tag( target, source, sourceDominant, context ); + } + + protected void mergeScm_Url( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeScm_Connection( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getConnection(); + if ( src != null ) + { + if ( sourceDominant || target.getConnection() == null ) + { + target.setConnection( src ); + target.setLocation( "connection", source.getLocation( "connection" ) ); + } + } + } + + protected void mergeScm_DeveloperConnection( Scm target, Scm source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getDeveloperConnection(); + if ( src != null ) + { + if ( sourceDominant || target.getDeveloperConnection() == null ) + { + target.setDeveloperConnection( src ); + target.setLocation( "developerConnection", source.getLocation( "developerConnection" ) ); + } + } + } + + protected void mergeScm_Tag( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getTag(); + if ( src != null ) + { + if ( sourceDominant || target.getTag() == null ) + { + target.setTag( src ); + target.setLocation( "tag", source.getLocation( "tag" ) ); + } + } + } + + protected void mergeCiManagement( CiManagement target, CiManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeCiManagement_System( target, source, sourceDominant, context ); + mergeCiManagement_Url( target, source, sourceDominant, context ); + mergeCiManagement_Notifiers( target, source, sourceDominant, context ); + } + + protected void mergeCiManagement_System( CiManagement target, CiManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getSystem(); + if ( src != null ) + { + if ( sourceDominant || target.getSystem() == null ) + { + target.setSystem( src ); + target.setLocation( "system", source.getLocation( "system" ) ); + } + } + } + + protected void mergeCiManagement_Url( CiManagement target, CiManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getUrl(); + if ( src != null ) + { + if ( sourceDominant || target.getUrl() == null ) + { + target.setUrl( src ); + target.setLocation( "url", source.getLocation( "url" ) ); + } + } + } + + protected void mergeCiManagement_Notifiers( CiManagement target, CiManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Notifier> src = source.getNotifiers(); + if ( !src.isEmpty() ) + { + List<Notifier> tgt = target.getNotifiers(); + Map<Object, Notifier> merged = new LinkedHashMap<Object, Notifier>( ( src.size() + tgt.size() ) * 2 ); + + for ( Notifier element : tgt ) + { + Object key = getNotifierKey( element ); + merged.put( key, element ); + } + + for ( Notifier element : src ) + { + Object key = getNotifierKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setNotifiers( new ArrayList<Notifier>( merged.values() ) ); + } + } + + protected void mergeNotifier( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeNotifier_Type( target, source, sourceDominant, context ); + mergeNotifier_Address( target, source, sourceDominant, context ); + mergeNotifier_Configuration( target, source, sourceDominant, context ); + mergeNotifier_SendOnError( target, source, sourceDominant, context ); + mergeNotifier_SendOnFailure( target, source, sourceDominant, context ); + mergeNotifier_SendOnSuccess( target, source, sourceDominant, context ); + mergeNotifier_SendOnWarning( target, source, sourceDominant, context ); + } + + protected void mergeNotifier_Type( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getType(); + if ( src != null ) + { + if ( sourceDominant || target.getType() == null ) + { + target.setType( src ); + } + } + } + + protected void mergeNotifier_Address( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getAddress(); + if ( src != null ) + { + if ( sourceDominant || target.getAddress() == null ) + { + target.setAddress( src ); + } + } + } + + protected void mergeNotifier_Configuration( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + Properties merged = new Properties(); + if ( sourceDominant ) + { + merged.putAll( target.getConfiguration() ); + merged.putAll( source.getConfiguration() ); + } + else + { + merged.putAll( source.getConfiguration() ); + merged.putAll( target.getConfiguration() ); + } + target.setConfiguration( merged ); + } + + protected void mergeNotifier_SendOnError( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + if ( sourceDominant ) + { + target.setSendOnError( source.isSendOnError() ); + } + } + + protected void mergeNotifier_SendOnFailure( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + if ( sourceDominant ) + { + target.setSendOnFailure( source.isSendOnFailure() ); + } + } + + protected void mergeNotifier_SendOnSuccess( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + if ( sourceDominant ) + { + target.setSendOnSuccess( source.isSendOnSuccess() ); + } + } + + protected void mergeNotifier_SendOnWarning( Notifier target, Notifier source, boolean sourceDominant, + Map<Object, Object> context ) + { + if ( sourceDominant ) + { + target.setSendOnWarning( source.isSendOnWarning() ); + } + } + + protected void mergePrerequisites( Prerequisites target, Prerequisites source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergePrerequisites_Maven( target, source, sourceDominant, context ); + } + + protected void mergePrerequisites_Maven( Prerequisites target, Prerequisites source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getMaven(); + if ( src != null ) + { + if ( sourceDominant || target.getMaven() == null ) + { + target.setMaven( src ); + target.setLocation( "maven", source.getLocation( "maven" ) ); + } + } + } + + protected void mergeBuild( Build target, Build source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeBuildBase( target, source, sourceDominant, context ); + mergeBuild_SourceDirectory( target, source, sourceDominant, context ); + mergeBuild_ScriptSourceDirectory( target, source, sourceDominant, context ); + mergeBuild_TestSourceDirectory( target, source, sourceDominant, context ); + mergeBuild_OutputDirectory( target, source, sourceDominant, context ); + mergeBuild_TestOutputDirectory( target, source, sourceDominant, context ); + mergeBuild_Extensions( target, source, sourceDominant, context ); + } + + protected void mergeBuild_SourceDirectory( Build target, Build source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getSourceDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getSourceDirectory() == null ) + { + target.setSourceDirectory( src ); + target.setLocation( "sourceDirectory", source.getLocation( "sourceDirectory" ) ); + } + } + } + + protected void mergeBuild_ScriptSourceDirectory( Build target, Build source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getScriptSourceDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getScriptSourceDirectory() == null ) + { + target.setScriptSourceDirectory( src ); + target.setLocation( "scriptSourceDirectory", source.getLocation( "scriptSourceDirectory" ) ); + } + } + } + + protected void mergeBuild_TestSourceDirectory( Build target, Build source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getTestSourceDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getTestSourceDirectory() == null ) + { + target.setTestSourceDirectory( src ); + target.setLocation( "testSourceDirectory", source.getLocation( "testSourceDirectory" ) ); + } + } + } + + protected void mergeBuild_OutputDirectory( Build target, Build source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getOutputDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getOutputDirectory() == null ) + { + target.setOutputDirectory( src ); + target.setLocation( "outputDirectory", source.getLocation( "outputDirectory" ) ); + } + } + } + + protected void mergeBuild_TestOutputDirectory( Build target, Build source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getTestOutputDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getTestOutputDirectory() == null ) + { + target.setTestOutputDirectory( src ); + target.setLocation( "testOutputDirectory", source.getLocation( "testOutputDirectory" ) ); + } + } + } + + protected void mergeBuild_Extensions( Build target, Build source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Extension> src = source.getExtensions(); + if ( !src.isEmpty() ) + { + List<Extension> tgt = target.getExtensions(); + Map<Object, Extension> merged = new LinkedHashMap<Object, Extension>( ( src.size() + tgt.size() ) * 2 ); + + for ( Extension element : tgt ) + { + Object key = getExtensionKey( element ); + merged.put( key, element ); + } + + for ( Extension element : src ) + { + Object key = getExtensionKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setExtensions( new ArrayList<Extension>( merged.values() ) ); + } + } + + protected void mergeExtension( Extension target, Extension source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeExtension_GroupId( target, source, sourceDominant, context ); + mergeExtension_ArtifactId( target, source, sourceDominant, context ); + mergeExtension_Version( target, source, sourceDominant, context ); + } + + protected void mergeExtension_GroupId( Extension target, Extension source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergeExtension_ArtifactId( Extension target, Extension source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergeExtension_Version( Extension target, Extension source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getVersion() == null ) + { + target.setVersion( src ); + target.setLocation( "version", source.getLocation( "version" ) ); + } + } + } + + protected void mergeBuildBase( BuildBase target, BuildBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergePluginConfiguration( target, source, sourceDominant, context ); + mergeBuildBase_DefaultGoal( target, source, sourceDominant, context ); + mergeBuildBase_FinalName( target, source, sourceDominant, context ); + mergeBuildBase_Directory( target, source, sourceDominant, context ); + mergeBuildBase_Resources( target, source, sourceDominant, context ); + mergeBuildBase_TestResources( target, source, sourceDominant, context ); + mergeBuildBase_Filters( target, source, sourceDominant, context ); + } + + protected void mergeBuildBase_DefaultGoal( BuildBase target, BuildBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getDefaultGoal(); + if ( src != null ) + { + if ( sourceDominant || target.getDefaultGoal() == null ) + { + target.setDefaultGoal( src ); + target.setLocation( "defaultGoal", source.getLocation( "defaultGoal" ) ); + } + } + } + + protected void mergeBuildBase_Directory( BuildBase target, BuildBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getDirectory() == null ) + { + target.setDirectory( src ); + target.setLocation( "directory", source.getLocation( "directory" ) ); + } + } + } + + protected void mergeBuildBase_FinalName( BuildBase target, BuildBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getFinalName(); + if ( src != null ) + { + if ( sourceDominant || target.getFinalName() == null ) + { + target.setFinalName( src ); + target.setLocation( "finalName", source.getLocation( "finalName" ) ); + } + } + } + + protected void mergeBuildBase_Filters( BuildBase target, BuildBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getFilters(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getFilters(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setFilters( merged ); + } + } + + protected void mergeBuildBase_Resources( BuildBase target, BuildBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Resource> src = source.getResources(); + if ( !src.isEmpty() ) + { + List<Resource> tgt = target.getResources(); + Map<Object, Resource> merged = new LinkedHashMap<Object, Resource>( ( src.size() + tgt.size() ) * 2 ); + + for ( Resource element : tgt ) + { + Object key = getResourceKey( element ); + merged.put( key, element ); + } + + for ( Resource element : src ) + { + Object key = getResourceKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setResources( new ArrayList<Resource>( merged.values() ) ); + } + } + + protected void mergeBuildBase_TestResources( BuildBase target, BuildBase source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Resource> src = source.getTestResources(); + if ( !src.isEmpty() ) + { + List<Resource> tgt = target.getTestResources(); + Map<Object, Resource> merged = new LinkedHashMap<Object, Resource>( ( src.size() + tgt.size() ) * 2 ); + + for ( Resource element : tgt ) + { + Object key = getResourceKey( element ); + merged.put( key, element ); + } + + for ( Resource element : src ) + { + Object key = getResourceKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setTestResources( new ArrayList<Resource>( merged.values() ) ); + } + } + + protected void mergePluginConfiguration( PluginConfiguration target, PluginConfiguration source, + boolean sourceDominant, Map<Object, Object> context ) + { + mergePluginContainer( target, source, sourceDominant, context ); + mergePluginConfiguration_PluginManagement( target, source, sourceDominant, context ); + } + + protected void mergePluginConfiguration_PluginManagement( PluginConfiguration target, PluginConfiguration source, + boolean sourceDominant, Map<Object, Object> context ) + { + PluginManagement src = source.getPluginManagement(); + if ( src != null ) + { + PluginManagement tgt = target.getPluginManagement(); + if ( tgt == null ) + { + tgt = new PluginManagement(); + target.setPluginManagement( tgt ); + } + mergePluginManagement( tgt, src, sourceDominant, context ); + } + } + + protected void mergePluginContainer( PluginContainer target, PluginContainer source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergePluginContainer_Plugins( target, source, sourceDominant, context ); + } + + protected void mergePluginContainer_Plugins( PluginContainer target, PluginContainer source, + boolean sourceDominant, Map<Object, Object> context ) + { + List<Plugin> src = source.getPlugins(); + if ( !src.isEmpty() ) + { + List<Plugin> tgt = target.getPlugins(); + Map<Object, Plugin> merged = new LinkedHashMap<Object, Plugin>( ( src.size() + tgt.size() ) * 2 ); + + for ( Plugin element : tgt ) + { + Object key = getPluginKey( element ); + merged.put( key, element ); + } + + for ( Plugin element : src ) + { + Object key = getPluginKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setPlugins( new ArrayList<Plugin>( merged.values() ) ); + } + } + + protected void mergePluginManagement( PluginManagement target, PluginManagement source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergePluginContainer( target, source, sourceDominant, context ); + } + + protected void mergePlugin( Plugin target, Plugin source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeConfigurationContainer( target, source, sourceDominant, context ); + mergePlugin_GroupId( target, source, sourceDominant, context ); + mergePlugin_ArtifactId( target, source, sourceDominant, context ); + mergePlugin_Version( target, source, sourceDominant, context ); + mergePlugin_Extensions( target, source, sourceDominant, context ); + mergePlugin_Dependencies( target, source, sourceDominant, context ); + mergePlugin_Executions( target, source, sourceDominant, context ); + } + + protected void mergePlugin_GroupId( Plugin target, Plugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getGroupId(); + if ( src != null ) + { + if ( sourceDominant || target.getGroupId() == null ) + { + target.setGroupId( src ); + target.setLocation( "groupId", source.getLocation( "groupId" ) ); + } + } + } + + protected void mergePlugin_ArtifactId( Plugin target, Plugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getArtifactId(); + if ( src != null ) + { + if ( sourceDominant || target.getArtifactId() == null ) + { + target.setArtifactId( src ); + target.setLocation( "artifactId", source.getLocation( "artifactId" ) ); + } + } + } + + protected void mergePlugin_Version( Plugin target, Plugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getVersion(); + if ( src != null ) + { + if ( sourceDominant || target.getVersion() == null ) + { + target.setVersion( src ); + target.setLocation( "version", source.getLocation( "version" ) ); + } + } + } + + protected void mergePlugin_Extensions( Plugin target, Plugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getExtensions(); + if ( src != null ) + { + if ( sourceDominant || target.getExtensions() == null ) + { + target.setExtensions( src ); + target.setLocation( "extensions", source.getLocation( "extensions" ) ); + } + } + } + + protected void mergePlugin_Dependencies( Plugin target, Plugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<Dependency> src = source.getDependencies(); + if ( !src.isEmpty() ) + { + List<Dependency> tgt = target.getDependencies(); + Map<Object, Dependency> merged = new LinkedHashMap<Object, Dependency>( ( src.size() + tgt.size() ) * 2 ); + + for ( Dependency element : tgt ) + { + Object key = getDependencyKey( element ); + merged.put( key, element ); + } + + for ( Dependency element : src ) + { + Object key = getDependencyKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setDependencies( new ArrayList<Dependency>( merged.values() ) ); + } + } + + protected void mergePlugin_Executions( Plugin target, Plugin source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<PluginExecution> src = source.getExecutions(); + if ( !src.isEmpty() ) + { + List<PluginExecution> tgt = target.getExecutions(); + + Map<Object, PluginExecution> merged = + new LinkedHashMap<Object, PluginExecution>( ( src.size() + tgt.size() ) * 2 ); + + for ( PluginExecution element : tgt ) + { + Object key = getPluginExecutionKey( element ); + merged.put( key, element ); + } + + for ( PluginExecution element : src ) + { + Object key = getPluginExecutionKey( element ); + if ( sourceDominant || !merged.containsKey( key ) ) + { + merged.put( key, element ); + } + } + + target.setExecutions( new ArrayList<PluginExecution>( merged.values() ) ); + } + } + + protected void mergeConfigurationContainer( ConfigurationContainer target, ConfigurationContainer source, + boolean sourceDominant, Map<Object, Object> context ) + { + mergeConfigurationContainer_Inherited( target, source, sourceDominant, context ); + mergeConfigurationContainer_Configuration( target, source, sourceDominant, context ); + } + + protected void mergeConfigurationContainer_Inherited( ConfigurationContainer target, ConfigurationContainer source, + boolean sourceDominant, Map<Object, Object> context ) + { + String src = source.getInherited(); + if ( src != null ) + { + if ( sourceDominant || target.getInherited() == null ) + { + target.setInherited( src ); + target.setLocation( "inherited", source.getLocation( "inherited" ) ); + } + } + } + + protected void mergeConfigurationContainer_Configuration( ConfigurationContainer target, + ConfigurationContainer source, boolean sourceDominant, + Map<Object, Object> context ) + { + Xpp3Dom src = (Xpp3Dom) source.getConfiguration(); + if ( src != null ) + { + Xpp3Dom tgt = (Xpp3Dom) target.getConfiguration(); + if ( sourceDominant || tgt == null ) + { + tgt = Xpp3Dom.mergeXpp3Dom( new Xpp3Dom( src ), tgt ); + } + else + { + tgt = Xpp3Dom.mergeXpp3Dom( tgt, src ); + } + target.setConfiguration( tgt ); + } + } + + protected void mergePluginExecution( PluginExecution target, PluginExecution source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeConfigurationContainer( target, source, sourceDominant, context ); + mergePluginExecution_Id( target, source, sourceDominant, context ); + mergePluginExecution_Phase( target, source, sourceDominant, context ); + mergePluginExecution_Goals( target, source, sourceDominant, context ); + } + + protected void mergePluginExecution_Id( PluginExecution target, PluginExecution source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getId(); + if ( src != null ) + { + if ( sourceDominant || target.getId() == null ) + { + target.setId( src ); + target.setLocation( "id", source.getLocation( "id" ) ); + } + } + } + + protected void mergePluginExecution_Phase( PluginExecution target, PluginExecution source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getPhase(); + if ( src != null ) + { + if ( sourceDominant || target.getPhase() == null ) + { + target.setPhase( src ); + target.setLocation( "phase", source.getLocation( "phase" ) ); + } + } + } + + protected void mergePluginExecution_Goals( PluginExecution target, PluginExecution source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getGoals(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getGoals(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setGoals( merged ); + } + } + + protected void mergeResource( Resource target, Resource source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergeFileSet( target, source, sourceDominant, context ); + mergeResource_TargetPath( target, source, sourceDominant, context ); + mergeResource_Filtering( target, source, sourceDominant, context ); + mergeResource_MergeId( target, source, sourceDominant, context ); + } + + protected void mergeResource_TargetPath( Resource target, Resource source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getTargetPath(); + if ( src != null ) + { + if ( sourceDominant || target.getTargetPath() == null ) + { + target.setTargetPath( src ); + target.setLocation( "targetPath", source.getLocation( "targetPath" ) ); + } + } + } + + protected void mergeResource_Filtering( Resource target, Resource source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getFiltering(); + if ( src != null ) + { + if ( sourceDominant || target.getFiltering() == null ) + { + target.setFiltering( src ); + target.setLocation( "filtering", source.getLocation( "filtering" ) ); + } + } + } + + protected void mergeResource_MergeId( Resource target, Resource source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getMergeId(); + if ( src != null ) + { + if ( sourceDominant || target.getMergeId() == null ) + { + target.setMergeId( src ); + } + } + } + + protected void mergeFileSet( FileSet target, FileSet source, boolean sourceDominant, Map<Object, Object> context ) + { + mergePatternSet( target, source, sourceDominant, context ); + mergeFileSet_Directory( target, source, sourceDominant, context ); + } + + protected void mergeFileSet_Directory( FileSet target, FileSet source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getDirectory(); + if ( src != null ) + { + if ( sourceDominant || target.getDirectory() == null ) + { + target.setDirectory( src ); + target.setLocation( "directory", source.getLocation( "directory" ) ); + } + } + } + + protected void mergePatternSet( PatternSet target, PatternSet source, boolean sourceDominant, + Map<Object, Object> context ) + { + mergePatternSet_Includes( target, source, sourceDominant, context ); + mergePatternSet_Excludes( target, source, sourceDominant, context ); + } + + protected void mergePatternSet_Includes( PatternSet target, PatternSet source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getIncludes(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getIncludes(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setIncludes( merged ); + } + } + + protected void mergePatternSet_Excludes( PatternSet target, PatternSet source, boolean sourceDominant, + Map<Object, Object> context ) + { + List<String> src = source.getExcludes(); + if ( !src.isEmpty() ) + { + List<String> tgt = target.getExcludes(); + List<String> merged = new ArrayList<String>( tgt.size() + src.size() ); + merged.addAll( tgt ); + merged.addAll( src ); + target.setExcludes( merged ); + } + } + + protected void mergeProfile( Profile target, Profile source, boolean sourceDominant, Map<Object, Object> context ) + { + mergeModelBase( target, source, sourceDominant, context ); + // TODO + } + + protected void mergeActivation( Activation target, Activation source, boolean sourceDominant, + Map<Object, Object> context ) + { + // TODO + } + + protected Object getDependencyKey( Dependency dependency ) + { + return dependency; + } + + protected Object getPluginKey( Plugin plugin ) + { + return plugin; + } + + protected Object getPluginExecutionKey( PluginExecution pluginExecution ) + { + return pluginExecution; + } + + protected Object getReportPluginKey( ReportPlugin reportPlugin ) + { + return reportPlugin; + } + + protected Object getReportSetKey( ReportSet reportSet ) + { + return reportSet; + } + + protected Object getLicenseKey( License license ) + { + return license; + } + + protected Object getMailingListKey( MailingList mailingList ) + { + return mailingList; + } + + protected Object getDeveloperKey( Developer developer ) + { + return developer; + } + + protected Object getContributorKey( Contributor contributor ) + { + return contributor; + } + + protected Object getProfileKey( Profile profile ) + { + return profile; + } + + protected Object getRepositoryKey( Repository repository ) + { + return getRepositoryBaseKey( repository ); + } + + protected Object getRepositoryBaseKey( RepositoryBase repositoryBase ) + { + return repositoryBase; + } + + protected Object getNotifierKey( Notifier notifier ) + { + return notifier; + } + + protected Object getResourceKey( Resource resource ) + { + return resource; + } + + protected Object getExtensionKey( Extension extension ) + { + return extension; + } + + protected Object getExclusionKey( Exclusion exclusion ) + { + return exclusion; + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/package-info.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/package-info.java new file mode 100644 index 00000000..eaa2d174 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/package-info.java @@ -0,0 +1,24 @@ +// CHECKSTYLE_OFF: RegexpHeader +/** + * POM merger. + */ +package org.apache.maven.model.merge; + +/* + * 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. + */ diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/package-info.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/package-info.java new file mode 100644 index 00000000..88d3fa07 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/package-info.java @@ -0,0 +1,25 @@ +// CHECKSTYLE_OFF: RegexpHeader +/** + * Maven POM (Project Object Model) classes, generated from <code>maven.mdo</code> model. + * The root class is {@link org.apache.maven.model.Model}. + */ +package org.apache.maven.model; + +/* + * 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. + */
\ No newline at end of file diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo new file mode 100644 index 00000000..2821ea62 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo @@ -0,0 +1,3649 @@ +<?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. +--> + +<!-- + | Improvements: + | + | o add specification element to a field, this would be more a technical description of + | what is allowed in the field. + | + | o validators: there could be several levels of validation. Simple type validation could + | be done with a regex, but we need inter-field validation and rules which could be + | dealt with by something like drools. + | + | o i18n: would be good to be able to have names/descriptions/specifications + | in as many languages as possible. (see MNG-3626) + | + | o annotation mechanism so that changes to the model can be accurately tracked. + | + | o need to clean up all the descriptions, matching anything to the current project-descriptor.xml file and + | improving on that + | + | o use enums where appropriate (eg dependency scope) + | + | o a number of elements have a groupId/artifactId and sometimes version. It would be good to have them all extend one + | definition of these types + | +--> +<model xmlns="http://modello.codehaus.org/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.4.0 http://modello.codehaus.org/xsd/modello-1.4.0.xsd" + xml.namespace="http://maven.apache.org/POM/${version}" + xml.schemaLocation="http://maven.apache.org/xsd/maven-${version}.xsd"> + <id>maven</id> + <name>Maven</name> + <description> + <![CDATA[ + <p>This is a reference for the Maven project descriptor used in Maven.</p> + <p>An XSD is available at:</p> + <ul> + <li><a href="http://maven.apache.org/xsd/maven-v3_0_0.xsd">http://maven.apache.org/xsd/maven-v3_0_0.xsd</a> for Maven 1.1.</li> + <li><a href="http://maven.apache.org/xsd/maven-4.0.0.xsd">http://maven.apache.org/xsd/maven-4.0.0.xsd</a> for Maven 2.0.</li> + </ul> + ]]> + </description> + <defaults> + <default> + <key>package</key> + <value>org.apache.maven.model</value> + </default> + </defaults> + <classes> + <class rootElement="true" xml.tagName="project" java.clone.hook="cloneHook"> + <name>Model</name> + <superClass>ModelBase</superClass> + <description> + <![CDATA[ + The <code><project></code> element is the root of the descriptor. + The following table lists all of the possible child elements. + ]]> + </description> + <version>3.0.0+</version> + <fields> + + <!-- ====================================================================== --> + <!-- Model Version --> + <!-- ====================================================================== --> + + <field> + <name>pomVersion</name> + <version>3.0.0</version> + <required>true</required> + <type>String</type> + <description> + <![CDATA[ + Declares to which version of project descriptor this POM conforms. + The only valid value is <code>3</code>. + ]]> + </description> + </field> + <field> + <name>modelVersion</name> + <version>4.0.0+</version> + <required>true</required> + <description>Declares to which version of project descriptor this POM conforms.</description> + <type>String</type> + </field> + + <!-- ====================================================================== --> + <!-- Parent Model --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank"> + <name>extend</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The location of the parent project, if one exists. Values from the + parent project will be the default for this project if they are + left unspecified. The path may be absolute, or relative to the + current <code>project.xml</code> file. For example, + <code><extend>${basedir}/../project.xml</extend></code>. + ]]> + </description> + <type>String</type> + </field> + <field xdoc.separator="blank"> + <name>parent</name> + <version>4.0.0+</version> + <description>The location of the parent project, if one exists. Values from the parent + project will be the default for this project if they are left unspecified. The location + is given as a group ID, artifact ID and version.</description> + <association> + <type>Parent</type> + </association> + </field> + + <!-- ====================================================================== --> + <!-- groupId/artifactId/Version/Packaging --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank"> + <name>groupId</name> + <version>3.0.0+</version> + <required>true</required> + <description> + <![CDATA[ + A universally unique identifier for a project. It is normal to + use a fully-qualified package name to distinguish it from other + projects with a similar name (eg. <code>org.apache.maven</code>). + ]]> + </description> + <type>String</type> + </field> + <field> + <name>artifactId</name> + <version>3.0.0+</version> + <required>true</required> + <description>The identifier for this artifact that is unique within the group given by the + group ID. An artifact is something that is either produced or used by a project. + Examples of artifacts produced by Maven for a project include: JARs, source and binary + distributions, and WARs.</description> + <type>String</type> + </field> + <field> + <name>id</name> + <version>3.0.0</version> + <required>true</required> + <description> + <![CDATA[ + <b>Deprecated</b>. When used, this sets both the <code>groupId</code> + and <code>artifactId</code> elements if they were previously empty. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>currentVersion</name> + <description>The current version of the artifact produced by this project.</description> + <version>3.0.0</version> + <required>true</required> + <type>String</type> + </field> + <field> + <name>version</name> + <version>4.0.0+</version> + <required>true</required> + <description>The current version of the artifact produced by this project.</description> + <type>String</type> + </field> + <field> + <name>versions</name> + <version>3.0.0</version> + <description>Contains information on previous versions of the project.</description> + <association> + <type>Version</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>packaging</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The type of artifact this project produces, for example <code>jar</code> + <code>war</code> + <code>ear</code> + <code>pom</code>. + Plugins can create their own packaging, and + therefore their own packaging types, + so this list does not contain all possible types. + ]]> + </description> + <type>String</type> + <defaultValue>jar</defaultValue> + </field> + + <!-- ====================================================================== --> + <!-- Elements which describe a project --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank"> + <name>name</name> + <version>3.0.0+</version> + <required>true</required> + <description>The full name of the project.</description> + <type>String</type> + </field> + <field> + <name>shortDescription</name> + <version>3.0.0</version> + <description>A short description of the project. The short description should be limited + to a single line.</description> + <type>String</type> + </field> + <field> + <name>description</name> + <version>3.0.0+</version> + <description>A detailed description of the project, used by Maven whenever it needs to + describe the project, such as on the web site. While this element can be specified as + CDATA to enable the use of HTML tags within the description, it is discouraged to allow + plain text representation. If you need to modify the index page of the generated web + site, you are able to specify your own instead of adjusting this text.</description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The URL to the project's homepage. + <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId + ]]> + </description> + <type>String</type> + </field> + <field> + <name>siteAddress</name> + <version>3.0.0</version> + <description>The hostname of the web server that hosts the project's web site. This is + used when the web site is deployed.</description> + <type>String</type> + </field> + <field> + <name>siteDirectory</name> + <version>3.0.0</version> + <description>The directory on the web server where the public web site for this project + resides. This is used when the web site is deployed.</description> + <type>String</type> + </field> + <field> + <name>inceptionYear</name> + <version>3.0.0+</version> + <required>true</required> + <description>The year of the project's inception, specified with 4 digits. This value is + used when generating copyright notices as well as being informational.</description> + <type>String</type> + </field> + <field> + <name>logo</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The URL of the project's logo image. This can be an URL relative + to the base directory of the generated web site, + (e.g., <code>/images/project-logo.png</code>) or an absolute URL + (e.g., <code>http://my.corp/project-logo.png</code>). This is used + when generating the project documentation. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>organization</name> + <version>3.0.0+</version> + <description>This element describes various attributes of the organization to which the + project belongs. These attributes are utilized when documentation is created (for + copyright notices and links).</description> + <alias>organisation</alias> + <association> + <type>Organization</type> + </association> + </field> + <field> + <name>licenses</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + This element describes all of the licenses for this project. + Each license is described by a <code>license</code> element, which + is then described by additional elements. + Projects should only list the license(s) that applies to the project + and not the licenses that apply to dependencies. + If multiple licenses are listed, it is assumed that the user can select + any of them, not that they must accept all. + ]]> + </description> + <association> + <type>License</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field xdoc.separator="blank"> + <name>developers</name> + <version>3.0.0+</version> + <description>Describes the committers of a project.</description> + <association> + <type>Developer</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>contributors</name> + <version>3.0.0+</version> + <description>Describes the contributors to a project that are not yet committers.</description> + <association> + <type>Contributor</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field xdoc.separator="blank"> + <name>mailingLists</name> + <version>3.0.0+</version> + <description>Contains information about a project's mailing lists.</description> + <association> + <type>MailingList</type> + <multiplicity>*</multiplicity> + </association> + </field> + + <!-- ====================================================================== --> + <!-- Build prerequisites --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank"> + <name>prerequisites</name> + <version>4.0.0+</version> + <description>Describes the prerequisites in the build environment for this project.</description> + <association> + <type>Prerequisites</type> + </association> + </field> + + <!-- ====================================================================== --> + <!-- SCM --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank"> + <name>branches</name> + <version>3.0.0</version> + <description> + <![CDATA[ + Contains information on SCM branches of the project. + ]]> + </description> + <association> + <type>Branch</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>repository</name> + <version>3.0.0</version> + <description>Specification for the SCM used by the project, such as CVS, Subversion, etc.</description> + <association> + <type>Repository</type> + </association> + </field> + <field xdoc.separator="blank" xml.insertParentFieldsUpTo="modules"> + <name>scm</name> + <version>4.0.0+</version> + <description>Specification for the SCM used by the project, such as CVS, Subversion, etc.</description> + <association> + <type>Scm</type> + </association> + </field> + + <!-- ====================================================================== --> + <!-- Issue Tracking --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank"> + <name>issueTrackingUrl</name> + <version>3.0.0</version> + <description>The URL of the project's issue tracking system.</description> + <type>String</type> + </field> + <field> + <name>issueManagement</name> + <version>4.0.0+</version> + <description>The project's issue management system information.</description> + <association> + <type>IssueManagement</type> + </association> + </field> + + <!-- ====================================================================== --> + <!-- CI Management --> + <!-- ====================================================================== --> + + <field> + <name>gumpRepositoryId</name> + <version>3.0.0</version> + <description>This is the repository identifier in Gump that this project is part of.</description> + <type>String</type> + </field> + <field> + <name>ciManagement</name> + <version>4.0.0+</version> + <description>The project's continuous integration information.</description> + <association> + <type>CiManagement</type> + </association> + </field> + + <!-- ====================================================================== --> + <!-- Distribution Management --> + <!-- ====================================================================== --> + + <field> + <name>distributionSite</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The server where the final distributions will be published. This is used when the + distributions are deployed. If this isn't defined, the central repository is used instead as + determined by <code>maven.repo.central</code> and <code>maven.repo.central.directory</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>distributionDirectory</name> + <version>3.0.0</version> + <description>The directory on the web server where the final distributions will be + published. This is used when the distributions are deployed.</description> + <type>String</type> + </field> + + <!-- ====================================================================== --> + <!-- Specific version 3 --> + <!-- ====================================================================== --> + + <field> + <name>packageGroups</name> + <version>3.0.0</version> + <description>Package groups required for complete javadocs.</description> + <association> + <type>PackageGroup</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>reports</name> + <version>3.0.0</version> + <description> + <![CDATA[ + This element includes the specification of reports to be + included in a Maven-generated site. These reports will be run + when a user executes <code>maven site</code>. All of the + reports will be included in the navigation bar for browsing in + the order they are specified. + ]]> + </description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>properties</name> + <version>3.0.0</version> + <description> + <![CDATA[ + Project properties that will be used by various plugins. + The format is <code><name>value</name></code>. + ]]> + </description> + <type>Properties</type> + <association xml.mapStyle="inline"> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field xml.tagName="package"> + <name>packageName</name> + <version>3.0.0</version> + <type>String</type> + <description>The Java package name of the project. This value is used when generating + JavaDoc.</description> + </field> + + <!-- ====================================================================== --> + <!-- Build --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank" xml.insertParentFieldsUpTo="pluginRepositories"> + <name>build</name> + <version>3.0.0+</version> + <required>true</required> + <description>Information required to build the project.</description> + <association> + <type>Build</type> + </association> + </field> + + <!-- ====================================================================== --> + <!-- Profiles --> + <!-- ====================================================================== --> + + <field xdoc.separator="blank" xml.insertParentFieldsUpTo="reporting"> + <name>profiles</name> + <version>4.0.0+</version> + <description>A listing of project-local build profiles which will modify the build process + when activated.</description> + <association> + <type>Profile</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>3.0.0</version> + <code> + <![CDATA[ + public void setVersion(String version) + { + this.currentVersion = version; + } + + public String getVersion() + { + return currentVersion; + } + + /* We need this because we can't use package as a field name.*/ + public void setPackage(String packageName) + { + this.packageName = packageName; + } + + public String getPackage() + { + return packageName; + } + ]]> + </code> + </codeSegment> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + private void cloneHook( Model copy ) + { + copy.pomFile = pomFile; + } + + /** + * The POM from which this model originated. This is transient runtime state and therefore not managed by Modello. + */ + private java.io.File pomFile; + + /** + * Gets the POM file for the corresponding project (if any). + * + * @return The POM file from which this model originated or {@code null} if this model does not belong to a local + * project (e.g. describes the metadata of some artifact from the repository). + */ + public java.io.File getPomFile() + { + return pomFile; + } + + public void setPomFile( java.io.File pomFile ) + { + this.pomFile = ( pomFile != null ) ? pomFile.getAbsoluteFile() : null; + } + + /** + * Gets the base directory for the corresponding project (if any). + * + * @return The base directory for the corresponding project or {@code null} if this model does not belong to a local + * project (e.g. describes the metadata of some artifact from the repository). + */ + public java.io.File getProjectDirectory() + { + return ( pomFile != null ) ? pomFile.getParentFile() : null; + } + + /** + * @return the model id as <code>groupId:artifactId:packaging:version</code> + */ + public String getId() + { + StringBuilder id = new StringBuilder( 64 ); + + id.append( ( getGroupId() == null ) ? "[inherited]" : getGroupId() ); + id.append( ":" ); + id.append( getArtifactId() ); + id.append( ":" ); + id.append( getPackaging() ); + id.append( ":" ); + id.append( ( getVersion() == null ) ? "[inherited]" : getVersion() ); + + return id.toString(); + } + + @Override + public String toString() + { + return getId(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class java.clone="deep"> + <name>ModelBase</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + Base class for the <code>Model</code> and the <code>Profile</code> objects. + ]]> + </description> + <fields> + <field xdoc.separator="blank"> + <name>modules</name> + <version>4.0.0+</version> + <description>The modules (sometimes called subprojects) to build as a part of this + project. Each module listed is a relative path to the directory containing the module. + To be consistent with the way default urls are calculated from parent, it is recommended + to have module names match artifact ids.</description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field xdoc.separator="blank"> + <name>distributionManagement</name> + <version>4.0.0+</version> + <description>Distribution information for a project that enables deployment of the site + and artifacts to remote web servers and repositories respectively.</description> + <association> + <type>DistributionManagement</type> + </association> + </field> + <field xdoc.separator="blank"> + <name>properties</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Properties that can be used throughout the POM as a substitution, and + are used as filters in resources if enabled. + The format is <code><name>value</name></code>. + ]]> + </description> + <type>Properties</type> + <association xml.mapStyle="inline"> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field xdoc.separator="blank"> + <name>dependencyManagement</name> + <version>4.0.0+</version> + <required>false</required> + <description>Default dependency information for projects that inherit from this one. The + dependencies in this section are not immediately resolved. Instead, when a POM derived + from this one declares a dependency described by a matching groupId and artifactId, the + version and other values from this section are used for that dependency if they were not + already specified.</description> + <association> + <type>DependencyManagement</type> + </association> + </field> + <field> + <name>dependencies</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + This element describes all of the dependencies associated with a + project. + These dependencies are used to construct a classpath for your + project during the build process. They are automatically downloaded from the + repositories defined in this project. + See <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the + dependency mechanism</a> for more information. + ]]> + </description> + <association> + <type>Dependency</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field xdoc.separator="blank"> + <name>repositories</name> + <version>4.0.0+</version> + <description>The lists of the remote repositories for discovering dependencies and + extensions.</description> + <association> + <type>Repository</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>pluginRepositories</name> + <version>4.0.0+</version> + <description>The lists of the remote repositories for discovering plugins for builds and + reports.</description> + <association> + <type>Repository</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field xdoc.separator="blank"> + <name>reports</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + <b>Deprecated</b>. Now ignored by Maven. + ]]> + </description> + <type>DOM</type> + </field> + <field> + <name>reporting</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + This element includes the specification of report plugins to use + to generate the reports on the Maven-generated site. + These reports will be run when a user executes <code>mvn site</code>. + All of the reports will be included in the navigation bar for browsing. + ]]> + </description> + <association> + <type>Reporting</type> + </association> + </field> + </fields> + </class> + <class> + <name>Branch</name> + <version>3.0.0</version> + <description>Contains information on the SCM branches of the project.</description> + <fields> + <field> + <name>tag</name> + <version>3.0.0</version> + <required>true</required> + <description>The branch tag in the version control system (e.g. cvs) used by the project + for the source code associated with this branch of the project.</description> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>PluginContainer</name> + <version>3.0.0+</version> + <description>Contains the plugins informations for the project.</description> + <fields> + <field> + <name>plugins</name> + <version>4.0.0+</version> + <description>The list of plugins to use.</description> + <association> + <type>Plugin</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + java.util.Map<String, Plugin> pluginMap; + + /** + * Reset the <code>pluginsMap</code> field to <code>null</code> + */ + public synchronized void flushPluginMap() + { + this.pluginMap = null; + } + + /** + * @return a Map of plugins field with <code>Plugins#getKey()</code> as key + * @see org.apache.maven.model.Plugin#getKey() + */ + public synchronized java.util.Map<String, Plugin> getPluginsAsMap() + { + if ( pluginMap == null ) + { + pluginMap = new java.util.LinkedHashMap<String, Plugin>(); + if ( plugins != null ) + { + for ( java.util.Iterator<Plugin> it = plugins.iterator(); it.hasNext(); ) + { + Plugin plugin = (Plugin) it.next(); + pluginMap.put( plugin.getKey(), plugin ); + } + } + } + + return pluginMap; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class> + <name>PluginConfiguration</name> + <version>3.0.0+</version> + <superClass>PluginContainer</superClass> + <description>Contains the plugins management informations for the project.</description> + <fields> + <!-- [ jdcasey:06-Mar-2005 ] Added to handle version management, etc. for + | plugins to be used in sub-projects. --> + <field> + <name>pluginManagement</name> + <version>4.0.0+</version> + <required>false</required> + <description>Default plugin information to be made available for reference by projects + derived from this one. This plugin configuration will not be resolved or bound to the + lifecycle unless referenced. Any local configuration for a given plugin will override + the plugin's entire definition here.</description> + <association> + <type>PluginManagement</type> + </association> + </field> + </fields> + </class> + <class> + <name>BuildBase</name> + <version>3.0.0+</version> + <superClass>PluginConfiguration</superClass> + <description>Generic informations for a build.</description> + <fields> + <field> + <name>defaultGoal</name> + <version>3.0.0+</version> + <description>The default goal (or phase in Maven 2) to execute when none is specified for + the project. Note that in case of a multi-module build, only the default goal of the top-level + project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3, + multiple goals/phases can be separated by whitespace.</description> + <type>String</type> + </field> + <field> + <name>resources</name> + <version>3.0.0+</version> + <description>This element describes all of the classpath resources such as properties + files associated with a project. These resources are often included in the final + package.</description> + <association> + <type>Resource</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>testResources</name> + <version>4.0.0+</version> + <description>This element describes all of the classpath resources such as properties + files associated with a project's unit tests.</description> + <association> + <type>Resource</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>directory</name> + <version>4.0.0+</version> + <description>The directory where all files generated by the build are placed.</description> + <type>String</type> + </field> + <field> + <name>finalName</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The filename (excluding the extension, and with no path information) that + the produced artifact will be called. + The default value is <code>${artifactId}-${version}</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>filters</name> + <version>4.0.0+</version> + <description>The list of filter properties files that are used when filtering is enabled.</description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + </class> + <class> + <name>Build</name> + <version>3.0.0+</version> + <superClass>BuildBase</superClass> + <description> + <![CDATA[ + The <code><build></code> element contains informations required to build the project. + ]]> + </description> + <fields> + <field> + <name>nagEmailAddress</name> + <version>3.0.0</version> + <description>An address to which notifications regarding the status of builds for this + project can be sent. This is intended for use by tools which do unattended builds, for + example those providing for continuous integration.</description> + <type>String</type> + </field> + <field> + <name>sourceDirectory</name> + <version>3.0.0+</version> + <required>true</required> + <description>This element specifies a directory containing the source of the project. The + generated build system will compile the source in this directory when the project is + built. The path given is relative to the project descriptor.</description> + <type>String</type> + </field> + <field> + <name>scriptSourceDirectory</name> + <version>4.0.0+</version> + <required>true</required> + <description>This element specifies a directory containing the script sources of the + project. This directory is meant to be different from the sourceDirectory, in that its + contents will be copied to the output directory in most cases (since scripts are + interpreted rather than compiled).</description> + <type>String</type> + </field> + <field> + <name>unitTestSourceDirectory</name> + <version>3.0.0</version> + <required>true</required> + <description>This element specifies a directory containing the unit test source of the + project. The generated build system will compile these directories when the project is + being tested. The path given is relative to the project descriptor.</description> + <type>String</type> + </field> + <field> + <name>testSourceDirectory</name> + <version>4.0.0+</version> + <required>true</required> + <description>This element specifies a directory containing the unit test source of the + project. The generated build system will compile these directories when the project is + being tested. The path given is relative to the project descriptor.</description> + <type>String</type> + </field> + <field> + <name>aspectSourceDirectory</name> + <version>3.0.0</version> + <description>This element specifies a directory containing Aspect sources of the project. + The generated build system will compile the Aspects in this directory when the project + is built if Aspects have been enabled. The path given is relative to the project + descriptor.</description> + <type>String</type> + </field> + <field> + <name>integrationUnitTestSourceDirectory</name> + <version>3.0.0</version> + <description> + <![CDATA[ + This element is <b>deprecated</b> and should no longer be used. + Initially it was used by the first Cactus plugin. Now + the location of the Cactus test sources is defined + through a plugin property. See the Cactus plugin + <a href="http://jakarta.apache.org/cactus/integration/maven/properties.html">properties</a> + page. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>sourceModifications</name> + <version>3.0.0</version> + <required>true</required> + <description>This element describes all of the sourceModifications associated with a + project. These modifications are used to exclude or include various source depending on + the environment the build is running in.</description> + <association> + <type>SourceModification</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>unitTest</name> + <version>3.0.0</version> + <required>true</required> + <description>This element specifies unit tests associated with the project.</description> + <defaultValue>new UnitTest()</defaultValue> + <association> + <type>UnitTest</type> + </association> + </field> + <field> + <name>outputDirectory</name> + <version>4.0.0+</version> + <description>The directory where compiled application classes are placed.</description> + <type>String</type> + </field> + <field> + <name>testOutputDirectory</name> + <version>4.0.0+</version> + <description>The directory where compiled test classes are placed.</description> + <type>String</type> + </field> + <field> + <name>extensions</name> + <version>4.0.0+</version> + <description>A set of build extensions to use from this project.</description> + <association> + <type>Extension</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>CiManagement</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The <code><CiManagement></code> element contains informations required to the + continuous integration system of the project. + ]]> + </description> + <fields> + <field> + <name>system</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The name of the continuous integration system, e.g. <code>continuum</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>4.0.0+</version> + <description>URL for the continuous integration system used by the project if it has a web + interface.</description> + <type>String</type> + </field> + <field> + <name>notifiers</name> + <version>4.0.0+</version> + <description>Configuration for notifying developers/users when a build is unsuccessful, + including user information and notification mode.</description> + <association> + <multiplicity>*</multiplicity> + <type>Notifier</type> + </association> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>Notifier</name> + <description>Configures one method for notifying users/developers when a build breaks.</description> + <version>4.0.0+</version> + <fields> + <field> + <name>type</name> + <version>4.0.0+</version> + <defaultValue>mail</defaultValue> + <type>String</type> + <description>The mechanism used to deliver notifications.</description> + </field> + <field> + <name>sendOnError</name> + <version>4.0.0+</version> + <defaultValue>true</defaultValue> + <type>boolean</type> + <description>Whether to send notifications on error.</description> + </field> + <field> + <name>sendOnFailure</name> + <version>4.0.0+</version> + <defaultValue>true</defaultValue> + <type>boolean</type> + <description>Whether to send notifications on failure.</description> + </field> + <field> + <name>sendOnSuccess</name> + <version>4.0.0+</version> + <defaultValue>true</defaultValue> + <type>boolean</type> + <description>Whether to send notifications on success.</description> + </field> + <field> + <name>sendOnWarning</name> + <version>4.0.0+</version> + <defaultValue>true</defaultValue> + <type>boolean</type> + <description>Whether to send notifications on warning.</description> + </field> + <!-- TODO: Remove it after continuum alpha-3 release --> + <field> + <name>address</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + <b>Deprecated</b>. Where to send the notification to - eg email address. + ]]> + </description> + </field> + <field> + <name>configuration</name> + <description>Extended configuration specific to this notifier goes here.</description> + <type>Properties</type> + <association xml.mapStyle="inline"> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>Contributor</name> + <description>Description of a person who has contributed to the project, but who does not have + commit privileges. Usually, these contributions come in the form of patches submitted.</description> + <version>3.0.0+</version> + <fields> + <field> + <name>name</name> + <version>3.0.0+</version> + <description>The full name of the contributor.</description> + <type>String</type> + </field> + <field> + <name>email</name> + <version>3.0.0+</version> + <description>The email address of the contributor.</description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>3.0.0+</version> + <description>The URL for the homepage of the contributor.</description> + <type>String</type> + </field> + <!-- TODO: should this just be a single Organization element --> + <field> + <name>organization</name> + <alias>organisation</alias> + <version>3.0.0+</version> + <description>The organization to which the contributor belongs.</description> + <type>String</type> + </field> + <field> + <name>organizationUrl</name> + <alias>organisationUrl</alias> + <version>3.0.0+</version> + <description>The URL of the organization.</description> + <type>String</type> + </field> + <field> + <name>roles</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The roles the contributor plays in the project. Each role is described by a + <code>role</code> element, the body of which is a role name. This can also be used to + describe the contribution. + ]]> + </description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>timezone</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The timezone the contributor is in. Typically, this is a number in the range + <a href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a> to <a href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a> + or a valid time zone id like "America/Montreal" (UTC-05:00) or "Europe/Paris" (UTC+01:00). + ]]> + </description> + <type>String</type> + </field> + <field> + <name>properties</name> + <version>3.0.0+</version> + <description>Properties about the contributor, such as an instant messenger handle.</description> + <type>Properties</type> + <association xml.mapStyle="inline"> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>Dependency</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The <code><dependency></code> element contains information about a dependency + of the project. + ]]> + </description> + <fields> + <field> + <name>id</name> + <version>3.0.0</version> + <required>true</required> + <description> + <![CDATA[ + <b>Deprecated</b>. Please use <code>groupId</code> and + <code>artifactId</code> together instead. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>groupId</name> + <version>3.0.0+</version> + <required>true</required> + <description> + <![CDATA[ + The project group that produced the dependency, e.g. + <code>org.apache.maven</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>artifactId</name> + <version>3.0.0+</version> + <required>true</required> + <description> + <![CDATA[ + The unique id for an artifact produced by the project group, e.g. + <code>maven-artifact</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>version</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The version of the dependency, e.g. <code>3.2.1</code>. In Maven 2, this can also be + specified as a range of versions. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>3.0.0</version> + <description>This url will be provided to the user if the jar file cannot be downloaded + from the central repository.</description> + <type>String</type> + </field> + <field> + <name>jar</name> + <version>3.0.0</version> + <description>Literal name of the artifact in the repository. Used to override the + calculated artifact name.</description> + <type>String</type> + </field> + <field> + <name>type</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The type of dependency. While it + usually represents the extension on the filename of the dependency, + that is not always the case. + Some examples are <code>jar</code>, <code>war</code>, and <code>plugin</code>. + A dependency of type <code>plugin</code> is loaded as a Maven plugin and + not added to the project build classpath. + ]]> + </description> + <type>String</type> + <defaultValue>jar</defaultValue> + </field> + <field> + <name>type</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The type of dependency. While it + usually represents the extension on the filename of the dependency, + that is not always the case. A type can be mapped to a different + extension and a classifier. + The type often corresponds to the packaging used, though this is also + not always the case. + Some examples are <code>jar</code>, <code>war</code>, <code>ejb-client</code> + and <code>test-jar</code>: see <a href="../maven-core/artifact-handlers.html">default + artifact handlers</a> for a list. + New types can be defined by plugins that set + <code>extensions</code> to <code>true</code>, so this is not a complete list. + ]]> + </description> + <type>String</type> + <defaultValue>jar</defaultValue> + </field> + <field> + <name>classifier</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The classifier of the dependency. It is appended to + the filename after the version. This allows: + <ul> + <li>refering to attached artifact, for example <code>sources</code> and <code>javadoc</code>: + see <a href="../maven-core/artifact-handlers.html">default artifact handlers</a> for a list,</li> + <li>distinguishing two artifacts + that belong to the same POM but were built differently. + For example, <code>jdk14</code> and <code>jdk15</code>.</li> + </ul> + ]]> + </description> + <type>String</type> + <required>false</required> + </field> + <field> + <name>properties</name> + <version>3.0.0</version> + <description> + <![CDATA[ + Properties about the dependency. Various plugins allow you to + mark dependencies with properties. For example the war plugin looks for a + <code>war.bundle</code> property, and if found will include the + dependency in <code>WEB-INF/lib</code>. + ]]> + </description> + <type>Properties</type> + <association xml.mapStyle="inline"> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>scope</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The scope of the dependency - <code>compile</code>, <code>runtime</code>, + <code>test</code>, <code>system</code>, and <code>provided</code>. Used to + calculate the various classpaths used for compilation, testing, and so on. + It also assists in determining which artifacts to include in a distribution of + this project. For more information, see + <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the + dependency mechanism</a>. + ]]> + </description> + <type>String</type> + <!-- This default has to be enforced at the maven-artifact layer, to allow + | injection of defaults from <dependencyManagement/>. + | TODO: how can we document it? + |--> + <!-- defaultValue>compile</defaultValue --> + </field> + <field> + <name>systemPath</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + FOR SYSTEM SCOPE ONLY. Note that use of this property is <b>discouraged</b> + and may be replaced in later versions. This specifies the path on the filesystem + for this dependency. + Requires an absolute path for the value, not relative. + Use a property that gives the machine specific absolute path, + e.g. <code>${java.home}</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>exclusions</name> + <version>4.0.0+</version> + <description>Lists a set of artifacts that should be excluded from this dependency's + artifact list when it comes to calculating transitive dependencies.</description> + <association> + <type>Exclusion</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>optional</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Indicates the dependency is optional for use of this library. While the + version of the dependency will be taken into account for dependency calculation if the + library is used elsewhere, it will not be passed on transitively. Note: While the type + of this field is <code>String</code> for technical reasons, the semantic type is actually + <code>Boolean</code>. Default value is <code>false</code>. + ]]> + </description> + <type>String</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>3.0.0</version> + <code> + <![CDATA[ + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + return groupId + "/" + type + "s:" + artifactId + "-" + version; + } + ]]> + </code> + </codeSegment> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + public boolean isOptional() + { + return ( optional != null ) ? Boolean.parseBoolean( optional ) : false; + } + + public void setOptional( boolean optional ) + { + this.optional = String.valueOf( optional ); + } + + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + return "Dependency {groupId=" + groupId + ", artifactId=" + artifactId + ", version=" + version + ", type=" + type + "}"; + } + ]]> + </code> + </codeSegment> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + private String managementKey; + + /** + * @return the management key as <code>groupId:artifactId:type</code> + */ + public String getManagementKey() + { + if ( managementKey == null ) + { + managementKey = groupId + ":" + artifactId + ":" + type + ( classifier != null ? ":" + classifier : "" ); + } + return managementKey; + } + ]]> + </code> + </codeSegment> + <codeSegment> + <version>3.0.0</version> + <code> + <![CDATA[ + /** + * @return the key as <code>id:type</code> + */ + public String getKey() + { + return getId() + ":" + getType(); + } + + /** + * @return the groupId as artifact directory + */ + public String getArtifactDirectory() + { + return getGroupId(); + } + + /** + * @return the artifact name as <code>artifactId-version.extension</code> if <jar/> not set + */ + public String getArtifact() + { + // If the jar name has been explicty set then use that. This + // is when the <jar/> element is explicity used in the POM. + if ( getJar() != null) + { + return getJar(); + } + + String artifact; + + if ("ejb-client".equals(getType())) { + artifact = getArtifactId() + "-" + getVersion() + "-client." + getExtension(); + } else { + artifact = getArtifactId() + "-" + getVersion() + "." + getExtension(); + } + + return artifact; + } + + public String getTypeDirectory() + { + String path; + if (getType().equals("ejb-client")) { + path = "ejbs"; + } else { + path = getType() + "s"; + } + + return path; + } + + public String getExtension() + { + if ("ejb".equals(getType()) || "ejb-client".equals(getType()) || "plugin".equals(getType()) || "aspect".equals(getType()) || "uberjar".equals(getType())) return "jar"; + return getType(); + } + + public boolean isAddedToClasspath() + { + return ("jar".equals(getType()) || "ejb".equals(getType()) || "ejb-client".equals(getType()) || "sar".equals(getType())); + } + + public boolean isPlugin() + { + return ("plugin".equals(getType())); + } + + public String getProperty( String property ) + { + return getProperties().getProperty( property ); + } + + /** + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals( Object o ) + { + if ( this == o ) + { + return true; + } + + if ( !( o instanceof Dependency ) ) + { + return false; + } + + Dependency d = (Dependency) o; + return getId().equals( d.getId() ); + } + + /** + * @see java.lang.Object#hashCode() + */ + public int hashCode() + { + return getId().hashCode(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class> + <superClass>Contributor</superClass> + <name>Developer</name> + <description>Information about one of the committers on this project.</description> + <version>3.0.0+</version> + <fields> + <field> + <name>id</name> + <version>3.0.0+</version> + <description>The unique ID of the developer in the SCM.</description> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>Exclusion</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The <code><exclusion></code> element contains informations required to exclude + an artifact to the project. + ]]> + </description> + <fields> + <field> + <name>artifactId</name> + <version>4.0.0+</version> + <description>The artifact ID of the project to exclude.</description> + <type>String</type> + <required>true</required> + </field> + <field> + <name>groupId</name> + <version>4.0.0+</version> + <description>The group ID of the project to exclude.</description> + <type>String</type> + <required>true</required> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>IssueManagement</name> + <description>Information about the issue tracking (or bug tracking) system used to manage this + project.</description> + <version>4.0.0+</version> + <fields> + <field> + <name>system</name> + <version>4.0.0+</version> + <description>The name of the issue management system, e.g. Bugzilla</description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>4.0.0+</version> + <description>URL for the issue management system used by the project.</description> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>DistributionManagement</name> + <version>4.0.0+</version> + <description>This elements describes all that pertains to distribution for a project. It is + primarily used for deployment of artifacts and the site produced by the build.</description> + <fields> + <field> + <name>repository</name> + <version>4.0.0+</version> + <description>Information needed to deploy the artifacts generated by the project to a + remote repository.</description> + <association> + <type>DeploymentRepository</type> + </association> + </field> + <field> + <name>snapshotRepository</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Where to deploy snapshots of artifacts to. If not given, it defaults to the + <code>repository</code> element. + ]]> + </description> + <association> + <type>DeploymentRepository</type> + </association> + </field> + <field> + <name>site</name> + <description>Information needed for deploying the web site of the project.</description> + <version>4.0.0+</version> + <association> + <type>Site</type> + </association> + </field> + <field> + <name>downloadUrl</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The URL of the project's download page. If not given users will be + referred to the homepage given by <code>url</code>. + This is given to assist in locating artifacts that are not in the repository due to + licensing restrictions. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>relocation</name> + <version>4.0.0+</version> + <description>Relocation information of the artifact if it has been moved to a new group ID + and/or artifact ID.</description> + <association> + <type>Relocation</type> + </association> + </field> + <field> + <name>status</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Gives the status of this artifact in the remote repository. + This must not be set in your local project, as it is updated by + tools placing it in the reposiory. Valid values are: <code>none</code> (default), + <code>converted</code> (repository manager converted this from an Maven 1 POM), + <code>partner</code> + (directly synced from a partner Maven 2 repository), <code>deployed</code> (was deployed from a Maven 2 + instance), <code>verified</code> (has been hand verified as correct and final). + ]]> + </description> + <required>false</required> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>License</name> + <description>Describes the licenses for this project. This is used to generate the license + page of the project's web site, as well as being taken into consideration in other reporting + and validation. The licenses listed for the project are that of the project itself, and not + of dependencies.</description> + <version>3.0.0+</version> + <fields> + <field> + <name>name</name> + <version>3.0.0+</version> + <description>The full legal name of the license.</description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>3.0.0+</version> + <description>The official url for the license text.</description> + <type>String</type> + </field> + <field> + <name>distribution</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The primary method by which this project may be distributed. + <dl> + <dt>repo</dt> + <dd>may be downloaded from the Maven repository</dd> + <dt>manual</dt> + <dd>user must manually download and install the dependency.</dd> + </dl> + ]]> + </description> + <type>String</type> + </field> + <field> + <name>comments</name> + <description>Addendum information pertaining to this license.</description> + <version>3.0.0+</version> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>MailingList</name> + <version>3.0.0+</version> + <description>This element describes all of the mailing lists associated with a project. The + auto-generated site references this information.</description> + <fields> + <field> + <name>name</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The name of the mailing list. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>subscribe</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The email address or link that can be used to subscribe to + the mailing list. If this is an email address, a + <code>mailto:</code> link will automatically be created + when the documentation is created. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>unsubscribe</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The email address or link that can be used to unsubscribe to + the mailing list. If this is an email address, a + <code>mailto:</code> link will automatically be created + when the documentation is created. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>post</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + The email address or link that can be used to post to + the mailing list. If this is an email address, a + <code>mailto:</code> link will automatically be created + when the documentation is created. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>archive</name> + <version>3.0.0+</version> + <description>The link to a URL where you can browse the mailing list archive.</description> + <type>String</type> + </field> + <field> + <name>otherArchives</name> + <version>3.0.0+</version> + <description>The link to alternate URLs where you can browse the list archive.</description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <comment>We could probably have a specific element for a dev mailing list for things like CI, + and maybe even a specific element for the user and scm mailing lists. Then leave the more + lose structure for any other type of mailing list.</comment> + </class> + <class java.clone="deep"> + <name>Organization</name> + <description>Specifies the organization that produces this project.</description> + <version>3.0.0+</version> + <fields> + <field> + <name>name</name> + <version>3.0.0+</version> + <description>The full name of the organization.</description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>3.0.0+</version> + <description>The URL to the organization's home page.</description> + <type>String</type> + </field> + <field> + <name>logo</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The URL to the organization's logo image. This can be an URL relative + to the base directory of the generated web site, + (e.g., <code>/images/org-logo.png</code>) or an absolute URL + (e.g., <code>http://my.corp/logo.png</code>). This value is used + when generating the project documentation. + ]]> + </description> + <type>String</type> + </field> + </fields> + </class> + <class> + <name>PackageGroup</name> + <version>3.0.0</version> + <description>A JavaDoc package group.</description> + <fields> + <field> + <name>title</name> + <version>3.0.0</version> + <description>The title to use for the package group.</description> + <type>String</type> + </field> + <field> + <name>packages</name> + <version>3.0.0</version> + <description>The packages in the group</description> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>PatternSet</name> + <version>3.0.0+</version> + <description>Definition of include or exclude patterns.</description> + <fields> + <field> + <name>includes</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + A list of patterns to include, e.g. <code>**/*.xml</code>. + ]]> + </description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>excludes</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + A list of patterns to exclude, e.g. <code>**/*.xml</code> + ]]> + </description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + StringBuilder sb = new StringBuilder( 128 ); + + sb.append("PatternSet [includes: {"); + for (java.util.Iterator i = getIncludes().iterator(); i.hasNext(); ) + { + String str = (String) i.next(); + sb.append(str).append(", "); + } + if (sb.substring(sb.length() - 2).equals(", ")) sb.delete(sb.length() - 2, sb.length()); + + sb.append("}, excludes: {"); + for (java.util.Iterator i = getExcludes().iterator(); i.hasNext(); ) + { + String str = (String) i.next(); + sb.append(str).append(", "); + } + if (sb.substring(sb.length() - 2).equals(", ")) sb.delete(sb.length() - 2, sb.length()); + + sb.append("}]"); + return sb.toString(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class java.clone="deep"> + <name>Parent</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The <code><parent></code> element contains information required to locate the parent project from which + this project will inherit from. + <strong>Note:</strong> The children of this element are not interpolated and must be given as literal values. + ]]> + </description> + <fields> + <field> + <name>groupId</name> + <version>4.0.0+</version> + <description>The group id of the parent project to inherit from.</description> + <required>true</required> + <type>String</type> + </field> + <field> + <name>artifactId</name> + <version>4.0.0+</version> + <description>The artifact id of the parent project to inherit from.</description> + <required>true</required> + <type>String</type> + </field> + <field> + <name>version</name> + <version>4.0.0+</version> + <description>The version of the parent project to inherit.</description> + <type>String</type> + </field> + <field> + <name>relativePath</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The relative path of the parent <code>pom.xml</code> file within the check out. + If not specified, it defaults to <code>../pom.xml</code>. + Maven looks for the parent POM first in this location on + the filesystem, then the local repository, and lastly in the remote repo. + <code>relativePath</code> allows you to select a different location, + for example when your structure is flat, or deeper without an intermediate parent POM. + However, the group ID, artifact ID and version are still required, + and must match the file in the location given or it will revert to the repository for the POM. + This feature is only for enhancing the development in a local checkout of that project. + Set the value to an empty string in case you want to disable the feature and always resolve + the parent POM from the repositories. + ]]> + </description> + <type>String</type> + <defaultValue>../pom.xml</defaultValue> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + /** + * @return the id as <code>groupId:artifactId:version</code> + */ + public String getId() + { + StringBuilder id = new StringBuilder( 64 ); + + id.append( getGroupId() ); + id.append( ":" ); + id.append( getArtifactId() ); + id.append( ":" ); + id.append( "pom" ); + id.append( ":" ); + id.append( getVersion() ); + + return id.toString(); + } + + @Override + public String toString() + { + return getId(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + + </class> + <class> + <name>Repository</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The <code><repository></code> element contains informations required to a repository + used by the project. + ]]> + </description> + <fields> + <field> + <name>connection</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The source control management system URL + that describes the repository and how to connect to the + repository. For more information, see the + <a href="http://maven.apache.org/scm/scm-url-format.html">URL format</a> + and <a href="http://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>. + This connection is read-only. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>developerConnection</name> + <version>3.0.0</version> + <description> + <![CDATA[ + Just like <code>connection</code>, but for developers, i.e. this scm connection + will not be read only. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>3.0.0</version> + <description>The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.</description> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>Scm</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The <code><scm></code> element contains informations required to the SCM + (Source Control Management) of the project. + ]]> + </description> + <fields> + <field> + <name>connection</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The source control management system URL + that describes the repository and how to connect to the + repository. For more information, see the + <a href="http://maven.apache.org/scm/scm-url-format.html">URL format</a> + and <a href="http://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>. + This connection is read-only. + <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId + ]]> + </description> + <type>String</type> + </field> + <field> + <name>developerConnection</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Just like <code>connection</code>, but for developers, i.e. this scm connection + will not be read only. + <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId + ]]> + </description> + <type>String</type> + </field> + <field> + <name>tag</name> + <version>4.0.0+</version> + <description>The tag of current code. By default, it's set to HEAD during development.</description> + <type>String</type> + <defaultValue>HEAD</defaultValue> + </field> + <field> + <name>url</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The URL to the project's browsable SCM repository, such as ViewVC or Fisheye. + <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId + ]]> + </description> + <type>String</type> + </field> + </fields> + </class> + <class> + <name>FileSet</name> + <version>3.0.0+</version> + <superClass>PatternSet</superClass> + <description>A PatternSet for files.</description> + <fields> + <field> + <name>directory</name> + <version>3.0.0+</version> + <description>Describe the directory where the resources are stored. The path is relative + to the POM.</description> + <type>String</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + return "FileSet {directory: " + getDirectory() + ", " + super.toString() + "}"; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class> + <name>Resource</name> + <description>This element describes all of the classpath resources associated with a project + or unit tests.</description> + <version>3.0.0+</version> + <superClass>FileSet</superClass> + <fields> + <field> + <name>targetPath</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + Describe the resource target path. The path is relative to the target/classes + directory (i.e. <code>${project.build.outputDirectory}</code>). + For example, if you want that resource to appear in a specific package + (<code>org.apache.maven.messages</code>), you must specify this + element with this value: <code>org/apache/maven/messages</code>. + This is not required if you simply put the resources in that directory + structure at the source, however. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>filtering</name> + <version>3.0.0+</version> + <description> + <![CDATA[ + Whether resources are filtered to replace tokens with parameterised values or not. + The values are taken from the <code>properties</code> element and from the + properties in the files listed in the <code>filters</code> element. Note: While the type + of this field is <code>String</code> for technical reasons, the semantic type is actually + <code>Boolean</code>. Default value is <code>false</code>. + ]]> + </description> + <type>String</type> + </field> + <field xml.transient="true"> + <name>mergeId</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + FOR INTERNAL USE ONLY. This is a unique identifier assigned to each + resource to allow Maven to merge changes to this resource that take + place during the execution of a plugin. This field must be managed + by the generated parser and formatter classes in order to allow it + to survive model interpolation. + ]]> + </description> + <type>String</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + private static int mergeIdCounter = 0; + + public void initMergeId() + { + if ( getMergeId() == null ) + { + setMergeId( "resource-" + (mergeIdCounter++) ); + } + } + + public boolean isFiltering() + { + return ( filtering != null ) ? Boolean.parseBoolean( filtering ) : false; + } + + public void setFiltering( boolean filtering ) + { + this.filtering = String.valueOf( filtering ); + } + + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + return "Resource {targetPath: " + getTargetPath() + ", filtering: " + isFiltering() + ", " + super.toString() + "}"; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class> + <name>SourceModification</name> + <description>This element describes all of the source modifications associated with a project. + These modifications are used to exclude or include various source depending on the + environment the build is running in.</description> + <version>3.0.0</version> + <superClass>FileSet</superClass> + <fields> + <field> + <name>className</name> + <version>3.0.0</version> + <description> + <![CDATA[ + If the class with this name can <b>not</b> be + loaded, then the includes and excludes specified below + will be applied to the contents of the <code>sourceDirectory</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>property</name> + <version>3.0.0</version> + <description> + <![CDATA[ + If the property with this name is <b>not</b> set, + then the includes and excludes specified below + will be applied to the contents of the <code>sourceDirectory</code>. + ]]> + </description> + <type>String</type> + </field> + </fields> + </class> + <class> + <name>UnitTest</name> + <version>3.0.0</version> + <superClass>PatternSet</superClass> + <description>A PatternSet for unit tests.</description> + <fields> + <field> + <name>resources</name> + <version>3.0.0</version> + <description>The classpath resources to use when executing the unit tests.</description> + <association> + <type>Resource</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + </class> + <class> + <name>Version</name> + <version>3.0.0</version> + <description> + <![CDATA[ + This element describes each of the previous versions of the + project. Each version is described by a <code>version</code> + element + ]]> + </description> + <fields> + <field> + <name>name</name> + <version>3.0.0</version> + <description> + <![CDATA[ + The external version number under which this release was distributed. Examples include: + <code>1.0</code>, + <code>1.1-alpha1</code>, + <code>1.2-beta</code>, + <code>1.3.2</code> etc. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>tag</name> + <version>3.0.0</version> + <description>The name given in the SCM (e.g. CVS) used by the project for the source code + associated with this version of the project.</description> + <type>String</type> + </field> + <field> + <name>id</name> + <version>3.0.0</version> + <description>A unique identifier for a version. This is usually identical to the name.</description> + <type>String</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>3.0.0</version> + <code> + <![CDATA[ + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + return getId(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + + <class java.clone="deep"> + <name>RepositoryBase</name> + <version>4.0.0+</version> + <description>A repository contains the information needed for establishing connections with + remote repository.</description> + <fields> + <field> + <name>id</name> + <version>4.0.0+</version> + <required>true</required> + <identifier>true</identifier> + <description> + <![CDATA[ + A unique identifier for a repository. This is used to match the repository + to configuration in the <code>settings.xml</code> file, for example. Furthermore, the identifier is + used during POM inheritance and profile injection to detect repositories that should be merged. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>name</name> + <version>4.0.0+</version> + <description>Human readable name of the repository.</description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>4.0.0+</version> + <required>true</required> + <description> + <![CDATA[ + The url of the repository, in the form <code>protocol://hostname/path</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>layout</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The type of layout this repository uses for locating and storing artifacts - + can be <code>legacy</code> or <code>default</code>. + ]]> + </description> + <type>String</type> + <defaultValue>default</defaultValue> + </field> + </fields> + </class> + + <class> + <name>Repository</name> + <superClass>RepositoryBase</superClass> + <version>4.0.0+</version> + <description>A repository contains the information needed for establishing connections with + remote repository.</description> + <fields> + <field> + <name>releases</name> + <version>4.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>4.0.0+</version> + <description>How to handle downloading of snapshots from this repository.</description> + <association> + <type>RepositoryPolicy</type> + </association> + </field> + </fields> + </class> + + <class> + <name>DeploymentRepository</name> + <superClass>Repository</superClass> + <version>4.0.0+</version> + <description>Repository contains the information needed for deploying to the remote + repository.</description> + <fields> + <field> + <name>uniqueVersion</name> + <description>Whether to assign snapshots a unique version comprised of the timestamp and + build number, or to use the same version each time</description> + <type>boolean</type> + <defaultValue>true</defaultValue> + <version>4.0.0+</version> + </field> + </fields> + </class> + + <class java.clone="deep"> + <name>RepositoryPolicy</name> + <version>4.0.0+</version> + <description>Download policy.</description> + <fields> + <field> + <name>enabled</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Whether to use this repository for downloading this type of artifact. Note: While the type + of this field is <code>String</code> for technical reasons, the semantic type is actually + <code>Boolean</code>. Default value is <code>true</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>updatePolicy</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The frequency for downloading updates - can be + <code>always,</code> + <code>daily</code> + (default), + <code>interval:XXX</code> + (in minutes) or + <code>never</code> + (only if it doesn't exist locally). + ]]> + </description> + <type>String</type> + </field> + <field> + <name>checksumPolicy</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + What to do when verification of an artifact checksum fails. Valid values are + <code>ignore</code> + , + <code>fail</code> + or + <code>warn</code> + (the default). + ]]> + </description> + <type>String</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + + public boolean isEnabled() + { + return ( enabled != null ) ? Boolean.parseBoolean( enabled ) : true; + } + + public void setEnabled( boolean enabled ) + { + this.enabled = String.valueOf( enabled ); + } + + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + + <!--@todo find better solution for management of site deployments --> + <class java.clone="deep"> + <name>Site</name> + <version>4.0.0+</version> + <description>Contains the information needed for deploying websites.</description> + <fields> + <field> + <name>id</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + A unique identifier for a deployment location. This is used to match the + site to configuration in the <code>settings.xml</code> file, for example. + ]]> + </description> + <type>String</type> + </field> + <field> + <name>name</name> + <version>4.0.0+</version> + <description>Human readable name of the deployment location.</description> + <type>String</type> + </field> + <field> + <name>url</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + The url of the location where website is deployed, in the form <code>protocol://hostname/path</code>. + <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId + ]]> + </description> + <type>String</type> + </field> + </fields> + </class> + + <class java.clone="deep"> + <name>ConfigurationContainer</name> + <version>4.0.0+</version> + <description>Contains the configuration information of the container like Plugin.</description> + <fields> + <field> + <name>inherited</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Whether any configuration should be propagated to child POMs. Note: While the type + of this field is <code>String</code> for technical reasons, the semantic type is actually + <code>Boolean</code>. Default value is <code>true</code>. + ]]> + </description> + <type>String</type> + </field> + <field> + <description> + <![CDATA[ + <p>The configuration as DOM object.</p> + <p>By default, every element content is trimmed, but starting with Maven 3.1.0, you can add + <code>xml:space="preserve"</code> to elements you want to preserve whitespace.</p> + <p>You can control how child POMs inherit configuration from parent POMs by adding <code>combine.children</code> + or <code>combine.self</code> attributes to the children of the configuration element:</p> + <ul> + <li><code>combine.children</code>: available values are <code>merge</code> (default) and <code>append</code>,</li> + <li><code>combine.self</code>: available values are <code>merge</code> (default) and <code>override</code>.</li> + </ul> + <p>See <a href="http://maven.apache.org/pom.html#Plugins">POM Reference documentation</a> and + <a href="http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">Xpp3DomUtils</a> + for more information.</p> + ]]> + </description> + <name>configuration</name> + <type>DOM</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + public boolean isInherited() + { + return ( inherited != null ) ? Boolean.parseBoolean( inherited ) : true; + } + + public void setInherited( boolean inherited ) + { + this.inherited = String.valueOf( inherited ); + } + + private boolean inheritanceApplied = true; + + public void unsetInheritanceApplied() + { + this.inheritanceApplied = false; + } + + public boolean isInheritanceApplied() + { + return inheritanceApplied; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class> + <name>Plugin</name> + <version>4.0.0+</version> + <superClass>ConfigurationContainer</superClass> + <description> + <![CDATA[ + The <code><plugin></code> element contains informations required for a plugin. + ]]> + </description> + <fields> + <field> + <name>groupId</name> + <description>The group ID of the plugin in the repository.</description> + <version>4.0.0+</version> + <type>String</type> + <defaultValue>org.apache.maven.plugins</defaultValue> + </field> + <field> + <name>artifactId</name> + <description>The artifact ID of the plugin in the repository.</description> + <version>4.0.0+</version> + <type>String</type> + <required>true</required> + </field> + <field> + <name>version</name> + <version>4.0.0+</version> + <description>The version (or valid range of versions) of the plugin to be used.</description> + <type>String</type> + </field> + <field> + <name>extensions</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + Whether to load Maven extensions (such as packaging and type handlers) from + this plugin. For performance reasons, this should only be enabled when necessary. Note: While the type + of this field is <code>String</code> for technical reasons, the semantic type is actually + <code>Boolean</code>. Default value is <code>false</code>. + ]]> + </description> + </field> + <field> + <name>executions</name> + <version>4.0.0+</version> + <description>Multiple specifications of a set of goals to execute during the build + lifecycle, each having (possibly) a different configuration.</description> + <association> + <type>PluginExecution</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>dependencies</name> + <description>Additional dependencies that this project needs to introduce to the plugin's + classloader.</description> + <version>4.0.0+</version> + <association> + <type>Dependency</type> + <multiplicity>*</multiplicity> + </association> + </field> + <field> + <name>goals</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + <b>Deprecated</b>. Unused by Maven. + ]]> + </description> + <type>DOM</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + public boolean isExtensions() + { + return ( extensions != null ) ? Boolean.parseBoolean( extensions ) : false; + } + + public void setExtensions( boolean extensions ) + { + this.extensions = String.valueOf( extensions ); + } + + private java.util.Map<String, PluginExecution> executionMap = null; + + /** + * Reset the <code>executionMap</code> field to <code>null</code> + */ + public void flushExecutionMap() + { + this.executionMap = null; + } + + /** + * @return a Map of executions field with <code>PluginExecution#getId()</code> as key + * @see org.apache.maven.model.PluginExecution#getId() + */ + public java.util.Map<String, PluginExecution> getExecutionsAsMap() + { + if ( executionMap == null ) + { + executionMap = new java.util.LinkedHashMap<String, PluginExecution>(); + if ( getExecutions() != null ) + { + for ( java.util.Iterator<PluginExecution> i = getExecutions().iterator(); i.hasNext(); ) + { + PluginExecution exec = (PluginExecution) i.next(); + + if ( executionMap.containsKey( exec.getId() ) ) + { + throw new IllegalStateException( "You cannot have two plugin executions with the same (or missing) <id/> elements.\nOffending execution\n\nId: \'" + exec.getId() + "\'\nPlugin:\'" + getKey() + "\'\n\n" ); + } + + executionMap.put( exec.getId(), exec ); + } + } + } + + return executionMap; + } + + /** + * Gets the identifier of the plugin. + * + * @return The plugin id in the form {@code <groupId>:<artifactId>:<version>}, never {@code null}. + */ + public String getId() + { + StringBuilder id = new StringBuilder( 128 ); + + id.append( ( getGroupId() == null ) ? "[unknown-group-id]" : getGroupId() ); + id.append( ":" ); + id.append( ( getArtifactId() == null ) ? "[unknown-artifact-id]" : getArtifactId() ); + id.append( ":" ); + id.append( ( getVersion() == null ) ? "[unknown-version]" : getVersion() ); + + return id.toString(); + } + + //TODO we shall reset key variable when groupId/artifactId change + private String key = null; + /** + * @return the key of the plugin, ie <code>groupId:artifactId</code> + */ + public String getKey() + { + if ( key == null ) + { + key = constructKey( groupId, artifactId ); + } + return key; + } + + /** + * @param groupId + * @param artifactId + * @return the key of the plugin, ie <code>groupId:artifactId</code> + */ + public static String constructKey( String groupId, String artifactId ) + { + return groupId + ":" + artifactId; + } + + /** + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals( Object other ) + { + if ( other instanceof Plugin ) + { + Plugin otherPlugin = (Plugin) other; + + return getKey().equals( otherPlugin.getKey() ); + } + + return false; + } + + /** + * @see java.lang.Object#hashCode() + */ + public int hashCode() + { + return getKey().hashCode(); + } + + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + return "Plugin [" + getKey() + "]"; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class> + <name>PluginExecution</name> + <version>4.0.0+</version> + <superClass>ConfigurationContainer</superClass> + <description> + <![CDATA[ + The <code><execution></code> element contains informations required for the + execution of a plugin. + ]]> + </description> + <fields> + <field> + <name>id</name> + <version>4.0.0+</version> + <type>String</type> + <defaultValue>default</defaultValue> + <description>The identifier of this execution for labelling the goals during the build, + and for matching executions to merge during inheritance and profile injection.</description> + </field> + <field> + <name>phase</name> + <version>4.0.0+</version> + <type>String</type> + <description>The build lifecycle phase to bind the goals in this execution to. If omitted, + the goals will be bound to the default phase specified by the plugin. </description> + </field> + <field xml.transient="true"> + <name>priority</name> + <version>4.0.0+</version> + <type>int</type> + <description> + <![CDATA[ + The priority of this execution compared to other executions which are bound to the same phase. + <strong>Warning:</strong> This is an internal utility property that is only public for technical reasons, + it is not part of the public API. In particular, this property can be changed or deleted without prior + notice. + ]]> + </description> + </field> + <field> + <name>goals</name> + <version>4.0.0+</version> + <description>The goals to execute with the given configuration.</description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + public static final String DEFAULT_EXECUTION_ID = "default"; + + @Override + public String toString() + { + return getId(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class java.clone="deep"> + <name>DependencyManagement</name> + <version>4.0.0+</version> + <description>Section for management of default dependency information for use in a group of + POMs.</description> + <fields> + <field> + <name>dependencies</name> + <version>4.0.0+</version> + <description>The dependencies specified here are not used until they are referenced in a + POM within the group. This allows the specification of a "standard" version for a + particular dependency.</description> + <association> + <type>Dependency</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + </class> + <class> + <name>PluginManagement</name> + <version>4.0.0+</version> + <superClass>PluginContainer</superClass> + <description>Section for management of default plugin information for use in a group of POMs. + </description> + </class> + <class java.clone="deep"> + <name>Reporting</name> + <version>4.0.0+</version> + <description>Section for management of reports and their configuration.</description> + <fields> + <field> + <name>excludeDefaults</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + If true, then the default reports are not included in the site generation. + This includes the reports in the "Project Info" menu. Note: While the type + of this field is <code>String</code> for technical reasons, the semantic type is actually + <code>Boolean</code>. Default value is <code>false</code>. + ]]> + </description> + </field> + <field> + <name>outputDirectory</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + Where to store all of the generated reports. The default is + <code>${project.build.directory}/site</code> + . + ]]> + </description> + <!-- TODO: why isn't default set here? --> + </field> + <field> + <name>plugins</name> + <version>4.0.0+</version> + <description>The reporting plugins to use and their configuration.</description> + <association> + <type>ReportPlugin</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + public boolean isExcludeDefaults() + { + return ( excludeDefaults != null ) ? Boolean.parseBoolean( excludeDefaults ) : false; + } + + public void setExcludeDefaults( boolean excludeDefaults ) + { + this.excludeDefaults = String.valueOf( excludeDefaults ); + } + + java.util.Map<String, ReportPlugin> reportPluginMap; + + /** + * Reset the <code>reportPluginMap</code> field to <code>null</code> + */ + public synchronized void flushReportPluginMap() + { + this.reportPluginMap = null; + } + + /** + * @return a Map of plugins field with <code>ReportPlugin#getKey()</code> as key + * @see org.apache.maven.model.ReportPlugin#getKey() + */ + public synchronized java.util.Map<String, ReportPlugin> getReportPluginsAsMap() + { + if ( reportPluginMap == null ) + { + reportPluginMap = new java.util.LinkedHashMap<String, ReportPlugin>(); + if ( getPlugins() != null ) + { + for ( java.util.Iterator<ReportPlugin> it = getPlugins().iterator(); it.hasNext(); ) + { + ReportPlugin reportPlugin = (ReportPlugin) it.next(); + reportPluginMap.put( reportPlugin.getKey(), reportPlugin ); + } + } + } + + return reportPluginMap; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <!-- Profile support --> + <class> + <name>Profile</name> + <superClass>ModelBase</superClass> + <version>4.0.0+</version> + <description>Modifications to the build process which is activated based on environmental + parameters or command line arguments.</description> + <fields> + <field> + <name>id</name> + <required>true</required> + <version>4.0.0+</version> + <type>String</type> + <defaultValue>default</defaultValue> + <description>The identifier of this build profile. This is used for command line + activation, and identifies profiles to be merged. + </description> + </field> + <field> + <name>activation</name> + <version>4.0.0+</version> + <description>The conditional logic which will automatically trigger the inclusion of this + profile.</description> + <association> + <type>Activation</type> + </association> + </field> + <field xml.tagName="build"> + <name>build</name> + <version>4.0.0+</version> + <required>true</required> + <description>Information required to build the project.</description> + <association> + <type>BuildBase</type> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + public static final String SOURCE_POM = "pom"; + + public static final String SOURCE_SETTINGS = "settings.xml"; + + // We don't want this to be parseable...it's sort of 'hidden' + // default source for this profile is in the pom itself. + private String source = SOURCE_POM; + + public void setSource( String source ) + { + this.source = source; + } + + public String getSource() + { + return source; + } + + /** + * @see java.lang.Object#toString() + */ + public String toString() + { + return "Profile {id: " + getId() + ", source: " + getSource() + "}"; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class java.clone="deep"> + <name>Activation</name> + <version>4.0.0+</version> + <description>The conditions within the build runtime environment which will trigger the + automatic inclusion of the build profile. Multiple conditions can be defined, which must + be all satisfied to activate the profile. + </description> + <fields> + <field> + <name>activeByDefault</name> + <version>4.0.0+</version> + <type>boolean</type> + <description>If set to true, this profile will be active unless another profile in this + pom is activated using the command line -P option or by one of that profile's + activators.</description> + </field> + <field> + <name>jdk</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + Specifies that this profile will be activated when a matching JDK is detected. + For example, <code>1.4</code> only activates on JDKs versioned 1.4, + while <code>!1.4</code> matches any JDK that is not version 1.4. Ranges are supported too: + <code>[1.5,)</code> activates when the JDK is 1.5 minimum. + ]]> + </description> + </field> + <field> + <name>os</name> + <version>4.0.0+</version> + <description>Specifies that this profile will be activated when matching operating system + attributes are detected.</description> + <association> + <type>ActivationOS</type> + </association> + </field> + <field> + <name>property</name> + <version>4.0.0+</version> + <description>Specifies that this profile will be activated when this system property is + specified.</description> + <association> + <type>ActivationProperty</type> + </association> + </field> + <field> + <name>file</name> + <version>4.0.0+</version> + <description>Specifies that this profile will be activated based on existence of a file.</description> + <association> + <type>ActivationFile</type> + </association> + </field> + <!-- + This could be included once we teach Maven to deal with multiple versions of the model + <field> + <name>custom</name> + <version>4.0.0+</version> + <description>Describes a custom profile activation trigger, brought in via build + extension.</description> + <association> + <type>ActivationCustom</type> + </association> + </field> + --> + </fields> + </class> + <class java.clone="deep"> + <name>ActivationProperty</name> + <version>4.0.0+</version> + <description>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>4.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>4.0.0+</version> + <type>String</type> + <description>The value of the property required to activate a profile.</description> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>ActivationOS</name> + <version>4.0.0+</version> + <description>This is an activator which will detect an operating system's attributes in order + to activate its profile.</description> + <fields> + <field> + <name>name</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + The name of the operating system to be used to activate the profile. This must be an exact match + of the <code>${os.name}</code> Java property, such as <code>Windows XP</code>. + ]]> + </description> + </field> + <field> + <name>family</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + The general family of the OS to be used to activate the profile, such as + <code>windows</code> or <code>unix</code>. + ]]> + </description> + </field> + <field> + <name>arch</name> + <version>4.0.0+</version> + <type>String</type> + <description>The architecture of the operating system to be used to activate the + profile.</description> + </field> + <field> + <name>version</name> + <version>4.0.0+</version> + <type>String</type> + <description>The version of the operating system to be used to activate the + profile.</description> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>ActivationFile</name> + <version>4.0.0+</version> + <description><![CDATA[This is the file specification used to activate the profile. The <code>missing</code> value + is the location of a file that needs to exist, and if it doesn't, the profile will be + activated. On the other hand, <code>exists</code> will test for the existence of the file and if it is + there, the profile will be activated.<br/> + Variable interpolation for these file specifications is limited to <code>${basedir}</code>, + System properties and request properties.]]></description> + <fields> + <field> + <name>missing</name> + <version>4.0.0+</version> + <type>String</type> + <description>The name of the file that must be missing to activate the + profile.</description> + </field> + <field> + <name>exists</name> + <version>4.0.0+</version> + <type>String</type> + <description>The name of the file that must exist to activate the profile.</description> + </field> + </fields> + </class> + <!-- + This can be put back in when we figure out how to have multiple model versions + <class> + <name>ActivationCustom</name> + <version>4.0.0+</version> + <description>This activation allows users to specify their own custom trigger for a profile.</description> + <fields> + <field> + <name>configuration</name> + <version>4.0.0+</version> + <type>DOM</type> + <description>The specification for triggering the profile according to the rules of the + custom activation type.</description> + </field> + <field> + <name>type</name> + <version>4.0.0+</version> + <type>String</type> + <description>The type (role-hint) of activation which is to be used to activate the + profile.</description> + </field> + </fields> + </class> + --> + <!-- /BuildProfile support --> + <class xml.tagName="plugin" java.clone="deep"> + <name>ReportPlugin</name> + <version>4.0.0+</version> + <superClass>ConfigurationContainer</superClass> + <description> + <![CDATA[ + The <code><plugin></code> element contains informations required for a report plugin. + ]]> + </description> + <fields> + <field> + <name>groupId</name> + <version>4.0.0+</version> + <type>String</type> + <required>true</required> + <defaultValue>org.apache.maven.plugins</defaultValue> + <description>The group ID of the reporting plugin in the repository.</description> + </field> + <field> + <name>artifactId</name> + <version>4.0.0+</version> + <type>String</type> + <required>true</required> + <description>The artifact ID of the reporting plugin in the repository.</description> + </field> + <field> + <name>version</name> + <version>4.0.0+</version> + <description>The version of the reporting plugin to be used.</description> + <type>String</type> + </field> + <field> + <name>reportSets</name> + <version>4.0.0+</version> + <description> + <![CDATA[ + Multiple specifications of a set of reports, each having (possibly) different + configuration. This is the reporting parallel to an <code>execution</code> in the build. + ]]> + </description> + <association> + <type>ReportSet</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + private java.util.Map<String, ReportSet> reportSetMap = null; + + /** + * Reset the <code>reportSetMap</code> field to <code>null</code> + */ + public void flushReportSetMap() + { + this.reportSetMap = null; + } + + /** + * @return a Map of reportSets field with <code>ReportSet#getId()</code> as key + * @see org.apache.maven.model.ReportSet#getId() + */ + public java.util.Map<String, ReportSet> getReportSetsAsMap() + { + if ( reportSetMap == null ) + { + reportSetMap = new java.util.LinkedHashMap<String, ReportSet>(); + if ( getReportSets() != null ) + { + for ( java.util.Iterator<ReportSet> i = getReportSets().iterator(); i.hasNext(); ) + { + ReportSet reportSet = (ReportSet) i.next(); + reportSetMap.put( reportSet.getId(), reportSet ); + } + } + } + + return reportSetMap; + } + + /** + * @return the key of the report plugin, ie <code>groupId:artifactId</code> + */ + public String getKey() + { + return constructKey( groupId, artifactId ); + } + + /** + * @param groupId + * @param artifactId + * @return the key of the report plugin, ie <code>groupId:artifactId</code> + */ + public static String constructKey( String groupId, String artifactId ) + { + return groupId + ":" + artifactId; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class java.clone="deep"> + <name>ReportSet</name> + <version>4.0.0+</version> + <superClass>ConfigurationContainer</superClass> + <description>Represents a set of reports and configuration to be used to generate them.</description> + <fields> + <field> + <name>id</name> + <type>String</type> + <required>true</required> + <description>The unique id for this report set, to be used during POM inheritance and profile injection + for merging of report sets. + </description> + <defaultValue>default</defaultValue> + </field> + <field> + <name>reports</name> + <version>4.0.0+</version> + <required>true</required> + <description>The list of reports from this plugin which should be generated from this set.</description> + <association> + <type>String</type> + <multiplicity>*</multiplicity> + </association> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + @Override + public String toString() + { + return getId(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class java.clone="deep"> + <name>Prerequisites</name> + <version>4.0.0+</version> + <description>Describes the prerequisites a project can have.</description> + <fields> + <field> + <name>maven</name> + <version>4.0.0+</version> + <type>String</type> + <defaultValue>2.0</defaultValue> + <description><![CDATA[ + The minimum version of Maven required to build the project.<br /> + If this project builds a plugin, this is in addition the minimum version of Maven required to use + the resulting plugin.]]> + </description> + <required>false</required> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>Relocation</name> + <version>4.0.0+</version> + <description>Describes where an artifact has moved to. If any of the values are omitted, it is + assumed to be the same as it was before.</description> + <fields> + <field> + <name>groupId</name> + <version>4.0.0+</version> + <description>The group ID the artifact has moved to.</description> + <type>String</type> + </field> + <field> + <name>artifactId</name> + <version>4.0.0+</version> + <description>The new artifact ID of the artifact.</description> + <type>String</type> + </field> + <field> + <name>version</name> + <version>4.0.0+</version> + <description>The new version of the artifact.</description> + <type>String</type> + </field> + <field> + <name>message</name> + <version>4.0.0+</version> + <description>An additional message to show the user about the move, such as the reason.</description> + <type>String</type> + </field> + </fields> + </class> + <class java.clone="deep"> + <name>Extension</name> + <version>4.0.0+</version> + <description>Describes a build extension to utilise.</description> + <fields> + <field> + <name>groupId</name> + <version>4.0.0+</version> + <description>The group ID of the extension's artifact.</description> + <required>true</required> + <type>String</type> + </field> + <field> + <name>artifactId</name> + <version>4.0.0+</version> + <description>The artifact ID of the extension.</description> + <required>true</required> + <type>String</type> + </field> + <field> + <name>version</name> + <version>4.0.0+</version> + <description>The version of the extension.</description> + <type>String</type> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + /** + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals( Object o ) + { + if ( this == o ) + { + return true; + } + + if ( !( o instanceof Extension ) ) + { + return false; + } + + Extension e = (Extension) o; + + if ( !equal( e.getArtifactId(), getArtifactId() ) ) + { + return false; + } + else if ( !equal( e.getGroupId(), getGroupId() ) ) + { + return false; + } + else if ( !equal( e.getVersion(), getVersion() ) ) + { + return false; + } + return true; + } + + private static <T> boolean equal( T obj1, T obj2 ) + { + return ( obj1 != null ) ? obj1.equals( obj2 ) : obj2 == null; + } + + /** + * @see java.lang.Object#hashCode() + */ + public int hashCode() + { + int result = 17; + result = 37 * result + ( getArtifactId() != null ? getArtifactId().hashCode() : 0 ); + result = 37 * result + ( getGroupId() != null ? getGroupId().hashCode() : 0 ); + result = 37 * result + ( getVersion() != null ? getVersion().hashCode() : 0 ); + return result; + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class locationTracker="locations" java.clone="shallow"> + <name>InputLocation</name> + <version>4.0.0+</version> + <fields> + <!-- line, column and source fields are auto-generated by Modello --> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + + @Override + public String toString() + { + return getLineNumber() + " : " + getColumnNumber() + ", " + getSource(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + <class sourceTracker="source" java.clone="shallow"> + <name>InputSource</name> + <version>4.0.0+</version> + <fields> + <field> + <name>modelId</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + The identifier of the POM in the format {@code <groupId>:<artifactId>:<version>}. + ]]> + </description> + </field> + <field> + <name>location</name> + <version>4.0.0+</version> + <type>String</type> + <description> + <![CDATA[ + The path/URL of the POM or {@code null} if unknown. + ]]> + </description> + </field> + </fields> + <codeSegments> + <codeSegment> + <version>4.0.0+</version> + <code> + <![CDATA[ + @Override + public String toString() + { + return getModelId() + " " + getLocation(); + } + ]]> + </code> + </codeSegment> + </codeSegments> + </class> + </classes> +</model> diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/apt/index.apt b/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/apt/index.apt new file mode 100644 index 00000000..77ec5081 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/apt/index.apt @@ -0,0 +1,39 @@ +~~ 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. + + ----- + Introduction + ----- + Jason van Zyl + Vincent Siveton + Hervé Boutemy + ----- + 2011-06-12 + ----- + +Maven Model + + This is strictly the model for Maven POM (Project Object Model), so really just plain objects. All the effective model + building logic from multiple POMs and building context is done in {{{../maven-model-builder/}Maven Model Builder}}. + + The following are generated from this model: + + * {{{./apidocs/index.html}Java sources}} with Reader and Writers for the Xpp3 XML parser + + * A {{{./maven.html}Descriptor Reference}} + + * An XSD {{{http://maven.apache.org/xsd/maven-v3_0_0.xsd}for Maven 1.1}} and {{{http://maven.apache.org/xsd/maven-4.0.0.xsd}for Maven 2.0}}. diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/site.xml b/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/site.xml new file mode 100644 index 00000000..3a16bf98 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/site.xml @@ -0,0 +1,36 @@ +<?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/DECORATION/1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd"> + <body> + <menu name="Overview"> + <item name="Introduction" href="index.html"/> + <item name="JavaDocs" href="apidocs/index.html"/> + <item name="Source Xref" href="xref/index.html"/> + <!--item name="FAQ" href="faq.html"/--> + </menu> + + <menu ref="parent"/> + <menu ref="reports"/> + </body> +</project>
\ No newline at end of file diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/xdoc/navigation.xml b/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/xdoc/navigation.xml new file mode 100644 index 00000000..110a953d --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/site/xdoc/navigation.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- +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 name="Project Descriptor"> + <title>Project Descriptor</title> + <body> + <breadcrumbs> + <item name="Apache" href="http://www.apache.org" /> + <item name="Maven" href="http://maven.apache.org/" /> + <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x/" /> + <item name="Reference" href="http://maven.apache.org/maven-1.x/reference/index.html" /> + </breadcrumbs> + <menu name="Maven Project Descriptor"> + <item name="About" href="/index.html" /> + <item name="Model Documentation" href="/maven.html" /> + <item name="API Docs" href="/apidocs/" target="_blank" /> + </menu> + </body> +</project>
\ No newline at end of file diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java new file mode 100644 index 00000000..f88da581 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code ActivationFile}. + * + * @author Benjamin Bentmann + */ +public class ActivationFileTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new ActivationFile().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new ActivationFile().equals( null ) ); + + new ActivationFile().equals( new ActivationFile() ); + } + + public void testEqualsIdentity() + { + ActivationFile thing = new ActivationFile(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new ActivationFile().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java new file mode 100644 index 00000000..f0d30450 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code ActivationOS}. + * + * @author Benjamin Bentmann + */ +public class ActivationOSTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new ActivationOS().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new ActivationOS().equals( null ) ); + + new ActivationOS().equals( new ActivationOS() ); + } + + public void testEqualsIdentity() + { + ActivationOS thing = new ActivationOS(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new ActivationOS().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java new file mode 100644 index 00000000..5f5e048a --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code ActivationProperty}. + * + * @author Benjamin Bentmann + */ +public class ActivationPropertyTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new ActivationProperty().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new ActivationProperty().equals( null ) ); + + new ActivationProperty().equals( new ActivationProperty() ); + } + + public void testEqualsIdentity() + { + ActivationProperty thing = new ActivationProperty(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new ActivationProperty().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java new file mode 100644 index 00000000..f6d0f910 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Activation}. + * + * @author Benjamin Bentmann + */ +public class ActivationTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Activation().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Activation().equals( null ) ); + + new Activation().equals( new Activation() ); + } + + public void testEqualsIdentity() + { + Activation thing = new Activation(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Activation().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/BuildTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/BuildTest.java new file mode 100644 index 00000000..80a60d57 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/BuildTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Build}. + * + * @author Benjamin Bentmann + */ +public class BuildTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Build().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Build().equals( null ) ); + + new Build().equals( new Build() ); + } + + public void testEqualsIdentity() + { + Build thing = new Build(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Build().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java new file mode 100644 index 00000000..7194c844 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code CiManagement}. + * + * @author Benjamin Bentmann + */ +public class CiManagementTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new CiManagement().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new CiManagement().equals( null ) ); + + new CiManagement().equals( new CiManagement() ); + } + + public void testEqualsIdentity() + { + CiManagement thing = new CiManagement(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new CiManagement().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java new file mode 100644 index 00000000..491b99ae --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Contributor}. + * + * @author Benjamin Bentmann + */ +public class ContributorTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Contributor().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Contributor().equals( null ) ); + + new Contributor().equals( new Contributor() ); + } + + public void testEqualsIdentity() + { + Contributor thing = new Contributor(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Contributor().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java new file mode 100644 index 00000000..7702c62f --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code DependencyManagement}. + * + * @author Benjamin Bentmann + */ +public class DependencyManagementTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new DependencyManagement().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new DependencyManagement().equals( null ) ); + + new DependencyManagement().equals( new DependencyManagement() ); + } + + public void testEqualsIdentity() + { + DependencyManagement thing = new DependencyManagement(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new DependencyManagement().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java new file mode 100644 index 00000000..ec0a8336 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Dependency}. + * + * @author Benjamin Bentmann + */ +public class DependencyTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Dependency().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Dependency().equals( null ) ); + + new Dependency().equals( new Dependency() ); + } + + public void testEqualsIdentity() + { + Dependency thing = new Dependency(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Dependency().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java new file mode 100644 index 00000000..169ec650 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code DeploymentRepository}. + * + * @author Benjamin Bentmann + */ +public class DeploymentRepositoryTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new DeploymentRepository().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new DeploymentRepository().equals( null ) ); + + new DeploymentRepository().equals( new DeploymentRepository() ); + } + + public void testEqualsIdentity() + { + DeploymentRepository thing = new DeploymentRepository(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new DeploymentRepository().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java new file mode 100644 index 00000000..c0dfe56d --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Developer}. + * + * @author Benjamin Bentmann + */ +public class DeveloperTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Developer().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Developer().equals( null ) ); + + new Developer().equals( new Developer() ); + } + + public void testEqualsIdentity() + { + Developer thing = new Developer(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Developer().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java new file mode 100644 index 00000000..0314d61b --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code DistributionManagement}. + * + * @author Benjamin Bentmann + */ +public class DistributionManagementTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new DistributionManagement().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new DistributionManagement().equals( null ) ); + + new DistributionManagement().equals( new DistributionManagement() ); + } + + public void testEqualsIdentity() + { + DistributionManagement thing = new DistributionManagement(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new DistributionManagement().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java new file mode 100644 index 00000000..6febaceb --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Exclusion}. + * + * @author Benjamin Bentmann + */ +public class ExclusionTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Exclusion().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Exclusion().equals( null ) ); + + new Exclusion().equals( new Exclusion() ); + } + + public void testEqualsIdentity() + { + Exclusion thing = new Exclusion(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Exclusion().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java new file mode 100644 index 00000000..4b8cd8a1 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Extension}. + * + * @author Benjamin Bentmann + */ +public class ExtensionTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Extension().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Extension().equals( null ) ); + + new Extension().equals( new Extension() ); + } + + public void testEqualsIdentity() + { + Extension thing = new Extension(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Extension().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java new file mode 100644 index 00000000..5e50c157 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code IssueManagement}. + * + * @author Benjamin Bentmann + */ +public class IssueManagementTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new IssueManagement().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new IssueManagement().equals( null ) ); + + new IssueManagement().equals( new IssueManagement() ); + } + + public void testEqualsIdentity() + { + IssueManagement thing = new IssueManagement(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new IssueManagement().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java new file mode 100644 index 00000000..179921b2 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code License}. + * + * @author Benjamin Bentmann + */ +public class LicenseTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new License().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new License().equals( null ) ); + + new License().equals( new License() ); + } + + public void testEqualsIdentity() + { + License thing = new License(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new License().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java new file mode 100644 index 00000000..61296952 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code MailingList}. + * + * @author Benjamin Bentmann + */ +public class MailingListTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new MailingList().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new MailingList().equals( null ) ); + + new MailingList().equals( new MailingList() ); + } + + public void testEqualsIdentity() + { + MailingList thing = new MailingList(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new MailingList().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ModelTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ModelTest.java new file mode 100644 index 00000000..c9ec4da9 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ModelTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Model}. + * + * @author Benjamin Bentmann + */ +public class ModelTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Model().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Model().equals( null ) ); + + new Model().equals( new Model() ); + } + + public void testEqualsIdentity() + { + Model thing = new Model(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Model().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java new file mode 100644 index 00000000..4e5d0685 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Notifier}. + * + * @author Benjamin Bentmann + */ +public class NotifierTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Notifier().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Notifier().equals( null ) ); + + new Notifier().equals( new Notifier() ); + } + + public void testEqualsIdentity() + { + Notifier thing = new Notifier(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Notifier().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java new file mode 100644 index 00000000..48abe77e --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Organization}. + * + * @author Benjamin Bentmann + */ +public class OrganizationTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Organization().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Organization().equals( null ) ); + + new Organization().equals( new Organization() ); + } + + public void testEqualsIdentity() + { + Organization thing = new Organization(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Organization().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ParentTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ParentTest.java new file mode 100644 index 00000000..78d45672 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ParentTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Parent}. + * + * @author Benjamin Bentmann + */ +public class ParentTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Parent().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Parent().equals( null ) ); + + new Parent().equals( new Parent() ); + } + + public void testEqualsIdentity() + { + Parent thing = new Parent(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Parent().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java new file mode 100644 index 00000000..cbb123d5 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code PluginConfiguration}. + * + * @author Benjamin Bentmann + */ +public class PluginConfigurationTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new PluginConfiguration().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new PluginConfiguration().equals( null ) ); + + new PluginConfiguration().equals( new PluginConfiguration() ); + } + + public void testEqualsIdentity() + { + PluginConfiguration thing = new PluginConfiguration(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new PluginConfiguration().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java new file mode 100644 index 00000000..878298cf --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code PluginContainer}. + * + * @author Benjamin Bentmann + */ +public class PluginContainerTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new PluginContainer().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new PluginContainer().equals( null ) ); + + new PluginContainer().equals( new PluginContainer() ); + } + + public void testEqualsIdentity() + { + PluginContainer thing = new PluginContainer(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new PluginContainer().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java new file mode 100644 index 00000000..e8fff512 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code PluginExecution}. + * + * @author Benjamin Bentmann + */ +public class PluginExecutionTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new PluginExecution().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new PluginExecution().equals( null ) ); + + new PluginExecution().equals( new PluginExecution() ); + } + + public void testEqualsIdentity() + { + PluginExecution thing = new PluginExecution(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new PluginExecution().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java new file mode 100644 index 00000000..571399fe --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code PluginManagement}. + * + * @author Benjamin Bentmann + */ +public class PluginManagementTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new PluginManagement().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new PluginManagement().equals( null ) ); + + new PluginManagement().equals( new PluginManagement() ); + } + + public void testEqualsIdentity() + { + PluginManagement thing = new PluginManagement(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new PluginManagement().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginTest.java new file mode 100644 index 00000000..582145e0 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Plugin}. + * + * @author Benjamin Bentmann + */ +public class PluginTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Plugin().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Plugin().equals( null ) ); + + new Plugin().equals( new Plugin() ); + } + + public void testEqualsIdentity() + { + Plugin thing = new Plugin(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Plugin().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java new file mode 100644 index 00000000..727f2c3f --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Prerequisites}. + * + * @author Benjamin Bentmann + */ +public class PrerequisitesTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Prerequisites().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Prerequisites().equals( null ) ); + + new Prerequisites().equals( new Prerequisites() ); + } + + public void testEqualsIdentity() + { + Prerequisites thing = new Prerequisites(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Prerequisites().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java new file mode 100644 index 00000000..512e2a88 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Profile}. + * + * @author Benjamin Bentmann + */ +public class ProfileTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Profile().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Profile().equals( null ) ); + + new Profile().equals( new Profile() ); + } + + public void testEqualsIdentity() + { + Profile thing = new Profile(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Profile().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java new file mode 100644 index 00000000..265304d8 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Relocation}. + * + * @author Benjamin Bentmann + */ +public class RelocationTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Relocation().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Relocation().equals( null ) ); + + new Relocation().equals( new Relocation() ); + } + + public void testEqualsIdentity() + { + Relocation thing = new Relocation(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Relocation().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java new file mode 100644 index 00000000..d10cb791 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code ReportPlugin}. + * + * @author Benjamin Bentmann + */ +public class ReportPluginTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new ReportPlugin().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new ReportPlugin().equals( null ) ); + + new ReportPlugin().equals( new ReportPlugin() ); + } + + public void testEqualsIdentity() + { + ReportPlugin thing = new ReportPlugin(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new ReportPlugin().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java new file mode 100644 index 00000000..2f514153 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code ReportSet}. + * + * @author Benjamin Bentmann + */ +public class ReportSetTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new ReportSet().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new ReportSet().equals( null ) ); + + new ReportSet().equals( new ReportSet() ); + } + + public void testEqualsIdentity() + { + ReportSet thing = new ReportSet(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new ReportSet().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java new file mode 100644 index 00000000..dbc0fa22 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Reporting}. + * + * @author Benjamin Bentmann + */ +public class ReportingTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Reporting().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Reporting().equals( null ) ); + + new Reporting().equals( new Reporting() ); + } + + public void testEqualsIdentity() + { + Reporting thing = new Reporting(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Reporting().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java new file mode 100644 index 00000000..3ae34350 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code RepositoryPolicy}. + * + * @author Benjamin Bentmann + */ +public class RepositoryPolicyTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new RepositoryPolicy().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new RepositoryPolicy().equals( null ) ); + + new RepositoryPolicy().equals( new RepositoryPolicy() ); + } + + public void testEqualsIdentity() + { + RepositoryPolicy thing = new RepositoryPolicy(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new RepositoryPolicy().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java new file mode 100644 index 00000000..b68b70a1 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Repository}. + * + * @author Benjamin Bentmann + */ +public class RepositoryTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Repository().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Repository().equals( null ) ); + + new Repository().equals( new Repository() ); + } + + public void testEqualsIdentity() + { + Repository thing = new Repository(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Repository().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java new file mode 100644 index 00000000..fa40ab43 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Resource}. + * + * @author Benjamin Bentmann + */ +public class ResourceTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Resource().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Resource().equals( null ) ); + + new Resource().equals( new Resource() ); + } + + public void testEqualsIdentity() + { + Resource thing = new Resource(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Resource().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ScmTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ScmTest.java new file mode 100644 index 00000000..4d769931 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ScmTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Scm}. + * + * @author Benjamin Bentmann + */ +public class ScmTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Scm().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Scm().equals( null ) ); + + new Scm().equals( new Scm() ); + } + + public void testEqualsIdentity() + { + Scm thing = new Scm(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Scm().toString() ); + } + +} diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/SiteTest.java b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/SiteTest.java new file mode 100644 index 00000000..84896bb4 --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/SiteTest.java @@ -0,0 +1,56 @@ +package org.apache.maven.model; + +/* + * 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. + */ + +import junit.framework.TestCase; + +/** + * Tests {@code Site}. + * + * @author Benjamin Bentmann + */ +public class SiteTest + extends TestCase +{ + + public void testHashCodeNullSafe() + { + new Site().hashCode(); + } + + public void testEqualsNullSafe() + { + assertFalse( new Site().equals( null ) ); + + new Site().equals( new Site() ); + } + + public void testEqualsIdentity() + { + Site thing = new Site(); + assertTrue( thing.equals( thing ) ); + } + + public void testToStringNullSafe() + { + assertNotNull( new Site().toString() ); + } + +} |