Java tutorial
package org.apache.maven.project; /* * 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.Date; import java.util.List; import java.util.Objects; import java.util.Properties; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Profile; import org.apache.maven.model.building.ModelBuildingRequest; import org.apache.maven.properties.internal.SystemProperties; import org.eclipse.aether.RepositorySystemSession; /** * DefaultProjectBuildingRequest */ public class DefaultProjectBuildingRequest implements ProjectBuildingRequest { private RepositorySystemSession repositorySession; private ArtifactRepository localRepository; private List<ArtifactRepository> remoteRepositories; private List<ArtifactRepository> pluginArtifactRepositories; private MavenProject project; private int validationLevel = ModelBuildingRequest.VALIDATION_LEVEL_STRICT; private boolean processPlugins; private List<Profile> profiles; private List<String> activeProfileIds; private List<String> inactiveProfileIds; private Properties systemProperties; private Properties userProperties; private Date buildStartTime; private boolean resolveDependencies; @Deprecated private boolean resolveVersionRanges; private RepositoryMerging repositoryMerging = RepositoryMerging.POM_DOMINANT; public DefaultProjectBuildingRequest() { processPlugins = true; profiles = new ArrayList<>(); activeProfileIds = new ArrayList<>(); inactiveProfileIds = new ArrayList<>(); systemProperties = new Properties(); userProperties = new Properties(); remoteRepositories = new ArrayList<>(); pluginArtifactRepositories = new ArrayList<>(); } public DefaultProjectBuildingRequest(ProjectBuildingRequest request) { this(); setProcessPlugins(request.isProcessPlugins()); setProfiles(request.getProfiles()); setActiveProfileIds(request.getActiveProfileIds()); setInactiveProfileIds(request.getInactiveProfileIds()); setSystemProperties(request.getSystemProperties()); setUserProperties(request.getUserProperties()); setRemoteRepositories(request.getRemoteRepositories()); setPluginArtifactRepositories(request.getPluginArtifactRepositories()); setRepositorySession(request.getRepositorySession()); setLocalRepository(request.getLocalRepository()); setBuildStartTime(request.getBuildStartTime()); setProject(request.getProject()); setResolveDependencies(request.isResolveDependencies()); setValidationLevel(request.getValidationLevel()); setResolveVersionRanges(request.isResolveVersionRanges()); setRepositoryMerging(request.getRepositoryMerging()); } public MavenProject getProject() { return project; } public void setProject(MavenProject mavenProject) { this.project = mavenProject; } public ProjectBuildingRequest setLocalRepository(ArtifactRepository localRepository) { this.localRepository = localRepository; return this; } public ArtifactRepository getLocalRepository() { return localRepository; } public List<ArtifactRepository> getRemoteRepositories() { return remoteRepositories; } public ProjectBuildingRequest setRemoteRepositories(List<ArtifactRepository> remoteRepositories) { if (remoteRepositories != null) { this.remoteRepositories = new ArrayList<>(remoteRepositories); } else { this.remoteRepositories.clear(); } return this; } public List<ArtifactRepository> getPluginArtifactRepositories() { return pluginArtifactRepositories; } public ProjectBuildingRequest setPluginArtifactRepositories( List<ArtifactRepository> pluginArtifactRepositories) { if (pluginArtifactRepositories != null) { this.pluginArtifactRepositories = new ArrayList<>(pluginArtifactRepositories); } else { this.pluginArtifactRepositories.clear(); } return this; } public Properties getSystemProperties() { return systemProperties; } public ProjectBuildingRequest setSystemProperties(Properties systemProperties) { if (systemProperties != null) { this.systemProperties = SystemProperties.copyProperties(systemProperties); } else { this.systemProperties.clear(); } return this; } public Properties getUserProperties() { return userProperties; } public ProjectBuildingRequest setUserProperties(Properties userProperties) { if (userProperties != null) { this.userProperties = new Properties(); this.userProperties.putAll(userProperties); } else { this.userProperties.clear(); } return this; } public boolean isProcessPlugins() { return processPlugins; } public ProjectBuildingRequest setProcessPlugins(boolean processPlugins) { this.processPlugins = processPlugins; return this; } public ProjectBuildingRequest setResolveDependencies(boolean resolveDependencies) { this.resolveDependencies = resolveDependencies; return this; } public boolean isResolveDependencies() { return resolveDependencies; } /** * @since 3.2.2 * @deprecated This got added when implementing MNG-2199 and is no longer used. * Commit 6cf9320942c34bc68205425ab696b1712ace9ba4 updated the way 'MavenProject' objects are initialized. */ @Deprecated public ProjectBuildingRequest setResolveVersionRanges(boolean value) { this.resolveVersionRanges = value; return this; } /** * @since 3.2.2 * @deprecated This got added when implementing MNG-2199 and is no longer used. * Commit 6cf9320942c34bc68205425ab696b1712ace9ba4 updated the way 'MavenProject' objects are initialized. */ @Deprecated public boolean isResolveVersionRanges() { return this.resolveVersionRanges; } public ProjectBuildingRequest setValidationLevel(int validationLevel) { this.validationLevel = validationLevel; return this; } public int getValidationLevel() { return validationLevel; } public List<String> getActiveProfileIds() { return activeProfileIds; } public void setActiveProfileIds(List<String> activeProfileIds) { if (activeProfileIds != null) { this.activeProfileIds = new ArrayList<>(activeProfileIds); } else { this.activeProfileIds.clear(); } } public List<String> getInactiveProfileIds() { return inactiveProfileIds; } public void setInactiveProfileIds(List<String> inactiveProfileIds) { if (inactiveProfileIds != null) { this.inactiveProfileIds = new ArrayList<>(inactiveProfileIds); } else { this.inactiveProfileIds.clear(); } } public void setProfiles(List<Profile> profiles) { if (profiles != null) { this.profiles = new ArrayList<>(profiles); } else { this.profiles.clear(); } } public void addProfile(Profile profile) { profiles.add(profile); } public List<Profile> getProfiles() { return profiles; } public Date getBuildStartTime() { return buildStartTime; } public void setBuildStartTime(Date buildStartTime) { this.buildStartTime = buildStartTime; } public RepositorySystemSession getRepositorySession() { return repositorySession; } public DefaultProjectBuildingRequest setRepositorySession(RepositorySystemSession repositorySession) { this.repositorySession = repositorySession; return this; } public DefaultProjectBuildingRequest setRepositoryMerging(RepositoryMerging repositoryMerging) { this.repositoryMerging = Objects.requireNonNull(repositoryMerging, "repositoryMerging cannot be null"); return this; } public RepositoryMerging getRepositoryMerging() { return repositoryMerging; } }