Class DefaultProfileActivationContext
java.lang.Object
org.apache.maven.impl.model.DefaultProfileActivationContext
- All Implemented Interfaces:
ProfileActivationContext
Describes the environmental context used to determine the activation status of profiles.
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultProfileActivationContext(PathTranslator pathTranslator, RootLocator rootLocator, Interpolator interpolator) DefaultProfileActivationContext(PathTranslator pathTranslator, RootLocator rootLocator, Interpolator interpolator, List<String> activeProfileIds, List<String> inactiveProfileIds, Map<String, String> systemProperties, Map<String, String> userProperties, Model model) -
Method Summary
Modifier and TypeMethodDescriptionbooleanChecks if a file or directory matching the given glob pattern exists at the specified path.Gets the artifactId from the current model.Gets the base directory of the current model.Gets the packaging type from the current model.getModelProperty(String key) Gets the model property to use for interpolation and profile activation.Gets the root directory of the current model.getSystemProperty(String key) Gets the system property to use for interpolation and profile activation.getUserProperty(String key) Gets the user property to use for interpolation and profile activation.interpolatePath(String path) Interpolates the given path string using the current context's properties.booleanisProfileActive(String profileId) Checks if the specified profile has been explicitly activated.booleanisProfileInactive(String profileId) Checks if the specified profile has been explicitly deactivated.setSystemProperties(Map<String, String> systemProperties) Sets the system properties to use for interpolation and profile activation.setUserProperties(Map<String, String> userProperties) Sets the user properties to use for interpolation and profile activation.Returns a sandboxed copy of this context suitable for evaluating profiles in repository-resolved (external) models — dependency POMs, parent POMs, and imported BOMs.
-
Constructor Details
-
DefaultProfileActivationContext
public DefaultProfileActivationContext(PathTranslator pathTranslator, RootLocator rootLocator, Interpolator interpolator) -
DefaultProfileActivationContext
public DefaultProfileActivationContext(PathTranslator pathTranslator, RootLocator rootLocator, Interpolator interpolator, List<String> activeProfileIds, List<String> inactiveProfileIds, Map<String, String> systemProperties, Map<String, String> userProperties, Model model)
-
-
Method Details
-
isProfileActive
Description copied from interface:ProfileActivationContextChecks if the specified profile has been explicitly activated.- Specified by:
isProfileActivein interfaceProfileActivationContext- Parameters:
profileId- the profile id- Returns:
- whether the profile has been activated
-
isProfileInactive
Description copied from interface:ProfileActivationContextChecks if the specified profile has been explicitly deactivated.- Specified by:
isProfileInactivein interfaceProfileActivationContext- Parameters:
profileId- the profile id- Returns:
- whether the profile has been deactivated
-
getSystemProperty
Description copied from interface:ProfileActivationContextGets the system property to use for interpolation and profile activation. The system properties are collected from the runtime environment likeSystem.getProperties()and environment variables.- Specified by:
getSystemPropertyin interfaceProfileActivationContext- Parameters:
key- the name of the system property- Returns:
- the system property for the specified key, or
null
-
setSystemProperties
Sets the system properties to use for interpolation and profile activation. The system properties are collected from the runtime environment likeSystem.getProperties()and environment variables.- Parameters:
systemProperties- The system properties, may benull.- Returns:
- This context, never
null.
-
getUserProperty
Description copied from interface:ProfileActivationContextGets the user property to use for interpolation and profile activation. The user properties have been configured directly by the user on his discretion, e.g. via the-Dkey=valueparameter on the command line.In repository-resolved (external) model builds (dependency POMs, parent POMs, imported BOMs), this always returns
null. Consumer-Dflags are not propagated to dependency profile activation: the consumer did not set those flags for the dependency, and doing so would make dependency resolution non-deterministic and open to accidental (or malicious) profile injection.- Specified by:
getUserPropertyin interfaceProfileActivationContext- Parameters:
key- the name of the user property- Returns:
- The user property for the specified key, or
null.
-
setUserProperties
Sets the user properties to use for interpolation and profile activation. The user properties have been configured directly by the user on his discretion, e.g. via the-Dkey=valueparameter on the command line.- Parameters:
userProperties- The user properties, may benull.- Returns:
- This context, never
null.
-
getModelArtifactId
Description copied from interface:ProfileActivationContextGets the artifactId from the current model.- Specified by:
getModelArtifactIdin interfaceProfileActivationContext- Returns:
- The artifactId of the current model, or
nullif not set.
-
getModelPackaging
Description copied from interface:ProfileActivationContextGets the packaging type from the current model.- Specified by:
getModelPackagingin interfaceProfileActivationContext- Returns:
- The packaging type of the current model, or
nullif not set.
-
getModelProperty
Description copied from interface:ProfileActivationContextGets the model property to use for interpolation and profile activation.These are the properties declared in the model's own
<properties>section. They are part of the artifact's published identity and are always consulted for profile activation, including in repository-resolved (external) model builds. UnlikeProfileActivationContext.getUserProperty(String), these are never suppressed when evaluating dependency profiles.- Specified by:
getModelPropertyin interfaceProfileActivationContext- Parameters:
key- the name of the model property- Returns:
- The model property for the specified key, or
null;
-
getModelBaseDirectory
Description copied from interface:ProfileActivationContextGets the base directory of the current model.- Specified by:
getModelBaseDirectoryin interfaceProfileActivationContext- Returns:
- The base directory path of the current model, or
nullif not set.
-
doGetModelBaseDirectory
-
getModelRootDirectory
Description copied from interface:ProfileActivationContextGets the root directory of the current model.- Specified by:
getModelRootDirectoryin interfaceProfileActivationContext- Returns:
- The root directory path of the current model, or
nullif not set.
-
setModel
-
withoutUserPropertiesAndFilesystem
Returns a sandboxed copy of this context suitable for evaluating profiles in repository-resolved (external) models — dependency POMs, parent POMs, and imported BOMs.The sandboxed context:
- Merges model properties into system property lookups: system properties
(
java.version,os.name, …) are checked first (preserving JDK/OS activation), then model properties (the POM's own<properties>) are used as a fallback. This makes POM-declared properties visible to thePropertyProfileActivatorwithout modifying the activator's lookup chain for non-external models. - Suppresses user properties (consumer
-Dflags): they were not set for the dependency and must not accidentally activate its profiles. - Disables file existence checks: the publisher's file system paths do not
exist in the consumer's environment. File-activated profiles should be
pre-filtered by the caller before reaching this context (the sandbox's
exists()returnsfalseas a safety net, but that alone would incorrectly activate<missing>profiles).
- Returns:
- a sandboxed
ProfileActivationContextfor external model evaluation
- Merges model properties into system property lookups: system properties
(
-
interpolatePath
Description copied from interface:ProfileActivationContextInterpolates the given path string using the current context's properties.- Specified by:
interpolatePathin interfaceProfileActivationContext- Parameters:
path- The path string to interpolate- Returns:
- The interpolated path string
- Throws:
InterpolatorException- if an error occurs during interpolation
-
exists
Description copied from interface:ProfileActivationContextChecks if a file or directory matching the given glob pattern exists at the specified path.- Specified by:
existsin interfaceProfileActivationContext- Parameters:
path- the base path to checkenableGlob- whether the path can be a glob expression- Returns:
trueif a matching file exists,falseotherwise- Throws:
ModelBuilderException- if an error occurs while checking the path
-