Skip to content
Snippets Groups Projects
Commit 85f574f7 authored by srosse's avatar srosse
Browse files

Merge remote-tracking branch 'origin/OpenOLAT_14.2'

parents a4460a00 a411d476
No related branches found
No related tags found
No related merge requests found
......@@ -93,6 +93,13 @@ public class AdobeConnectModule extends AbstractSpringModule implements ConfigOn
private String createMeetingImmediately;
@Value("${vc.adobe.login.compatibility.mode:false}")
private String loginCompatibilityMode;
@Value("${vc.http.connect.timeout:30000}")
private int httpConnectTimeout;
@Value("${vc.http.connect.request.timeout:30000}")
private int httpConnectRequestTimeout;
@Value("${vc.http.connect.socket.timeout:30000}")
private int httpSocketTimeout;
@Autowired
public AdobeConnectModule(CoordinatorManager coordinatorManager) {
......@@ -343,4 +350,16 @@ public class AdobeConnectModule extends AbstractSpringModule implements ConfigOn
public boolean isLoginCompatibilityMode() {
return "true".equals(loginCompatibilityMode);
}
public int getHttpConnectTimeout() {
return httpConnectTimeout;
}
public int getHttpConnectRequestTimeout() {
return httpConnectRequestTimeout;
}
public int getHttpSocketTimeout() {
return httpSocketTimeout;
}
}
......@@ -30,6 +30,7 @@ import java.util.Locale;
import javax.ws.rs.core.UriBuilder;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
......@@ -37,6 +38,7 @@ import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicHeader;
import org.apache.http.util.EntityUtils;
import org.apache.logging.log4j.Logger;
import org.olat.core.commons.persistence.DB;
import org.olat.core.logging.Tracing;
import org.olat.core.util.StringHelper;
import org.olat.core.util.i18n.I18nModule;
......@@ -80,6 +82,8 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
private String adminFolderScoId;
private BreezeSession currentSession;
@Autowired
private DB dbInstance;
@Autowired
protected AdobeConnectModule adobeConnectModule;
......@@ -221,7 +225,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
boolean ok = false;
HttpGet get = createAdminMethod(builder, errors);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200 || statusCode == 201) {
......@@ -296,7 +300,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
boolean ok = false;
HttpGet get = createAdminMethod(builder, error);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode >= 200 && statusCode < 400) {
......@@ -331,7 +335,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
boolean ok = false;
HttpGet get = createAdminMethod(builder, error);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode >= 200 && statusCode < 400) {
......@@ -365,7 +369,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
boolean ok = false;
HttpGet get = createAdminMethod(builder, error);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode >= 200 && statusCode < 400) {
......@@ -398,7 +402,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
boolean ok = false;
HttpGet get = createAdminMethod(builder, errors);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode >= 200 && statusCode < 400) {
......@@ -462,7 +466,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
List<AdobeConnectSco> shortCuts = null;
HttpGet get = createAdminMethod(builder, errors);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200) {
......@@ -491,7 +495,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
AdobeConnectPrincipal user = null;
HttpGet get = createAdminMethod(builder, errors);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200) {
......@@ -563,7 +567,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
BreezeSession session = null;
HttpGet getInfo = new HttpGet(uric);
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(getInfo)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200) {
......@@ -592,7 +596,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
.build();
HttpGet getLogin = new HttpGet(uri);
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(getLogin)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200) {
......@@ -615,7 +619,7 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
List<AdobeConnectSco> scos = null;
HttpGet get = createAdminMethod(builder, errors);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200 || statusCode == 201) {
......@@ -629,12 +633,23 @@ public abstract class AbstractAdobeConnectProvider implements AdobeConnectSPI {
}
return scos;
}
private CloseableHttpClient buildHttpClient() {
dbInstance.commit();// free connection
RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT)
.setConnectTimeout(adobeConnectModule.getHttpConnectTimeout())
.setConnectionRequestTimeout(adobeConnectModule.getHttpConnectRequestTimeout())
.setSocketTimeout(adobeConnectModule.getHttpSocketTimeout())
.build();
return HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();
}
protected List<AdobeConnectPrincipal> sendPrincipalRequest(UriBuilder builder, AdobeConnectErrors errors) {
List<AdobeConnectPrincipal> users = null;
HttpGet get = createAdminMethod(builder, errors);
if(get != null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build();
try(CloseableHttpClient httpClient = buildHttpClient();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == 200 || statusCode == 201) {
......
......@@ -81,6 +81,12 @@ public class BigBlueButtonModule extends AbstractSpringModule implements ConfigO
@Value("${vc.bigbluebutton.user.bandwidth.requirement:0.4}")
private Double userBandwidhtRequirement;
@Value("${vc.http.connect.timeout:30000}")
private int httpConnectTimeout;
@Value("${vc.http.connect.request.timeout:30000}")
private int httpConnectRequestTimeout;
@Value("${vc.http.connect.socket.timeout:30000}")
private int httpSocketTimeout;
@Autowired
public BigBlueButtonModule(CoordinatorManager coordinatorManager) {
......@@ -281,5 +287,17 @@ public class BigBlueButtonModule extends AbstractSpringModule implements ConfigO
public void setAdhocMeetingEnabled(boolean adhocMeetingEnabled) {
this.adhocMeetingEnabled = Boolean.toString(adhocMeetingEnabled);
setStringProperty(PROP_ADHOC_MEETING, this.adhocMeetingEnabled, true);
}
}
public int getHttpConnectTimeout() {
return httpConnectTimeout;
}
public int getHttpConnectRequestTimeout() {
return httpConnectRequestTimeout;
}
public int getHttpSocketTimeout() {
return httpSocketTimeout;
}
}
......@@ -32,6 +32,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
......@@ -59,6 +60,7 @@ import org.olat.group.DeletableGroupData;
import org.olat.modules.bigbluebutton.BigBlueButtonManager;
import org.olat.modules.bigbluebutton.BigBlueButtonMeeting;
import org.olat.modules.bigbluebutton.BigBlueButtonMeetingTemplate;
import org.olat.modules.bigbluebutton.BigBlueButtonModule;
import org.olat.modules.bigbluebutton.BigBlueButtonRecording;
import org.olat.modules.bigbluebutton.BigBlueButtonServer;
import org.olat.modules.bigbluebutton.BigBlueButtonTemplatePermissions;
......@@ -103,6 +105,8 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager,
@Autowired
private BusinessGroupService businessGroupService;
@Autowired
private BigBlueButtonModule bigBlueButtonModule;
@Autowired
private BigBlueButtonServerDAO bigBlueButtonServerDao;
@Autowired
private BigBlueButtonMeetingDAO bigBlueButtonMeetingDao;
......@@ -841,10 +845,19 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager,
}
protected Document sendRequest(BigBlueButtonUriBuilder builder, BigBlueButtonErrors errors) {
dbInstance.commit();
URI uri = builder.build();
HttpGet get = new HttpGet(uri);
RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT)
.setConnectTimeout(bigBlueButtonModule.getHttpConnectTimeout())
.setConnectionRequestTimeout(bigBlueButtonModule.getHttpConnectRequestTimeout())
.setSocketTimeout(bigBlueButtonModule.getHttpSocketTimeout())
.build();
try(CloseableHttpClient httpClient = HttpClientBuilder.create()
.disableAutomaticRetries().build();
.setDefaultRequestConfig(requestConfig)
.disableAutomaticRetries()
.build();
CloseableHttpResponse response = httpClient.execute(get)) {
int statusCode = response.getStatusLine().getStatusCode();
log.debug("Status code of: {} {}", uri, statusCode);
......
......@@ -51,6 +51,13 @@ public class GoToMeetingModule extends AbstractSpringModule implements ConfigOnO
@Value("${vc.gotomeetings.timezone.id:null}")
private String goToTimeZoneId;
@Value("${vc.http.connect.timeout:30000}")
private int httpConnectTimeout;
@Value("${vc.http.connect.request.timeout:30000}")
private int httpConnectRequestTimeout;
@Value("${vc.http.connect.socket.timeout:30000}")
private int httpSocketTimeout;
@Autowired
public GoToMeetingModule(CoordinatorManager coordinatorManager) {
super(coordinatorManager);
......@@ -122,5 +129,15 @@ public class GoToMeetingModule extends AbstractSpringModule implements ConfigOnO
setStringProperty(GOTO_TIMEZONEID, goToTimeZoneId, true);
}
public int getHttpConnectTimeout() {
return httpConnectTimeout;
}
public int getHttpConnectRequestTimeout() {
return httpConnectRequestTimeout;
}
public int getHttpSocketTimeout() {
return httpSocketTimeout;
}
}
......@@ -27,6 +27,7 @@ import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpDelete;
......@@ -161,7 +162,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
RepositoryEntry resourceOwner, String subIdentifier, BusinessGroup businessGroup, GoToError error) {
GoToMeeting scheduledMeeting = null;
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
String url = gotoTrainingUrl + "/organizers/" + organizer.getOrganizerKey() + "/trainings";
HttpPost post = new HttpPost(url);
decorateWithAccessToken(post, organizer);
......@@ -172,7 +173,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
String objectStr = trainingJson.toString();
post.setEntity(new StringEntity(objectStr, ContentType.APPLICATION_JSON));
GoToResponse response = execute(httpClient, post);
GoToResponse response = execute(post);
int status = response.status();
if(status == 201) {//created
String trainingKey = response.content();
......@@ -215,7 +216,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
}
private void updateStartEnd(GoToMeetingImpl meeting, Date start, Date end, GoToError error) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/organizers/" + organizer.getOrganizerKey() + "/trainings/" + meeting.getMeetingKey() + "/times";
......@@ -225,7 +226,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
String payload = GoToJsonUtil.trainingTimes(goToMeetingModule.getGoToTimeZoneId(), start, end).toString();
put.setEntity(new StringEntity(payload, ContentType.APPLICATION_JSON));
GoToResponse response = execute(httpClient, put);
GoToResponse response = execute(put);
int status = response.status();
if(status == 200) {//created
meeting.setStartDate(start);
......@@ -239,7 +240,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
}
private void updateNameDescription(GoToMeetingImpl meeting, GoToTrainingG2T training, String name, String description, GoToError error) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/organizers/" + organizer.getOrganizerKey() + "/trainings/" + meeting.getMeetingKey() + "/nameDescription";
......@@ -253,7 +254,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
String payload = GoToJsonUtil.trainingNameDescription(name, description).toString();
put.setEntity(new StringEntity(payload, ContentType.APPLICATION_JSON));
GoToResponse response = execute(httpClient, put);
GoToResponse response = execute(put);
int status = response.status();
if(status == 204) {//created
meeting.setName(name);
......@@ -273,7 +274,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
public GoToRegistrant registerTraining(GoToMeeting meeting, Identity trainee, GoToError error) {
GoToRegistrant registrant = registrantDao.getRegistrant(meeting, trainee);
if(registrant == null) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/organizers/" + organizer.getOrganizerKey() + "/trainings/" + meeting.getMeetingKey() + "/registrants";
......@@ -283,7 +284,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
String traineeJson = GoToJsonUtil.registrant(trainee).toString();
post.setEntity(new StringEntity(traineeJson, ContentType.APPLICATION_JSON));
GoToResponse response = execute(httpClient, post);
GoToResponse response = execute(post);
int status = response.status();
if(status == 201) {//created
String content = response.content();
......@@ -310,14 +311,14 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
}
private GoToRegistrantG2T getRegistrant(String registrantKey, GoToMeeting meeting, GoToError error) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/organizers/" + organizer.getOrganizerKey() + "/trainings/" + meeting.getMeetingKey() + "/registrants/" + registrantKey;
HttpGet get = new HttpGet(url);
decorateWithAccessToken(get, organizer);
GoToResponse response = execute(httpClient, get);
GoToResponse response = execute(get);
if(response.status() == 200) {
String content = response.content();
return GoToJsonUtil.parseAddRegistrant(content);
......@@ -345,13 +346,13 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
} catch (Exception e) {
log.error("", e);
} finally {
log.error(method + " return " + status + ": " + responseString);
log.error("{} return {}: {}", method, status, responseString);
}
}
private void logGoToError(String method, int status, String responseString, GoToError error) {
error.setErrorCode(status);
log.error(method + " return " + status + ": " + responseString);
log.error("{} return {}: {}", method, status, responseString);
}
@Override
......@@ -387,14 +388,14 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
}
private GoToTrainingG2T getTraining(GoToMeeting meeting, GoToError error) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/organizers/" + organizer.getOrganizerKey() + "/trainings/" + meeting.getMeetingKey();
HttpGet get = new HttpGet(url);
decorateWithAccessToken(get, organizer);
GoToResponse response = execute(httpClient, get);
GoToResponse response = execute(get);
int status = response.status();
if(status == 200) {//deleted
String content = response.content();
......@@ -411,14 +412,14 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
@Override
public String startTraining(GoToMeeting meeting, GoToError error) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/trainings/" + meeting.getMeetingKey() + "/start";
HttpGet get = new HttpGet(url);
decorateWithAccessToken(get, organizer);
GoToResponse response = execute(httpClient, get);
GoToResponse response = execute(get);
int status = response.status();
if(status == 200) {//deleted
String content = response.content();
......@@ -445,14 +446,14 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
@Override
public List<GoToRecordingsG2T> getRecordings(GoToMeeting meeting, GoToError error) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/trainings/" + meeting.getMeetingKey() + "/recordings";
HttpGet get = new HttpGet(url);
decorateWithAccessToken(get, organizer);
GoToResponse response = execute(httpClient, get);
GoToResponse response = execute(get);
int status = response.status();
if(status == 200) {//deleted
String content = response.content();
......@@ -481,14 +482,14 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
}
private boolean deleteTraining(GoToMeeting meeting, GoToError error) {
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
GoToOrganizer organizer = meeting.getOrganizer();
String url = gotoTrainingUrl + "/organizers/" + organizer.getOrganizerKey() + "/trainings/" + meeting.getMeetingKey();
HttpDelete delete = new HttpDelete(url);
decorateWithAccessToken(delete, organizer);
GoToResponse response = execute(httpClient, delete);
GoToResponse response = execute(delete);
int status = response.status();
if(status == 204) {//deleted
return true;
......@@ -500,7 +501,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
error.setError(errorVo.getErrorCode());
error.setDescription(errorVo.getDescription());
} else {
log.error("deleteTraining return " + status + ": " + content);
log.error("deleteTraining return {}: {}", status, content);
}
} else {
logGoToError("deleteTraining", response, error);
......@@ -532,7 +533,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
public boolean refreshToken(GoToOrganizer organizer) {
GoToOrganizer reloadedOrganizer = organizerDao.loadOrganizerForUpdate(organizer);
boolean success = false;
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
HttpPost post = new HttpPost(tokenUrl);
post.addHeader("Accept", "application/json");
......@@ -545,7 +546,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
urlParameters.add(new BasicNameValuePair("refresh_token", reloadedOrganizer.getRefreshToken()));
post.setEntity(new UrlEncodedFormEntity(urlParameters));
GoToResponse response = execute(httpClient, post);
GoToResponse response = execute(post);
if(response.status() < 400) {
GoToOrganizerG2T org = GoToJsonUtil.parseToken(response.content());
organizerDao.updateOrganizer(reloadedOrganizer, org.getAccessToken(), org.getRefreshToken(), org.getExpiresIn());
......@@ -574,7 +575,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
*/
public GoToOrganizerG2T login(String username, String password, GoToError error) {
GoToOrganizerG2T organizer = null;
try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
try {
HttpPost post = new HttpPost(tokenUrl);
post.addHeader("Accept", "application/json");
......@@ -588,7 +589,7 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
urlParameters.add(new BasicNameValuePair("password", password));
post.setEntity(new UrlEncodedFormEntity(urlParameters));
GoToResponse response = execute(httpClient, post);
GoToResponse response = execute(post);
if(response.status() < 400) {
organizer = GoToJsonUtil.parseToken(response.content());
} else {
......@@ -640,8 +641,18 @@ public class GoToMeetingManagerImpl implements GoToMeetingManager {
return new Date().after(cal.getTime());
}
private GoToResponse execute(CloseableHttpClient httpClient, HttpUriRequest request) {
try(CloseableHttpResponse response = httpClient.execute(request)) {
private GoToResponse execute(HttpUriRequest request) {
dbInstance.commit();// free connection
RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT)
.setConnectTimeout(goToMeetingModule.getHttpConnectTimeout())
.setConnectionRequestTimeout(goToMeetingModule.getHttpConnectRequestTimeout())
.setSocketTimeout(goToMeetingModule.getHttpSocketTimeout())
.build();
try(CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();
CloseableHttpResponse response = httpClient.execute(request)) {
int status = response.getStatusLine().getStatusCode();
HttpEntity entity = response.getEntity();
String content;
......
......@@ -33,6 +33,7 @@ import javax.annotation.PostConstruct;
import javax.ws.rs.core.UriBuilder;
import javax.xml.ws.BindingProvider;
import org.apache.logging.log4j.Logger;
import org.apache.openmeetings.axis.services.GetRoomsWithCurrentUsersByListAndType;
import org.apache.openmeetings.axis.services.RoomService;
import org.apache.openmeetings.axis.services.RoomServicePortType;
......@@ -43,11 +44,11 @@ import org.apache.openmeetings.axis.services.xsd.RoomUser;
import org.apache.openmeetings.db.dto.record.xsd.RecordingDTO;
import org.apache.openmeetings.db.dto.room.xsd.RoomDTO;
import org.apache.openmeetings.db.entity.server.xsd.Sessiondata;
import org.olat.core.commons.persistence.DB;
import org.olat.core.helpers.Settings;
import org.olat.core.id.Identity;
import org.olat.core.id.OLATResourceable;
import org.olat.core.id.UserConstants;
import org.apache.logging.log4j.Logger;
import org.olat.core.logging.Tracing;
import org.olat.core.util.StringHelper;
import org.olat.core.util.WebappHelper;
......@@ -78,6 +79,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel
private static final Logger log = Tracing.createLoggerFor(OpenMeetingsManagerImpl.class);
@Autowired
private DB dbInstance;
@Autowired
private OpenMeetingsDAO openMeetingsDao;
@Autowired
......@@ -718,6 +721,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel
}
private final RoomServicePortType getRoomWebService() {
dbInstance.commit();// free connection before an HTTP call
RoomService ss = new RoomService();
RoomServicePortType port = ss.getRoomServiceHttpSoap11Endpoint();
String endPoint = getOpenMeetingsEndPoint() + "RoomService?wsdl";
......@@ -726,6 +731,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel
}
private final UserServicePortType getUserWebService() {
dbInstance.commit();// free connection before an HTTP call
UserService ss = new UserService();
UserServicePortType port = ss.getUserServiceHttpSoap11Endpoint();
String endPoint = getOpenMeetingsEndPoint() + "UserService?wsdl";
......
......@@ -1523,6 +1523,11 @@ vc.bigbluebutton.daysToKeep=
vc.bigbluebutton.secret=
vc.bigbluebutton.shared.secret=
# HTTP connection generic settings in milliseconds
vc.http.connect.timeout=30000
vc.http.connect.request.timeout=30000
vc.http.connect.socket.timeout=30000
########################################
# Options for card2brain
########################################
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment