| /* |
| * 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. |
| */ |
| package org.apache.maven.project; |
| |
| 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; |
| } |
| } |