diff --git a/src/main/java/org/olat/core/gui/control/controller/BasicController.java b/src/main/java/org/olat/core/gui/control/controller/BasicController.java index 55cb8d22691b642dd05dbdf7b8e7176f1c206dff..eff380ec3b74a1407fd8bfc624772e98b1a6a577 100644 --- a/src/main/java/org/olat/core/gui/control/controller/BasicController.java +++ b/src/main/java/org/olat/core/gui/control/controller/BasicController.java @@ -187,6 +187,7 @@ public abstract class BasicController extends DefaultController { * convenience method: registers a mapper which will be automatically * deregistered upon dispose of the controller * + * @param ureq The user request object * @param m * the mapper that delivers the resources * @return The mapper base URL @@ -200,6 +201,8 @@ public abstract class BasicController extends DefaultController { * convenience method: registers a cacheable mapper which will be * automatically deregistered upon dispose of the controller * + * @param ureq The user request object + * * @param cacheableMapperID * the mapper ID that is used in the url to identify this mapper. * Should be something that is derived from the context or diff --git a/src/main/java/org/olat/course/nodes/VideoCourseNode.java b/src/main/java/org/olat/course/nodes/VideoCourseNode.java index a049b34a9e8b0c3aaed04632cf70ebc3399e5a36..bc859caaaa537fbf8f357ae95243cfdbe8c7a6b3 100644 --- a/src/main/java/org/olat/course/nodes/VideoCourseNode.java +++ b/src/main/java/org/olat/course/nodes/VideoCourseNode.java @@ -154,9 +154,7 @@ public class VideoCourseNode extends AbstractAccessableCourseNode { @Override public Controller createPeekViewRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, NodeEvaluation ne) { - VideoManager videoManager = CoreSpringFactory.getImpl(VideoManager.class); - VFSContainer masterFolder = videoManager.getMasterContainer(getReferencedRepositoryEntry().getOlatResource()); - Controller controller = new VideoPeekviewController(ureq, wControl, masterFolder); + Controller controller = new VideoPeekviewController(ureq, wControl, getReferencedRepositoryEntry().getOlatResource()); return controller; } } diff --git a/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java b/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java index a735aa33ec96495d40516fbc1ba9493de1d61452..452b0483bb3e830fa498e3c42b3e44a0e5e2f96a 100644 --- a/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java +++ b/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java @@ -27,7 +27,10 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.core.util.vfs.VFSContainer; +import org.olat.modules.video.VideoManager; import org.olat.modules.video.manager.VideoMediaMapper; +import org.olat.resource.OLATResource; +import org.springframework.beans.factory.annotation.Autowired; /** * peekviewcontroller of videomodule @@ -37,10 +40,15 @@ import org.olat.modules.video.manager.VideoMediaMapper; */ public class VideoPeekviewController extends BasicController implements Controller{ - public VideoPeekviewController(UserRequest ureq, WindowControl wControl, VFSContainer posterFolder) { + @Autowired + private VideoManager videoManager; + + public VideoPeekviewController(UserRequest ureq, WindowControl wControl, OLATResource videoResource) { super(ureq, wControl); VelocityContainer peekviewVC = createVelocityContainer("peekview"); - String mediaUrl = registerMapper(ureq, new VideoMediaMapper(posterFolder)); + VFSContainer posterFolder = videoManager.getMasterContainer(videoResource); + String masterMapperId = "master-" + videoResource.getResourceableId(); + String mediaUrl = registerCacheableMapper(ureq, masterMapperId, new VideoMediaMapper(posterFolder)); peekviewVC.contextPut("mediaUrl", mediaUrl); peekviewVC.contextPut("nodeLink", posterFolder); putInitialPanel(peekviewVC); diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java index e7375986749d08d0fbd223d7a597395e7cd2684b..9473c6df14f9eaccb1dd1805a8c33a952515fb5e 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java @@ -117,11 +117,13 @@ public class VideoDisplayController extends BasicController { mainVC.contextPut("autoplay", autoplay); // Mapper for Video - String masterUrl = registerMapper(ureq, new VideoMediaMapper(videoManager.getMasterContainer(entry.getOlatResource()))); + String masterMapperId = "master-" + entry.getOlatResource().getResourceableId(); + String masterUrl = registerCacheableMapper(ureq, masterMapperId, new VideoMediaMapper(videoManager.getMasterContainer(entry.getOlatResource()))); mainVC.contextPut("masterUrl", masterUrl); - // mapper for versions specific because not in same base as the resource itself + // Mapper for versions specific because not in same base as the resource itself + String transcodingMapperId = "transcoding-" + entry.getOlatResource().getResourceableId(); VFSContainer transcodedContainer = videoManager.getTranscodingContainer(entry.getOlatResource()); - String transcodedUrl = registerMapper(ureq, new VideoMediaMapper(transcodedContainer)); + String transcodedUrl = registerCacheableMapper(ureq, transcodingMapperId, new VideoMediaMapper(transcodedContainer)); mainVC.contextPut("transcodedUrl", transcodedUrl); if ((showComments || showRating) && !ureq.getUserSession().getRoles().isGuestOnly()) {