|
26 | 26 | import org.apache.maven.enforcer.rule.api.EnforcerRuleError;
|
27 | 27 | import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
|
28 | 28 | import org.apache.maven.enforcer.rules.utils.OSUtil;
|
| 29 | +import org.apache.maven.execution.MavenSession; |
29 | 30 | import org.apache.maven.model.Activation;
|
30 | 31 | import org.apache.maven.model.ActivationOS;
|
31 | 32 | import org.apache.maven.model.Profile;
|
| 33 | +import org.apache.maven.model.profile.DefaultProfileActivationContext; |
| 34 | +import org.apache.maven.model.profile.ProfileActivationContext; |
32 | 35 | import org.apache.maven.model.profile.activation.ProfileActivator;
|
33 | 36 | import org.codehaus.plexus.util.Os;
|
34 | 37 | import org.codehaus.plexus.util.StringUtils;
|
|
43 | 46 | public final class RequireOS extends AbstractStandardEnforcerRule {
|
44 | 47 | private final ProfileActivator activator;
|
45 | 48 |
|
| 49 | + private final ProfileActivationContext profileActivationContext; |
| 50 | + |
46 | 51 | /**
|
47 | 52 | * The OS family type desired<br />
|
48 | 53 | * Possible values:
|
@@ -85,8 +90,20 @@ public final class RequireOS extends AbstractStandardEnforcerRule {
|
85 | 90 | * Instantiates a new RequireOS.
|
86 | 91 | */
|
87 | 92 | @Inject
|
88 |
| - RequireOS(@Named("os") ProfileActivator activator) { |
| 93 | + RequireOS(@Named("os") ProfileActivator activator, MavenSession session) { |
89 | 94 | this.activator = Objects.requireNonNull(activator);
|
| 95 | + this.profileActivationContext = createProfileActivationContext(session); |
| 96 | + } |
| 97 | + |
| 98 | + private ProfileActivationContext createProfileActivationContext(MavenSession session) { |
| 99 | + DefaultProfileActivationContext context = new DefaultProfileActivationContext(); |
| 100 | + context.setActiveProfileIds(session.getRequest().getActiveProfiles()); |
| 101 | + context.setInactiveProfileIds(session.getRequest().getInactiveProfiles()); |
| 102 | + context.setProjectDirectory(session.getCurrentProject().getBasedir()); |
| 103 | + context.setProjectProperties(session.getCurrentProject().getProperties()); |
| 104 | + context.setSystemProperties(System.getProperties()); |
| 105 | + context.setUserProperties(session.getUserProperties()); |
| 106 | + return context; |
90 | 107 | }
|
91 | 108 |
|
92 | 109 | @Override
|
@@ -143,7 +160,8 @@ private void displayOSInfo() {
|
143 | 160 | * @return true if the version is allowed.
|
144 | 161 | */
|
145 | 162 | public boolean isAllowed() {
|
146 |
| - return activator.isActive(createProfile(), null, null); |
| 163 | + // empty lambda as problems collector |
| 164 | + return activator.isActive(createProfile(), profileActivationContext, (req -> {})); |
147 | 165 | }
|
148 | 166 |
|
149 | 167 | /**
|
|
0 commit comments