From 298428e5fa8fc6a84f456a6a8e447732cd6af5d8 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 4 Apr 2017 20:37:08 +0200 Subject: [PATCH] OpenVidu maven multimodule project refactoring --- openvidu-backend-client/pom.xml | 49 +++++++ .../java/org/openvidu/client/OpenVidu.java | 101 ++++++++++++++ .../openvidu/client/OpenViduException.java | 74 +++++++++++ .../org/openvidu/client/OpenViduTest.java | 38 ++++++ .../src/main/resources/package.json | 2 +- openvidu-sample-app/.gitignore | 4 +- openvidu-sample-app/BuildFrontWarAndRun.sh | 6 - .../backend/openvidu-sample-app/.gitignore | 1 - .../{backend/openvidu-sample-app => }/pom.xml | 19 ++- .../main/ebextensions/configuration.config | 0 .../openvidu/openvidu_sample_app/App.java | 0 .../DatabaseInitializer.java | 0 .../openvidu_sample_app/lesson/Lesson.java | 0 .../lesson/LessonController.java | 0 .../lesson/LessonRepository.java | 0 .../security/LoginController.java | 0 .../security/SecurityConfig.java | 0 .../security/UserRepositoryAuthProvider.java | 0 .../session_manager/SessionController.java | 123 ++++++------------ .../openvidu_sample_app/user/User.java | 0 .../user/UserComponent.java | 0 .../user/UserController.java | 0 .../user/UserRepository.java | 0 .../src/main/resources/BuildFrontWarAndRun.sh | 6 + .../src/main/resources/application.properties | 0 .../resources}/frontend/.angular-cli.json | 0 .../main/resources}/frontend/.editorconfig | 0 .../main/resources}/frontend/.gitignore | 0 .../main/resources}/frontend/README.md | 0 .../resources}/frontend/e2e/app.e2e-spec.ts | 0 .../main/resources}/frontend/e2e/app.po.ts | 0 .../resources}/frontend/e2e/tsconfig.e2e.json | 0 .../main/resources}/frontend/karma.conf.js | 0 .../main/resources}/frontend/package.json | 0 .../resources}/frontend/protractor.conf.js | 0 .../frontend/src/app/app.component.css | 0 .../frontend/src/app/app.component.html | 0 .../frontend/src/app/app.component.spec.ts | 0 .../frontend/src/app/app.component.ts | 0 .../resources}/frontend/src/app/app.module.ts | 0 .../frontend/src/app/app.routing.ts | 0 .../resources}/frontend/src/app/auth.guard.ts | 0 .../dashboard/dahsboard.component.ts | 0 .../dashboard/dashboard.component.css | 0 .../dashboard/dashboard.component.html | 0 .../join-session-dialog.component.ts | 0 .../error-message/error-message.component.css | 0 .../error-message.component.html | 0 .../error-message/error-message.component.ts | 0 .../lesson-details.component.css | 0 .../lesson-details.component.html | 0 .../lesson-details.component.ts | 0 .../presentation/presentation.component.css | 0 .../presentation/presentation.component.html | 0 .../presentation/presentation.component.ts | 0 .../components/profile/profile.component.css | 0 .../components/profile/profile.component.html | 0 .../components/profile/profile.component.ts | 0 .../video-session/video-session.component.css | 0 .../video-session.component.html | 0 .../video-session/video-session.component.ts | 0 .../frontend/src/app/models/lesson.ts | 0 .../frontend/src/app/models/user.ts | 0 .../app/services/authentication.service.ts | 0 .../src/app/services/lesson.service.ts | 0 .../frontend/src/app/services/user.service.ts | 0 .../src/app/services/video-session.service.ts | 0 .../resources}/frontend/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 0 .../frontend/src/environments/environment.ts | 0 .../main/resources}/frontend/src/favicon.ico | Bin .../main/resources}/frontend/src/index.html | 0 .../main/resources}/frontend/src/main.ts | 0 .../main/resources}/frontend/src/polyfills.ts | 0 .../main/resources}/frontend/src/styles.css | 0 .../main/resources}/frontend/src/test.ts | 0 .../resources}/frontend/src/tsconfig.app.json | 0 .../frontend/src/tsconfig.spec.json | 0 .../main/resources}/frontend/src/typings.d.ts | 0 .../main/resources}/frontend/tsconfig.json | 0 .../main/resources}/frontend/tslint.json | 0 .../openvidu/openvidu_sample_app/AppTest.java | 0 .../org/openvidu/server/core/RoomManager.java | 14 +- .../openvidu/server/rest/RoomController.java | 1 - .../server/rpc/JsonRpcUserControl.java | 2 +- pom.xml | 2 + 86 files changed, 343 insertions(+), 99 deletions(-) create mode 100644 openvidu-backend-client/pom.xml create mode 100644 openvidu-backend-client/src/main/java/org/openvidu/client/OpenVidu.java create mode 100644 openvidu-backend-client/src/main/java/org/openvidu/client/OpenViduException.java create mode 100644 openvidu-backend-client/src/test/java/org/openvidu/client/OpenViduTest.java delete mode 100755 openvidu-sample-app/BuildFrontWarAndRun.sh delete mode 100644 openvidu-sample-app/backend/openvidu-sample-app/.gitignore rename openvidu-sample-app/{backend/openvidu-sample-app => }/pom.xml (86%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/ebextensions/configuration.config (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/App.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/DatabaseInitializer.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/lesson/Lesson.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/lesson/LessonController.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/lesson/LessonRepository.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/security/LoginController.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/security/SecurityConfig.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/security/UserRepositoryAuthProvider.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/session_manager/SessionController.java (60%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/user/User.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/user/UserComponent.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/user/UserController.java (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/java/openvidu/openvidu_sample_app/user/UserRepository.java (100%) create mode 100755 openvidu-sample-app/src/main/resources/BuildFrontWarAndRun.sh rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/main/resources/application.properties (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/.angular-cli.json (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/.editorconfig (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/.gitignore (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/README.md (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/e2e/app.e2e-spec.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/e2e/app.po.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/e2e/tsconfig.e2e.json (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/karma.conf.js (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/package.json (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/protractor.conf.js (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/app.component.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/app.component.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/app.component.spec.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/app.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/app.module.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/app.routing.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/auth.guard.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/dashboard/dahsboard.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/dashboard/dashboard.component.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/dashboard/dashboard.component.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/dashboard/join-session-dialog.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/error-message/error-message.component.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/error-message/error-message.component.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/error-message/error-message.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/lesson-details/lesson-details.component.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/lesson-details/lesson-details.component.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/lesson-details/lesson-details.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/presentation/presentation.component.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/presentation/presentation.component.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/presentation/presentation.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/profile/profile.component.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/profile/profile.component.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/profile/profile.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/video-session/video-session.component.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/video-session/video-session.component.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/components/video-session/video-session.component.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/models/lesson.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/models/user.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/services/authentication.service.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/services/lesson.service.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/services/user.service.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/app/services/video-session.service.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/assets/.gitkeep (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/environments/environment.prod.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/environments/environment.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/favicon.ico (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/index.html (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/main.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/polyfills.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/styles.css (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/test.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/tsconfig.app.json (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/tsconfig.spec.json (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/src/typings.d.ts (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/tsconfig.json (100%) rename openvidu-sample-app/{ => src/main/resources}/frontend/tslint.json (100%) rename openvidu-sample-app/{backend/openvidu-sample-app => }/src/test/java/openvidu/openvidu_sample_app/AppTest.java (100%) diff --git a/openvidu-backend-client/pom.xml b/openvidu-backend-client/pom.xml new file mode 100644 index 00000000..ef898284 --- /dev/null +++ b/openvidu-backend-client/pom.xml @@ -0,0 +1,49 @@ + + 4.0.0 + + + org.openvidu + openvidu + 0.0.1-SNAPSHOT + + + openvidu-backend-client + jar + + client + http://maven.apache.org + + + UTF-8 + 1.8 + 1.8 + 1.8 + + + + + + junit + junit + test + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.apache.httpcomponents + httpclient + + + + com.googlecode.json-simple + json-simple + + + + diff --git a/openvidu-backend-client/src/main/java/org/openvidu/client/OpenVidu.java b/openvidu-backend-client/src/main/java/org/openvidu/client/OpenVidu.java new file mode 100644 index 00000000..a43777af --- /dev/null +++ b/openvidu-backend-client/src/main/java/org/openvidu/client/OpenVidu.java @@ -0,0 +1,101 @@ +package org.openvidu.client; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; + +import org.apache.http.HttpResponse; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.conn.ssl.TrustSelfSignedStrategy; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.ssl.SSLContextBuilder; +import org.json.simple.JSONObject; +import org.openvidu.client.OpenViduException.Code; + +public class OpenVidu { + + private String urlOpenViduServer; + private String secret; + private HttpClient myHttpClient; + + public OpenVidu(String urlOpenViduServer, String secret) { + + this.urlOpenViduServer = urlOpenViduServer; + + if (!this.urlOpenViduServer.endsWith("/")){ + this.urlOpenViduServer += "/"; + } + + this.secret = secret; + + CredentialsProvider provider = new BasicCredentialsProvider(); + UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("OPENVIDUAPP", this.secret); + provider.setCredentials(AuthScope.ANY, credentials); + + SSLContextBuilder builder = new SSLContextBuilder(); + try { + builder.loadTrustMaterial(null, new TrustSelfSignedStrategy()); + SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build(), + SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); + /*SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( + builder.build());*/ + this.myHttpClient = HttpClients.custom().setSSLSocketFactory( + sslsf).setDefaultCredentialsProvider(provider).build(); + } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public String createSession() throws OpenViduException, ClientProtocolException, IOException { + + HttpResponse response = myHttpClient.execute(new HttpGet(this.urlOpenViduServer + "getSessionId")); + + int statusCode = response.getStatusLine().getStatusCode(); + if ((statusCode == org.apache.http.HttpStatus.SC_OK) && (response.getEntity().getContentLength() > 0)){ + System.out.println("Returning a SESSIONID"); + BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); + String sessionId = br.readLine(); + + return sessionId; + } else { + throw new OpenViduException(Code.TRANSPORT_REQUEST_ERROR_CODE, "Unable to generate a sessionID"); + } + } + + public String generateToken(String sessionId, String role) throws OpenViduException, ClientProtocolException, IOException { + JSONObject json = new JSONObject(); + json.put(0, sessionId); + json.put(1, role); + + HttpPost request = new HttpPost(this.urlOpenViduServer + "newToken"); + StringEntity params = new StringEntity(json.toString()); + request.addHeader("content-type", "application/json"); + request.setEntity(params); + + HttpResponse response = myHttpClient.execute(request); + + int statusCode = response.getStatusLine().getStatusCode(); + if ((statusCode == org.apache.http.HttpStatus.SC_OK) && (response.getEntity().getContentLength() > 0)){ + System.out.println("Returning a TOKEN"); + BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); + String token = br.readLine(); + + return token; + } else { + throw new OpenViduException(Code.TRANSPORT_REQUEST_ERROR_CODE, "Unable to generate a token"); + } + } +} diff --git a/openvidu-backend-client/src/main/java/org/openvidu/client/OpenViduException.java b/openvidu-backend-client/src/main/java/org/openvidu/client/OpenViduException.java new file mode 100644 index 00000000..d11e1a0c --- /dev/null +++ b/openvidu-backend-client/src/main/java/org/openvidu/client/OpenViduException.java @@ -0,0 +1,74 @@ +/* + * (C) Copyright 2015 Kurento (http://kurento.org/) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.openvidu.client; + +public class OpenViduException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public static enum Code { + GENERIC_ERROR_CODE(999), + + TRANSPORT_ERROR_CODE(803), TRANSPORT_RESPONSE_ERROR_CODE(802), TRANSPORT_REQUEST_ERROR_CODE( + 801), + + MEDIA_MUTE_ERROR_CODE(307), MEDIA_NOT_A_WEB_ENDPOINT_ERROR_CODE( + 306), MEDIA_RTP_ENDPOINT_ERROR_CODE(305), MEDIA_WEBRTC_ENDPOINT_ERROR_CODE( + 304), MEDIA_ENDPOINT_ERROR_CODE( + 303), MEDIA_SDP_ERROR_CODE(302), MEDIA_GENERIC_ERROR_CODE(301), + + ROOM_CANNOT_BE_CREATED_ERROR_CODE(204), ROOM_CLOSED_ERROR_CODE(203), ROOM_NOT_FOUND_ERROR_CODE( + 202), ROOM_GENERIC_ERROR_CODE(201), + + USER_NOT_STREAMING_ERROR_CODE(105), EXISTING_USER_IN_ROOM_ERROR_CODE( + 104), USER_CLOSED_ERROR_CODE( + 103), USER_NOT_FOUND_ERROR_CODE(102), USER_GENERIC_ERROR_CODE(101), + + USER_UNAUTHORIZED(401); + + private int value; + + private Code(int value) { + this.value = value; + } + + public int getValue() { + return this.value; + } + } + + private Code code = Code.GENERIC_ERROR_CODE; + + public OpenViduException(Code code, String message) { + super(message); + this.code = code; + } + + public Code getCode() { + return code; + } + + public int getCodeValue() { + return code.getValue(); + } + + @Override + public String toString() { + return "Code: " + getCodeValue() + " " + super.toString(); + } + +} diff --git a/openvidu-backend-client/src/test/java/org/openvidu/client/OpenViduTest.java b/openvidu-backend-client/src/test/java/org/openvidu/client/OpenViduTest.java new file mode 100644 index 00000000..1fe468e3 --- /dev/null +++ b/openvidu-backend-client/src/test/java/org/openvidu/client/OpenViduTest.java @@ -0,0 +1,38 @@ +package org.openvidu.client; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class OpenViduTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public OpenViduTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( OpenViduTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/openvidu-browser/src/main/resources/package.json b/openvidu-browser/src/main/resources/package.json index 58c2eac3..8feb06d9 100644 --- a/openvidu-browser/src/main/resources/package.json +++ b/openvidu-browser/src/main/resources/package.json @@ -17,7 +17,7 @@ "wolfy87-eventemitter": "4.2.9", "@types/wolfy87-eventemitter": "4.2.31", "webrtc-adapter": "3.2.0", - "kurento-utils": "6.6.0", + "kurento-utils": "6.6.1", "uuid": "~2.0.1", "sdp-translator": "^0.1.15" } diff --git a/openvidu-sample-app/.gitignore b/openvidu-sample-app/.gitignore index a37e8ea7..9e7bb4f0 100644 --- a/openvidu-sample-app/.gitignore +++ b/openvidu-sample-app/.gitignore @@ -1,8 +1,8 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. -backend/openvidu-sample-app/target/* -backend/openvidu-sample-app/src/main/resources/static/* +target/* +src/main/resources/static/* # User-specific files *.suo diff --git a/openvidu-sample-app/BuildFrontWarAndRun.sh b/openvidu-sample-app/BuildFrontWarAndRun.sh deleted file mode 100755 index 8a2e64af..00000000 --- a/openvidu-sample-app/BuildFrontWarAndRun.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -cd frontend -ng build --output-path ./../backend/openvidu-sample-app/src/main/resources/static -cd ../backend/openvidu-sample-app -mvn clean package -java -jar target/openvidu-sample-app-0.0.1-SNAPSHOT.war diff --git a/openvidu-sample-app/backend/openvidu-sample-app/.gitignore b/openvidu-sample-app/backend/openvidu-sample-app/.gitignore deleted file mode 100644 index b83d2226..00000000 --- a/openvidu-sample-app/backend/openvidu-sample-app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target/ diff --git a/openvidu-sample-app/backend/openvidu-sample-app/pom.xml b/openvidu-sample-app/pom.xml similarity index 86% rename from openvidu-sample-app/backend/openvidu-sample-app/pom.xml rename to openvidu-sample-app/pom.xml index c059c918..50d2dc9f 100644 --- a/openvidu-sample-app/backend/openvidu-sample-app/pom.xml +++ b/openvidu-sample-app/pom.xml @@ -25,13 +25,22 @@ ${project.artifactId}-${project.version} + + + + true + src/main/resources + + frontend/** + + + org.springframework.boot spring-boot-maven-plugin - org.springframework @@ -39,7 +48,6 @@ 1.2.6.RELEASE - @@ -60,6 +68,7 @@ true + src/main/resources/frontend/** @@ -118,9 +127,13 @@ org.apache.httpcomponents httpclient - 4.5 + + org.openvidu + openvidu-backend-client + 0.0.1-SNAPSHOT + diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/ebextensions/configuration.config b/openvidu-sample-app/src/main/ebextensions/configuration.config similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/ebextensions/configuration.config rename to openvidu-sample-app/src/main/ebextensions/configuration.config diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/App.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/App.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/App.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/App.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/DatabaseInitializer.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/DatabaseInitializer.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/DatabaseInitializer.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/DatabaseInitializer.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/Lesson.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/Lesson.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/Lesson.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/Lesson.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonController.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonController.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonController.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonController.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonRepository.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonRepository.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonRepository.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/lesson/LessonRepository.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/LoginController.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/LoginController.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/LoginController.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/LoginController.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/SecurityConfig.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/SecurityConfig.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/SecurityConfig.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/SecurityConfig.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/UserRepositoryAuthProvider.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/UserRepositoryAuthProvider.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/UserRepositoryAuthProvider.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/security/UserRepositoryAuthProvider.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/session_manager/SessionController.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/session_manager/SessionController.java similarity index 60% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/session_manager/SessionController.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/session_manager/SessionController.java index 7c7fc5cc..640393e8 100644 --- a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/session_manager/SessionController.java +++ b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/session_manager/SessionController.java @@ -1,29 +1,14 @@ package openvidu.openvidu_sample_app.session_manager; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.apache.http.HttpResponse; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.CredentialsProvider; import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.conn.ssl.TrustSelfSignedStrategy; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.BasicCredentialsProvider; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.SSLContextBuilder; import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.openvidu.client.OpenVidu; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -40,6 +25,8 @@ import openvidu.openvidu_sample_app.user.UserComponent; @RestController @RequestMapping("/api-sessions") public class SessionController { + + OpenVidu openVidu; @Autowired private LessonRepository lessonRepository; @@ -50,31 +37,17 @@ public class SessionController { private Map lessonIdSessionId = new ConcurrentHashMap<>(); private Map> sessionIdUserIdToken = new ConcurrentHashMap<>(); - private final String OPENVIDU_URL = "https://localhost:8443/"; - private final String SECRET ="MY_SECRET"; private HttpClient myHttpClient; - public SessionController() { - try { - CredentialsProvider provider = new BasicCredentialsProvider(); - UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("OPENVIDUAPP", SECRET); - provider.setCredentials(AuthScope.ANY, credentials); - - SSLContextBuilder builder = new SSLContextBuilder(); - builder.loadTrustMaterial(null, new TrustSelfSignedStrategy()); - SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build(), - SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); - /*SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( - builder.build());*/ - this.myHttpClient = HttpClients.custom().setSSLSocketFactory( - sslsf).setDefaultCredentialsProvider(provider).build(); - } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) { - e.printStackTrace(); - } + private final String OPENVIDU_URL = "https://localhost:8443/"; + private final String SECRET ="MY_SECRET"; + + public SessionController(){ + this.openVidu = new OpenVidu(OPENVIDU_URL, SECRET); } @RequestMapping(value = "/create-session", method = RequestMethod.POST) - public ResponseEntity createSession(@RequestBody String lessonId) throws Exception { + public ResponseEntity createSession(@RequestBody String lessonId) { if (!this.userIsLogged()) { return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); @@ -98,31 +71,20 @@ public class SessionController { } if(this.lessonIdSessionId.get(id_lesson) != null) { - // If there's already a valid sessionId for this lesson, not necessary to ask for a new one return new ResponseEntity<>(this.lessonIdSessionId.get(id_lesson), HttpStatus.OK); - - } else { - - /* - String sessionId = this.openVidu.createSession(); - */ - - HttpResponse response = myHttpClient.execute(new HttpGet(OPENVIDU_URL + "getSessionId")); - - int statusCode = response.getStatusLine().getStatusCode(); - if ((statusCode == org.apache.http.HttpStatus.SC_OK) && (response.getEntity().getContentLength() > 0)){ - System.out.println("Returning a sessionId..."); - BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); - String sessionId = br.readLine(); - + } + else { + try { + String sessionId = this.openVidu.createSession(); this.lessonIdSessionId.put(id_lesson, sessionId); this.sessionIdUserIdToken.put(sessionId, new HashMap<>()); + showMap(); + return new ResponseEntity<>(sessionId, HttpStatus.OK); - } else { - System.out.println("Problems with openvidu-server"); - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } catch (Exception e) { + return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } } } @@ -144,46 +106,34 @@ public class SessionController { Lesson c = lessonRepository.findOne(id_lesson); if (!checkAuthorizationUsers(c, c.getAttenders())){ + System.out.println("Not authorizedd"); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } if (this.lessonIdSessionId.get(id_lesson) == null){ + System.out.println("There's no sessionId fot this lesson"); return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } + String sessionId = this.lessonIdSessionId.get(id_lesson); String role = user.hasRoleTeacher() ? "PUBLISHER" : "SUBSCRIBER"; - /* - String token = this.openVidu.generateToken(sessionId, role); - */ - - JSONObject json = new JSONObject(); - json.put(0, this.lessonIdSessionId.get(id_lesson)); - json.put(1, role); - - HttpPost request = new HttpPost(OPENVIDU_URL + "newToken"); - StringEntity params = new StringEntity(json.toString()); - request.addHeader("content-type", "application/json"); - request.setEntity(params); - - HttpResponse response = myHttpClient.execute(request); - - int statusCode = response.getStatusLine().getStatusCode(); - if ((statusCode == org.apache.http.HttpStatus.SC_OK) && (response.getEntity().getContentLength() > 0)){ - System.out.println("Returning a sessionId and a token..."); - BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); - String token = br.readLine(); + try { - this.sessionIdUserIdToken.get(this.lessonIdSessionId.get(id_lesson)).put(this.user.getLoggedUser().getId(), token); + String token = this.openVidu.generateToken(sessionId, role); + this.sessionIdUserIdToken.get(sessionId).put(this.user.getLoggedUser().getId(), token); JSONObject responseJson = new JSONObject(); - responseJson.put(0, this.lessonIdSessionId.get(id_lesson)); + responseJson.put(0, sessionId); responseJson.put(1, token); + showMap(); + return new ResponseEntity<>(responseJson, HttpStatus.OK); - } else { - System.out.println("Problems with openvidu-server"); - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } catch (Exception e) { + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(e.getMessage()); + return new ResponseEntity<>(json, HttpStatus.INTERNAL_SERVER_ERROR); } } @@ -220,6 +170,9 @@ public class SessionController { this.lessonIdSessionId.remove(id_lesson); this.sessionIdUserIdToken.remove(sessionId); } + + showMap(); + return new ResponseEntity<>(HttpStatus.OK); } else { System.out.println("Problems in the app server: the user didn't have a valid token"); @@ -228,6 +181,14 @@ public class SessionController { } + private void showMap(){ + System.out.println("------------------------------"); + System.out.println(this.lessonIdSessionId.toString()); + System.out.println(this.sessionIdUserIdToken.toString()); + System.out.println("------------------------------"); + } + + private boolean userIsLogged(){ if (!user.isLoggedUser()) { System.out.println("Not user logged"); diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/User.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/User.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/User.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/User.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserComponent.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserComponent.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserComponent.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserComponent.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserController.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserController.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserController.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserController.java diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserRepository.java b/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserRepository.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserRepository.java rename to openvidu-sample-app/src/main/java/openvidu/openvidu_sample_app/user/UserRepository.java diff --git a/openvidu-sample-app/src/main/resources/BuildFrontWarAndRun.sh b/openvidu-sample-app/src/main/resources/BuildFrontWarAndRun.sh new file mode 100755 index 00000000..1964cd9c --- /dev/null +++ b/openvidu-sample-app/src/main/resources/BuildFrontWarAndRun.sh @@ -0,0 +1,6 @@ +#!/bin/sh +cd frontend +ng build --output-path ../static +cd ../../../../ +mvn clean package +java -jar target/openvidu-sample-app-0.0.1-SNAPSHOT.war diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/main/resources/application.properties b/openvidu-sample-app/src/main/resources/application.properties similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/main/resources/application.properties rename to openvidu-sample-app/src/main/resources/application.properties diff --git a/openvidu-sample-app/frontend/.angular-cli.json b/openvidu-sample-app/src/main/resources/frontend/.angular-cli.json similarity index 100% rename from openvidu-sample-app/frontend/.angular-cli.json rename to openvidu-sample-app/src/main/resources/frontend/.angular-cli.json diff --git a/openvidu-sample-app/frontend/.editorconfig b/openvidu-sample-app/src/main/resources/frontend/.editorconfig similarity index 100% rename from openvidu-sample-app/frontend/.editorconfig rename to openvidu-sample-app/src/main/resources/frontend/.editorconfig diff --git a/openvidu-sample-app/frontend/.gitignore b/openvidu-sample-app/src/main/resources/frontend/.gitignore similarity index 100% rename from openvidu-sample-app/frontend/.gitignore rename to openvidu-sample-app/src/main/resources/frontend/.gitignore diff --git a/openvidu-sample-app/frontend/README.md b/openvidu-sample-app/src/main/resources/frontend/README.md similarity index 100% rename from openvidu-sample-app/frontend/README.md rename to openvidu-sample-app/src/main/resources/frontend/README.md diff --git a/openvidu-sample-app/frontend/e2e/app.e2e-spec.ts b/openvidu-sample-app/src/main/resources/frontend/e2e/app.e2e-spec.ts similarity index 100% rename from openvidu-sample-app/frontend/e2e/app.e2e-spec.ts rename to openvidu-sample-app/src/main/resources/frontend/e2e/app.e2e-spec.ts diff --git a/openvidu-sample-app/frontend/e2e/app.po.ts b/openvidu-sample-app/src/main/resources/frontend/e2e/app.po.ts similarity index 100% rename from openvidu-sample-app/frontend/e2e/app.po.ts rename to openvidu-sample-app/src/main/resources/frontend/e2e/app.po.ts diff --git a/openvidu-sample-app/frontend/e2e/tsconfig.e2e.json b/openvidu-sample-app/src/main/resources/frontend/e2e/tsconfig.e2e.json similarity index 100% rename from openvidu-sample-app/frontend/e2e/tsconfig.e2e.json rename to openvidu-sample-app/src/main/resources/frontend/e2e/tsconfig.e2e.json diff --git a/openvidu-sample-app/frontend/karma.conf.js b/openvidu-sample-app/src/main/resources/frontend/karma.conf.js similarity index 100% rename from openvidu-sample-app/frontend/karma.conf.js rename to openvidu-sample-app/src/main/resources/frontend/karma.conf.js diff --git a/openvidu-sample-app/frontend/package.json b/openvidu-sample-app/src/main/resources/frontend/package.json similarity index 100% rename from openvidu-sample-app/frontend/package.json rename to openvidu-sample-app/src/main/resources/frontend/package.json diff --git a/openvidu-sample-app/frontend/protractor.conf.js b/openvidu-sample-app/src/main/resources/frontend/protractor.conf.js similarity index 100% rename from openvidu-sample-app/frontend/protractor.conf.js rename to openvidu-sample-app/src/main/resources/frontend/protractor.conf.js diff --git a/openvidu-sample-app/frontend/src/app/app.component.css b/openvidu-sample-app/src/main/resources/frontend/src/app/app.component.css similarity index 100% rename from openvidu-sample-app/frontend/src/app/app.component.css rename to openvidu-sample-app/src/main/resources/frontend/src/app/app.component.css diff --git a/openvidu-sample-app/frontend/src/app/app.component.html b/openvidu-sample-app/src/main/resources/frontend/src/app/app.component.html similarity index 100% rename from openvidu-sample-app/frontend/src/app/app.component.html rename to openvidu-sample-app/src/main/resources/frontend/src/app/app.component.html diff --git a/openvidu-sample-app/frontend/src/app/app.component.spec.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/app.component.spec.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/app.component.spec.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/app.component.spec.ts diff --git a/openvidu-sample-app/frontend/src/app/app.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/app.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/app.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/app.component.ts diff --git a/openvidu-sample-app/frontend/src/app/app.module.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/app.module.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/app.module.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/app.module.ts diff --git a/openvidu-sample-app/frontend/src/app/app.routing.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/app.routing.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/app.routing.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/app.routing.ts diff --git a/openvidu-sample-app/frontend/src/app/auth.guard.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/auth.guard.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/auth.guard.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/auth.guard.ts diff --git a/openvidu-sample-app/frontend/src/app/components/dashboard/dahsboard.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/dahsboard.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/dashboard/dahsboard.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/dahsboard.component.ts diff --git a/openvidu-sample-app/frontend/src/app/components/dashboard/dashboard.component.css b/openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/dashboard.component.css similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/dashboard/dashboard.component.css rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/dashboard.component.css diff --git a/openvidu-sample-app/frontend/src/app/components/dashboard/dashboard.component.html b/openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/dashboard.component.html similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/dashboard/dashboard.component.html rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/dashboard.component.html diff --git a/openvidu-sample-app/frontend/src/app/components/dashboard/join-session-dialog.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/join-session-dialog.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/dashboard/join-session-dialog.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/dashboard/join-session-dialog.component.ts diff --git a/openvidu-sample-app/frontend/src/app/components/error-message/error-message.component.css b/openvidu-sample-app/src/main/resources/frontend/src/app/components/error-message/error-message.component.css similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/error-message/error-message.component.css rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/error-message/error-message.component.css diff --git a/openvidu-sample-app/frontend/src/app/components/error-message/error-message.component.html b/openvidu-sample-app/src/main/resources/frontend/src/app/components/error-message/error-message.component.html similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/error-message/error-message.component.html rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/error-message/error-message.component.html diff --git a/openvidu-sample-app/frontend/src/app/components/error-message/error-message.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/components/error-message/error-message.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/error-message/error-message.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/error-message/error-message.component.ts diff --git a/openvidu-sample-app/frontend/src/app/components/lesson-details/lesson-details.component.css b/openvidu-sample-app/src/main/resources/frontend/src/app/components/lesson-details/lesson-details.component.css similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/lesson-details/lesson-details.component.css rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/lesson-details/lesson-details.component.css diff --git a/openvidu-sample-app/frontend/src/app/components/lesson-details/lesson-details.component.html b/openvidu-sample-app/src/main/resources/frontend/src/app/components/lesson-details/lesson-details.component.html similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/lesson-details/lesson-details.component.html rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/lesson-details/lesson-details.component.html diff --git a/openvidu-sample-app/frontend/src/app/components/lesson-details/lesson-details.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/components/lesson-details/lesson-details.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/lesson-details/lesson-details.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/lesson-details/lesson-details.component.ts diff --git a/openvidu-sample-app/frontend/src/app/components/presentation/presentation.component.css b/openvidu-sample-app/src/main/resources/frontend/src/app/components/presentation/presentation.component.css similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/presentation/presentation.component.css rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/presentation/presentation.component.css diff --git a/openvidu-sample-app/frontend/src/app/components/presentation/presentation.component.html b/openvidu-sample-app/src/main/resources/frontend/src/app/components/presentation/presentation.component.html similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/presentation/presentation.component.html rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/presentation/presentation.component.html diff --git a/openvidu-sample-app/frontend/src/app/components/presentation/presentation.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/components/presentation/presentation.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/presentation/presentation.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/presentation/presentation.component.ts diff --git a/openvidu-sample-app/frontend/src/app/components/profile/profile.component.css b/openvidu-sample-app/src/main/resources/frontend/src/app/components/profile/profile.component.css similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/profile/profile.component.css rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/profile/profile.component.css diff --git a/openvidu-sample-app/frontend/src/app/components/profile/profile.component.html b/openvidu-sample-app/src/main/resources/frontend/src/app/components/profile/profile.component.html similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/profile/profile.component.html rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/profile/profile.component.html diff --git a/openvidu-sample-app/frontend/src/app/components/profile/profile.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/components/profile/profile.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/profile/profile.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/profile/profile.component.ts diff --git a/openvidu-sample-app/frontend/src/app/components/video-session/video-session.component.css b/openvidu-sample-app/src/main/resources/frontend/src/app/components/video-session/video-session.component.css similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/video-session/video-session.component.css rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/video-session/video-session.component.css diff --git a/openvidu-sample-app/frontend/src/app/components/video-session/video-session.component.html b/openvidu-sample-app/src/main/resources/frontend/src/app/components/video-session/video-session.component.html similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/video-session/video-session.component.html rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/video-session/video-session.component.html diff --git a/openvidu-sample-app/frontend/src/app/components/video-session/video-session.component.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/components/video-session/video-session.component.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/components/video-session/video-session.component.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/components/video-session/video-session.component.ts diff --git a/openvidu-sample-app/frontend/src/app/models/lesson.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/models/lesson.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/models/lesson.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/models/lesson.ts diff --git a/openvidu-sample-app/frontend/src/app/models/user.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/models/user.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/models/user.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/models/user.ts diff --git a/openvidu-sample-app/frontend/src/app/services/authentication.service.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/services/authentication.service.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/services/authentication.service.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/services/authentication.service.ts diff --git a/openvidu-sample-app/frontend/src/app/services/lesson.service.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/services/lesson.service.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/services/lesson.service.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/services/lesson.service.ts diff --git a/openvidu-sample-app/frontend/src/app/services/user.service.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/services/user.service.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/services/user.service.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/services/user.service.ts diff --git a/openvidu-sample-app/frontend/src/app/services/video-session.service.ts b/openvidu-sample-app/src/main/resources/frontend/src/app/services/video-session.service.ts similarity index 100% rename from openvidu-sample-app/frontend/src/app/services/video-session.service.ts rename to openvidu-sample-app/src/main/resources/frontend/src/app/services/video-session.service.ts diff --git a/openvidu-sample-app/frontend/src/assets/.gitkeep b/openvidu-sample-app/src/main/resources/frontend/src/assets/.gitkeep similarity index 100% rename from openvidu-sample-app/frontend/src/assets/.gitkeep rename to openvidu-sample-app/src/main/resources/frontend/src/assets/.gitkeep diff --git a/openvidu-sample-app/frontend/src/environments/environment.prod.ts b/openvidu-sample-app/src/main/resources/frontend/src/environments/environment.prod.ts similarity index 100% rename from openvidu-sample-app/frontend/src/environments/environment.prod.ts rename to openvidu-sample-app/src/main/resources/frontend/src/environments/environment.prod.ts diff --git a/openvidu-sample-app/frontend/src/environments/environment.ts b/openvidu-sample-app/src/main/resources/frontend/src/environments/environment.ts similarity index 100% rename from openvidu-sample-app/frontend/src/environments/environment.ts rename to openvidu-sample-app/src/main/resources/frontend/src/environments/environment.ts diff --git a/openvidu-sample-app/frontend/src/favicon.ico b/openvidu-sample-app/src/main/resources/frontend/src/favicon.ico similarity index 100% rename from openvidu-sample-app/frontend/src/favicon.ico rename to openvidu-sample-app/src/main/resources/frontend/src/favicon.ico diff --git a/openvidu-sample-app/frontend/src/index.html b/openvidu-sample-app/src/main/resources/frontend/src/index.html similarity index 100% rename from openvidu-sample-app/frontend/src/index.html rename to openvidu-sample-app/src/main/resources/frontend/src/index.html diff --git a/openvidu-sample-app/frontend/src/main.ts b/openvidu-sample-app/src/main/resources/frontend/src/main.ts similarity index 100% rename from openvidu-sample-app/frontend/src/main.ts rename to openvidu-sample-app/src/main/resources/frontend/src/main.ts diff --git a/openvidu-sample-app/frontend/src/polyfills.ts b/openvidu-sample-app/src/main/resources/frontend/src/polyfills.ts similarity index 100% rename from openvidu-sample-app/frontend/src/polyfills.ts rename to openvidu-sample-app/src/main/resources/frontend/src/polyfills.ts diff --git a/openvidu-sample-app/frontend/src/styles.css b/openvidu-sample-app/src/main/resources/frontend/src/styles.css similarity index 100% rename from openvidu-sample-app/frontend/src/styles.css rename to openvidu-sample-app/src/main/resources/frontend/src/styles.css diff --git a/openvidu-sample-app/frontend/src/test.ts b/openvidu-sample-app/src/main/resources/frontend/src/test.ts similarity index 100% rename from openvidu-sample-app/frontend/src/test.ts rename to openvidu-sample-app/src/main/resources/frontend/src/test.ts diff --git a/openvidu-sample-app/frontend/src/tsconfig.app.json b/openvidu-sample-app/src/main/resources/frontend/src/tsconfig.app.json similarity index 100% rename from openvidu-sample-app/frontend/src/tsconfig.app.json rename to openvidu-sample-app/src/main/resources/frontend/src/tsconfig.app.json diff --git a/openvidu-sample-app/frontend/src/tsconfig.spec.json b/openvidu-sample-app/src/main/resources/frontend/src/tsconfig.spec.json similarity index 100% rename from openvidu-sample-app/frontend/src/tsconfig.spec.json rename to openvidu-sample-app/src/main/resources/frontend/src/tsconfig.spec.json diff --git a/openvidu-sample-app/frontend/src/typings.d.ts b/openvidu-sample-app/src/main/resources/frontend/src/typings.d.ts similarity index 100% rename from openvidu-sample-app/frontend/src/typings.d.ts rename to openvidu-sample-app/src/main/resources/frontend/src/typings.d.ts diff --git a/openvidu-sample-app/frontend/tsconfig.json b/openvidu-sample-app/src/main/resources/frontend/tsconfig.json similarity index 100% rename from openvidu-sample-app/frontend/tsconfig.json rename to openvidu-sample-app/src/main/resources/frontend/tsconfig.json diff --git a/openvidu-sample-app/frontend/tslint.json b/openvidu-sample-app/src/main/resources/frontend/tslint.json similarity index 100% rename from openvidu-sample-app/frontend/tslint.json rename to openvidu-sample-app/src/main/resources/frontend/tslint.json diff --git a/openvidu-sample-app/backend/openvidu-sample-app/src/test/java/openvidu/openvidu_sample_app/AppTest.java b/openvidu-sample-app/src/test/java/openvidu/openvidu_sample_app/AppTest.java similarity index 100% rename from openvidu-sample-app/backend/openvidu-sample-app/src/test/java/openvidu/openvidu_sample_app/AppTest.java rename to openvidu-sample-app/src/test/java/openvidu/openvidu_sample_app/AppTest.java diff --git a/openvidu-server/src/main/java/org/openvidu/server/core/RoomManager.java b/openvidu-server/src/main/java/org/openvidu/server/core/RoomManager.java index 60cbdf11..1734336d 100644 --- a/openvidu-server/src/main/java/org/openvidu/server/core/RoomManager.java +++ b/openvidu-server/src/main/java/org/openvidu/server/core/RoomManager.java @@ -164,6 +164,8 @@ public class RoomManager { this.sessionIdTokenRole.get(roomName).remove(participant.getName()); + showMap(); + Set remainingParticipants = null; try { remainingParticipants = getParticipants(roomName); @@ -178,6 +180,8 @@ public class RoomManager { sessionIdTokenRole.remove(roomName); + showMap(); + log.warn("Room '{}' removed and closed", roomName); } return remainingParticipants; @@ -927,7 +931,11 @@ public class RoomManager { - + private void showMap(){ + System.out.println("------------------------------"); + System.out.println(this.sessionIdTokenRole.toString()); + System.out.println("------------------------------"); + } public String getRoomNameFromParticipantId(String pid){ return getParticipant(pid).getRoom().getName(); @@ -946,7 +954,7 @@ public class RoomManager { this.sessionIdTokenRole.put(sessionId, new ConcurrentHashMap<>()); - System.out.println(this.sessionIdTokenRole.toString()); + showMap(); return sessionId; } @@ -957,7 +965,7 @@ public class RoomManager { this.sessionIdTokenRole.get(sessionId).put(token, role); - System.out.println(this.sessionIdTokenRole.toString()); + showMap(); return token; } else { diff --git a/openvidu-server/src/main/java/org/openvidu/server/rest/RoomController.java b/openvidu-server/src/main/java/org/openvidu/server/rest/RoomController.java index d182a6e2..aa5761e9 100644 --- a/openvidu-server/src/main/java/org/openvidu/server/rest/RoomController.java +++ b/openvidu-server/src/main/java/org/openvidu/server/rest/RoomController.java @@ -67,7 +67,6 @@ public class RoomController { @RequestMapping(value = "/newToken", method = RequestMethod.POST) public ResponseEntity getToken(@RequestBody Map sessionIdAndRole) { - System.out.println("SESSIONID: " + sessionIdAndRole.get("0") + " - ROLE: " + sessionIdAndRole.get("1")); String token = roomManager.newToken((String) sessionIdAndRole.get("0"), ParticipantRole.valueOf((String) sessionIdAndRole.get("1"))); return new ResponseEntity(token, HttpStatus.OK); } diff --git a/openvidu-server/src/main/java/org/openvidu/server/rpc/JsonRpcUserControl.java b/openvidu-server/src/main/java/org/openvidu/server/rpc/JsonRpcUserControl.java index ac9a325e..961af38b 100644 --- a/openvidu-server/src/main/java/org/openvidu/server/rpc/JsonRpcUserControl.java +++ b/openvidu-server/src/main/java/org/openvidu/server/rpc/JsonRpcUserControl.java @@ -96,7 +96,7 @@ public class JsonRpcUserControl { else { System.out.println("Error: user is not a publisher"); throw new OpenViduException(Code.USER_UNAUTHORIZED, - "Unable to join room. The user does not have a valid token"); + "Unable to publish video. The user does not have a valid token"); } } diff --git a/pom.xml b/pom.xml index 597129d7..5a396a63 100644 --- a/pom.xml +++ b/pom.xml @@ -74,6 +74,8 @@ openvidu-test openvidu-demo openvidu-testapp + openvidu-sample-app + openvidu-backend-client