|
22 | 22 | import java.util.Collections; |
23 | 23 | import java.util.regex.Pattern; |
24 | 24 |
|
| 25 | +import org.apache.jackrabbit.vault.packaging.PackageProperties; |
25 | 26 | import org.apache.jackrabbit.vault.packaging.PackageType; |
26 | 27 | import org.apache.jackrabbit.vault.util.Constants; |
27 | 28 | import org.apache.jackrabbit.vault.util.DocViewNode; |
28 | 29 | import org.apache.jackrabbit.vault.validation.spi.DocumentViewXmlValidator; |
29 | 30 | import org.apache.jackrabbit.vault.validation.spi.MetaInfPathValidator; |
30 | 31 | import org.apache.jackrabbit.vault.validation.spi.NodePathValidator; |
| 32 | +import org.apache.jackrabbit.vault.validation.spi.PropertiesValidator; |
31 | 33 | import org.apache.jackrabbit.vault.validation.spi.ValidationContext; |
32 | 34 | import org.apache.jackrabbit.vault.validation.spi.ValidationMessage; |
33 | 35 | import org.apache.jackrabbit.vault.validation.spi.ValidationMessageSeverity; |
34 | 36 | import org.jetbrains.annotations.NotNull; |
35 | 37 | import org.jetbrains.annotations.Nullable; |
36 | 38 |
|
37 | | -public class AemCloudValidator implements NodePathValidator, MetaInfPathValidator, DocumentViewXmlValidator { |
| 39 | +public class AemCloudValidator implements NodePathValidator, MetaInfPathValidator, DocumentViewXmlValidator, PropertiesValidator { |
38 | 40 |
|
39 | 41 | static final String VIOLATION_MESSAGE_CONDITION_AUTHOR_ONLY_CONTAINER = "only allowed in author-specific packages"; |
40 | 42 | static final String VIOLATION_MESSAGE_CONDITION_OVERALL = "not allowed"; |
@@ -212,4 +214,14 @@ static boolean isPackagePathInstalledConditionally(String runMode, Path packageR |
212 | 214 | return null; |
213 | 215 | } |
214 | 216 |
|
| 217 | + @Override |
| 218 | + public @Nullable Collection<ValidationMessage> validate(@NotNull PackageProperties properties) { |
| 219 | + if (!properties.getExternalHooks().isEmpty()) { |
| 220 | + if (PackageType.CONTENT.equals(packageType) || PackageType.MIXED.equals(packageType)) { |
| 221 | + return Collections.singleton(new ValidationMessage(defaultSeverity, VIOLATION_MESSAGE_INSTALL_HOOK_IN_MUTABLE_PACKAGE)); |
| 222 | + } |
| 223 | + } |
| 224 | + return null; |
| 225 | + } |
| 226 | + |
215 | 227 | } |
0 commit comments