From 4b3e1ce0c98bfdcf899e64a3d693d6526439d15c Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Tue, 9 Apr 2019 11:08:30 +0200
Subject: [PATCH] OO-3932: Refactoring: Move discovery client to WOPI service

---
 .../manager/CollaboraServiceImpl.java         |  7 +---
 .../doceditor/wopi/WopiDiscoveryClient.java   | 41 -------------------
 .../services/doceditor/wopi/WopiService.java  | 10 +++++
 ...ientImpl.java => WopiDiscoveryClient.java} | 11 ++---
 .../wopi/manager/WopiServiceImpl.java         | 14 ++++++-
 5 files changed, 29 insertions(+), 54 deletions(-)
 delete mode 100644 src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiDiscoveryClient.java
 rename src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/{WopiDiscoveryClientImpl.java => WopiDiscoveryClient.java} (90%)

diff --git a/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java
index e8a66347aa2..c456b7439aa 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/collabora/manager/CollaboraServiceImpl.java
@@ -32,7 +32,6 @@ import org.olat.core.commons.services.doceditor.collabora.CollaboraService;
 import org.olat.core.commons.services.doceditor.wopi.Access;
 import org.olat.core.commons.services.doceditor.wopi.Action;
 import org.olat.core.commons.services.doceditor.wopi.Discovery;
-import org.olat.core.commons.services.doceditor.wopi.WopiDiscoveryClient;
 import org.olat.core.commons.services.doceditor.wopi.WopiService;
 import org.olat.core.commons.services.vfs.VFSMetadata;
 import org.olat.core.commons.services.vfs.VFSRepositoryService;
@@ -71,8 +70,6 @@ public class CollaboraServiceImpl implements CollaboraService, GenericEventListe
 	@Autowired
 	private WopiService wopiService;
 	@Autowired
-	private WopiDiscoveryClient discoveryClient;
-	@Autowired
 	private VFSRepositoryService vfsRepositoryService;
 	@Autowired
 	private VFSLockManager lockManager;
@@ -155,14 +152,14 @@ public class CollaboraServiceImpl implements CollaboraService, GenericEventListe
 	public Discovery getDiscovery() {
 		if (discovery == null) {
 			String discoveryUrl = getDiscoveryUrl();
-			discovery = discoveryClient.getDiscovery(discoveryUrl);
+			discovery = wopiService.getDiscovery(discoveryUrl);
 			log.info("Recieved new WOPI discovery from " + discoveryUrl);
 		}
 		return discovery;
 	}
 
 	private String getDiscoveryUrl() {
-		return collaboraModule.getBaseUrl() + discoveryClient.getRegularDiscoveryPath();
+		return collaboraModule.getBaseUrl() + wopiService.getRegularDiscoveryPath();
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiDiscoveryClient.java b/src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiDiscoveryClient.java
deleted file mode 100644
index df803da162c..00000000000
--- a/src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiDiscoveryClient.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.core.commons.services.doceditor.wopi;
-
-/**
- * 
- * Initial date: 5 Mar 2019<br>
- * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
- *
- */
-public interface WopiDiscoveryClient {
-	
-	public String getRegularDiscoveryPath();
-
-	/**
-	 * Download the discovery file from the WOPI client.
-	 *
-	 * @param discoveryUrl
-	 * @return
-	 */
-	public Discovery getDiscovery(String discoveryUrl);
-
-	
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiService.java b/src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiService.java
index a17d2fe4399..cd561598c20 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiService.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/wopi/WopiService.java
@@ -33,6 +33,16 @@ import org.olat.core.util.vfs.VFSLeaf;
  *
  */
 public interface WopiService {
+	
+	public String getRegularDiscoveryPath();
+
+	/**
+	 * Download the discovery file from the WOPI client.
+	 *
+	 * @param discoveryUrl
+	 * @return
+	 */
+	public Discovery getDiscovery(String discoveryUrl);
 
 	boolean fileExists(String fileId);
 
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiDiscoveryClientImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiDiscoveryClient.java
similarity index 90%
rename from src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiDiscoveryClientImpl.java
rename to src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiDiscoveryClient.java
index 377f7e5a774..e9155c7ef1c 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiDiscoveryClientImpl.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiDiscoveryClient.java
@@ -27,7 +27,6 @@ import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
 import org.olat.core.commons.services.doceditor.wopi.Discovery;
-import org.olat.core.commons.services.doceditor.wopi.WopiDiscoveryClient;
 import org.olat.core.commons.services.doceditor.wopi.model.DiscoveryImpl;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
@@ -40,9 +39,9 @@ import org.springframework.stereotype.Service;
  *
  */
 @Service
-public class WopiDiscoveryClientImpl implements WopiDiscoveryClient {
+class WopiDiscoveryClient {
 	
-	private static final OLog log = Tracing.createLoggerFor(WopiDiscoveryClientImpl.class);
+	private static final OLog log = Tracing.createLoggerFor(WopiDiscoveryClient.class);
 	
 	private static final int TIMEOUT_5000_MILLIS = 5000;
 	private static final RequestConfig REQUEST_CONFIG = RequestConfig.custom()
@@ -51,13 +50,11 @@ public class WopiDiscoveryClientImpl implements WopiDiscoveryClient {
 			.setConnectionRequestTimeout(TIMEOUT_5000_MILLIS)
 			.build();
 
-	@Override
-	public String getRegularDiscoveryPath() {
+	String getRegularDiscoveryPath() {
 		return "hosting/discovery";
 	}
 	
-	@Override
-	public Discovery getDiscovery(String discoveryUrl) {
+	Discovery getDiscovery(String discoveryUrl) {
 		HttpGet request = new HttpGet(discoveryUrl);
 		request.setConfig(REQUEST_CONFIG);
 		
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiServiceImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiServiceImpl.java
index 3dc229fb649..3c8afdf4c56 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/wopi/manager/WopiServiceImpl.java
@@ -27,8 +27,8 @@ import java.util.UUID;
 
 import javax.annotation.PostConstruct;
 
-import org.olat.core.commons.services.doceditor.DocEditorSecurityCallback;
 import org.olat.core.commons.services.doceditor.DocEditor.Mode;
+import org.olat.core.commons.services.doceditor.DocEditorSecurityCallback;
 import org.olat.core.commons.services.doceditor.wopi.Access;
 import org.olat.core.commons.services.doceditor.wopi.Action;
 import org.olat.core.commons.services.doceditor.wopi.App;
@@ -61,6 +61,8 @@ public class WopiServiceImpl implements WopiService {
 	
 	private CacheWrapper<String, Access> accessCache;
 	
+	@Autowired
+	private WopiDiscoveryClient dicoveryClient;
 	@Autowired
 	private CoordinatorManager coordinator;
 	@Autowired
@@ -70,6 +72,16 @@ public class WopiServiceImpl implements WopiService {
 	public void init() {
 		accessCache = coordinator.getCoordinator().getCacher().getCache(WopiService.class.getSimpleName(), "access");
 	}
+
+	@Override
+	public String getRegularDiscoveryPath() {
+		return dicoveryClient.getRegularDiscoveryPath();
+	}
+
+	@Override
+	public Discovery getDiscovery(String discoveryUrl) {
+		return dicoveryClient.getDiscovery(discoveryUrl);
+	}
 	
 	@Override
 	public boolean fileExists(String fileId) {
-- 
GitLab