LPS-35738 permission to add subsites (and make group permissions logic consistent)
LPS-35738 Sort
LPS-35619 Cannot upload multiple files or change doc type in Documents and Media Portlet
LPS-35619 Use parentNode since it's indexed in the node already
LPS-30344 Split log4j log file for SPI
LPS-34943 Move AutoDeployer from portal-impl to portal-service, because it will be needed for a later commit. This commit itself should not break anything, since we're the only ones that use AutoDeployer.
LPS-34943 Move AutoDeployer from portal-impl to portal-service, because it will be needed for a later commit. This commit itself should not break anything, since we're the only ones that use AutoDeployer. (master only)
LPS-34943 Change the interface of AutoDeployListener to return the code from AutoDeployer, so we can know whether a listener actually deployed a file, or if it just skipped it. This is needed so we can later ensure that only 1 listener actually deploys a file.
LPS-34943 Change the interface of AutoDeployListener to return the code from AutoDeployer, so we can know whether a listener actually deployed a file, or if it just skipped it. This is needed so we can later ensure that only 1 listener actually deploys a file. (master only)
LPS-34943 Move logic of iterating through all listeners, and then calling deploy on them, to a static method in AutoDeployDir. Note there are no logic changes here.
LPS-34943 If more than one listener returns a code that says it processed the file, then that is bad, because a single file was deployed multiple times into the webapps directory. Throw an exception multiple times X times, and then blacklist the file, to get the developer's attention with a nasty exception that describes what is wrong.
LPS-34943 HookAutoDeployListener calls isHookPlugin to see whether it should deploy a plugin or not. If you deploy a theme with a liferay-hook.xml, then it will call HookAutoDeployListener, and then later on, also call ThemeAutoDeployListener. Then that theme was deployed twice to the same webapps directory. This tells HookAutoDeployListener not to deploy a theme that has a liferay-hook.xml in it, in the same that it does not deploy a portlet that has a liferay-hook.xml in it. See LPS-26122.