Maven structure, dependencies in gradle
This commit is contained in:
parent
866f85596e
commit
d8458f968b
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,3 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Class-Path:
|
||||
|
@ -1 +0,0 @@
|
||||
bbb_api_conf.jsp has to be overwritten by the one in your computer, or you can change the IP address to your computer's.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
|
||||
<display-name>test1</display-name>
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
<welcome-file>index.htm</welcome-file>
|
||||
<welcome-file>index.jsp</welcome-file>
|
||||
<welcome-file>default.html</welcome-file>
|
||||
<welcome-file>default.htm</welcome-file>
|
||||
<welcome-file>default.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
</web-app>
|
@ -1,579 +0,0 @@
|
||||
<%/*
|
||||
BigBlueButton - http://www.bigbluebutton.org
|
||||
|
||||
Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
|
||||
BigBlueButton is free software; you can redistribute it and/or modify it under the
|
||||
terms of the GNU Lesser General Public License as published by the Free Software
|
||||
Foundation; either version 3 of the License, or (at your option) any later
|
||||
version.
|
||||
|
||||
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License along
|
||||
with BigBlueButton; if not, If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Author: Fred Dixon <ffdixon@bigbluebutton.org>
|
||||
*/%>
|
||||
<%@page import="javax.xml.transform.dom.DOMSource"%>
|
||||
<%@page import="javax.xml.transform.stream.StreamResult"%>
|
||||
<%@page import="javax.xml.transform.OutputKeys"%>
|
||||
<%@page import="javax.xml.transform.TransformerFactory"%>
|
||||
<%@page import="javax.xml.transform.Transformer"%>
|
||||
<%@page import="org.w3c.dom.Element"%>
|
||||
<%@page import="com.sun.org.apache.xerces.internal.dom.ChildNode"%>
|
||||
<%@page import="org.w3c.dom.Node"%>
|
||||
<%@page import="org.w3c.dom.NodeList"%>
|
||||
<%@page import="java.util.*,java.io.*,java.net.*,javax.crypto.*,javax.xml.parsers.*,org.w3c.dom.Document,org.xml.sax.*" errorPage="error.jsp"%>
|
||||
|
||||
<%@ page import="org.apache.commons.codec.digest.*"%>
|
||||
<%@ page import="java.io.*"%>
|
||||
<%@ page import="java.nio.channels.FileChannel"%>
|
||||
|
||||
<%@ include file="bbb_api_conf.jsp"%>
|
||||
|
||||
<%!//
|
||||
// Create a meeting with specific
|
||||
// - meetingID
|
||||
// - welcome message
|
||||
// - moderator password
|
||||
// - viewer password
|
||||
// - voiceBridge
|
||||
// - logoutURL
|
||||
//
|
||||
public String createMeeting(String meetingID, String welcome,
|
||||
String moderatorPassword, String viewerPassword,
|
||||
Integer voiceBridge, String logoutURL) {
|
||||
String base_url_create = BigBlueButtonURL + "api/create?";
|
||||
String base_url_join = BigBlueButtonURL + "api/join?";
|
||||
|
||||
String welcome_param = "";
|
||||
String checksum = "";
|
||||
|
||||
String attendee_password_param = "&attendeePW=ap";
|
||||
String moderator_password_param = "&moderatorPW=mp";
|
||||
String voice_bridge_param = "";
|
||||
String logoutURL_param = "";
|
||||
|
||||
if ((welcome != null) && !welcome.equals("")) {
|
||||
welcome_param = "&welcome=" + urlEncode(welcome);
|
||||
}
|
||||
|
||||
if ((moderatorPassword != null) && !moderatorPassword.equals("")) {
|
||||
moderator_password_param = "&moderatorPW="
|
||||
+ urlEncode(moderatorPassword);
|
||||
}
|
||||
|
||||
if ((viewerPassword != null) && !viewerPassword.equals("")) {
|
||||
attendee_password_param = "&attendeePW="
|
||||
+ urlEncode(viewerPassword);
|
||||
}
|
||||
|
||||
if ((voiceBridge != null) && voiceBridge > 0) {
|
||||
voice_bridge_param = "&voiceBridge="
|
||||
+ urlEncode(voiceBridge.toString());
|
||||
} else {
|
||||
// No voice bridge number passed, so we'll generate a random one for this meeting
|
||||
Random random = new Random();
|
||||
Integer n = 70000 + random.nextInt(9999);
|
||||
voice_bridge_param = "&voiceBridge=" + n;
|
||||
}
|
||||
|
||||
if ((logoutURL != null) && !logoutURL.equals("")) {
|
||||
logoutURL_param = "&logoutURL=" + urlEncode(logoutURL);
|
||||
}
|
||||
|
||||
//
|
||||
// Now create the URL
|
||||
//
|
||||
|
||||
String create_parameters = "name=" + urlEncode(meetingID)
|
||||
+ "&meetingID=" + urlEncode(meetingID) + welcome_param
|
||||
+ attendee_password_param + moderator_password_param
|
||||
+ voice_bridge_param + logoutURL_param;
|
||||
|
||||
Document doc = null;
|
||||
|
||||
try {
|
||||
// Attempt to create a meeting using meetingID
|
||||
String xml = getURL(base_url_create + create_parameters
|
||||
+ "&checksum="
|
||||
+ checksum("create" + create_parameters + salt));
|
||||
doc = parseXml(xml);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (doc.getElementsByTagName("returncode").item(0).getTextContent()
|
||||
.trim().equals("SUCCESS")) {
|
||||
|
||||
return meetingID;
|
||||
}
|
||||
|
||||
return "Error "
|
||||
+ doc.getElementsByTagName("messageKey").item(0)
|
||||
.getTextContent().trim()
|
||||
+ ": "
|
||||
+ doc.getElementsByTagName("message").item(0).getTextContent()
|
||||
.trim();
|
||||
}
|
||||
|
||||
//
|
||||
// getJoinMeetingURL() -- get join meeting URL for both viewer and moderator
|
||||
//
|
||||
public String getJoinMeetingURL(String username, String meetingID,
|
||||
String password) {
|
||||
String base_url_join = BigBlueButtonURL + "api/join?";
|
||||
String join_parameters = "meetingID=" + urlEncode(meetingID)
|
||||
+ "&fullName=" + urlEncode(username) + "&password="
|
||||
+ urlEncode(password);
|
||||
|
||||
return base_url_join + join_parameters + "&checksum="
|
||||
+ checksum("join" + join_parameters + salt);
|
||||
}
|
||||
|
||||
//
|
||||
// Create a meeting and return a URL to join it as moderator
|
||||
//
|
||||
public String getJoinURL(String username, String meetingID, String welcome) {
|
||||
String base_url_create = BigBlueButtonURL + "api/create?";
|
||||
String base_url_join = BigBlueButtonURL + "api/join?";
|
||||
|
||||
String welcome_param = "";
|
||||
String good_url = "xxx";
|
||||
Random random = new Random();
|
||||
Integer voiceBridge = 70000 + random.nextInt(9999);
|
||||
|
||||
if ((welcome != null) && !welcome.equals("")) {
|
||||
welcome_param = "&welcome=" + urlEncode(welcome);
|
||||
}
|
||||
|
||||
//
|
||||
// When creating a meeting, the 'name' parameter is the name of the meeting (not to be confused with
|
||||
// the username). For example, the name could be "Fred's meeting" and the meetingID could be "ID-1234312".
|
||||
//
|
||||
// While name and meetinID could be different, we'll keep them the same. Why? Because calling api/create?
|
||||
// with a previously used meetingID will return same meetingToken (regardless if the meeting is running or not).
|
||||
//
|
||||
// This means the first person to call getJoinURL with meetingID="Demo Meeting" will actually create the
|
||||
// meeting. Subsequent calls will return the same meetingToken and thus subsequent users will join the same
|
||||
// meeting.
|
||||
//
|
||||
// Note: We're hard-coding the password for moderator and attendee (viewer) for purposes of demo.
|
||||
//
|
||||
|
||||
String create_parameters = "name=" + urlEncode(meetingID)
|
||||
+ "&meetingID=" + urlEncode(meetingID) + welcome_param
|
||||
+ "&attendeePW=ap&moderatorPW=mp&voiceBridge=" + voiceBridge;
|
||||
|
||||
Document doc = null;
|
||||
|
||||
try {
|
||||
// Attempt to create a meeting using meetingID
|
||||
good_url = base_url_create + create_parameters
|
||||
+ "&checksum="
|
||||
+ checksum("create" + create_parameters + salt);
|
||||
String xml = getURL( good_url );
|
||||
//String xml = getURL(base_url_create + create_parameters
|
||||
/// + "&checksum="
|
||||
// + checksum("create" + create_parameters + salt));
|
||||
doc = parseXml(xml);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (doc.getElementsByTagName("returncode").item(0).getTextContent()
|
||||
.trim().equals("SUCCESS")) {
|
||||
|
||||
//
|
||||
// Now create a URL to join that meeting
|
||||
//
|
||||
|
||||
String join_parameters = "meetingID=" + urlEncode(meetingID)
|
||||
+ "&fullName=" + urlEncode(username) + "&password=mp";
|
||||
|
||||
return base_url_join + join_parameters + "&checksum="
|
||||
+ checksum("join" + join_parameters + salt);
|
||||
|
||||
}
|
||||
return doc.getElementsByTagName("messageKey").item(0).getTextContent()
|
||||
.trim()
|
||||
+ ": "
|
||||
+ doc.getElementsByTagName("message").item(0).getTextContent()
|
||||
.trim();
|
||||
}
|
||||
|
||||
//
|
||||
//Create a meeting and return a URL to join it as moderator
|
||||
//
|
||||
public String getJoinURLXML(String username, String meetingID,
|
||||
String welcome, String xml_param) {
|
||||
String base_url_create = BigBlueButtonURL + "api/create?";
|
||||
String base_url_join = BigBlueButtonURL + "api/join?";
|
||||
|
||||
String welcome_param = "";
|
||||
|
||||
Random random = new Random();
|
||||
Integer voiceBridge = 70000 + random.nextInt(9999);
|
||||
|
||||
if ((welcome != null) && !welcome.equals("")) {
|
||||
welcome_param = "&welcome=" + urlEncode(welcome);
|
||||
}
|
||||
|
||||
String create_parameters = "name=" + urlEncode(meetingID)
|
||||
+ "&meetingID=" + urlEncode(meetingID) + welcome_param
|
||||
+ "&attendeePW=ap&moderatorPW=mp&voiceBridge=" + voiceBridge;
|
||||
|
||||
Document doc = null;
|
||||
|
||||
try {
|
||||
// Attempt to create a meeting using meetingID
|
||||
String xml = excutePost(base_url_create + create_parameters
|
||||
+ "&checksum="
|
||||
+ checksum("create" + create_parameters + salt), xml_param);
|
||||
doc = parseXml(xml);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (doc.getElementsByTagName("returncode").item(0).getTextContent()
|
||||
.trim().equals("SUCCESS")) {
|
||||
|
||||
String join_parameters = "meetingID=" + urlEncode(meetingID)
|
||||
+ "&fullName=" + urlEncode(username) + "&password=mp";
|
||||
|
||||
return base_url_join + join_parameters + "&checksum="
|
||||
+ checksum("join" + join_parameters + salt);
|
||||
|
||||
}
|
||||
return doc.getElementsByTagName("messageKey").item(0).getTextContent()
|
||||
.trim()
|
||||
+ ": "
|
||||
+ doc.getElementsByTagName("message").item(0).getTextContent()
|
||||
.trim();
|
||||
}
|
||||
|
||||
//
|
||||
// getJoinURLViewer() -- Get the URL to join a meeting as viewer
|
||||
//
|
||||
public String getJoinURLViewer(String username, String meetingID) {
|
||||
|
||||
String base_url_join = BigBlueButtonURL + "api/join?";
|
||||
String join_parameters = "meetingID=" + urlEncode(meetingID)
|
||||
+ "&fullName=" + urlEncode(username) + "&password=ap";
|
||||
|
||||
return base_url_join + join_parameters + "&checksum="
|
||||
+ checksum("join" + join_parameters + salt);
|
||||
}
|
||||
|
||||
//
|
||||
// checksum() -- create a hash based on the shared salt (located in bbb_api_conf.jsp)
|
||||
//
|
||||
public static String checksum(String s) {
|
||||
String checksum = "";
|
||||
try {
|
||||
checksum = org.apache.commons.codec.digest.DigestUtils.shaHex(s);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return checksum;
|
||||
}
|
||||
|
||||
//
|
||||
// getURL() -- fetch a URL and return its contents as a String
|
||||
//
|
||||
public static String getURL(String url) {
|
||||
StringBuffer response = null;
|
||||
|
||||
try {
|
||||
URL u = new URL(url);
|
||||
HttpURLConnection httpConnection = (HttpURLConnection) u
|
||||
.openConnection();
|
||||
|
||||
httpConnection.setUseCaches(false);
|
||||
httpConnection.setDoOutput(true);
|
||||
httpConnection.setRequestMethod("GET");
|
||||
|
||||
httpConnection.connect();
|
||||
int responseCode = httpConnection.getResponseCode();
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||
InputStream input = httpConnection.getInputStream();
|
||||
|
||||
// Read server's response.
|
||||
response = new StringBuffer();
|
||||
Reader reader = new InputStreamReader(input, "UTF-8");
|
||||
reader = new BufferedReader(reader);
|
||||
char[] buffer = new char[1024];
|
||||
for (int n = 0; n >= 0;) {
|
||||
n = reader.read(buffer, 0, buffer.length);
|
||||
if (n > 0)
|
||||
response.append(buffer, 0, n);
|
||||
}
|
||||
|
||||
input.close();
|
||||
httpConnection.disconnect();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (response != null) {
|
||||
return response.toString();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static String excutePost(String targetURL, String urlParameters)
|
||||
{
|
||||
URL url;
|
||||
HttpURLConnection connection = null;
|
||||
int responseCode = 0;
|
||||
try {
|
||||
//Create connection
|
||||
url = new URL(targetURL);
|
||||
connection = (HttpURLConnection)url.openConnection();
|
||||
connection.setRequestMethod("POST");
|
||||
connection.setRequestProperty("Content-Type",
|
||||
"text/xml");
|
||||
|
||||
connection.setRequestProperty("Content-Length", "" +
|
||||
Integer.toString(urlParameters.getBytes().length));
|
||||
connection.setRequestProperty("Content-Language", "en-US");
|
||||
|
||||
connection.setUseCaches (false);
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
|
||||
//Send request
|
||||
DataOutputStream wr = new DataOutputStream (
|
||||
connection.getOutputStream ());
|
||||
wr.writeBytes (urlParameters);
|
||||
wr.flush ();
|
||||
wr.close ();
|
||||
|
||||
//Get Response
|
||||
InputStream is = connection.getInputStream();
|
||||
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
|
||||
String line;
|
||||
StringBuffer response = new StringBuffer();
|
||||
while((line = rd.readLine()) != null) {
|
||||
response.append(line);
|
||||
response.append('\r');
|
||||
}
|
||||
rd.close();
|
||||
return response.toString();
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
|
||||
} finally {
|
||||
|
||||
if(connection != null) {
|
||||
connection.disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// getURLisMeetingRunning() -- return a URL that the client can use to poll for whether the given meeting is running
|
||||
//
|
||||
public String getURLisMeetingRunning(String meetingID) {
|
||||
String base_main = "&meetingID=" + urlEncode(meetingID);
|
||||
String base_url = BigBlueButtonURL + "api/isMeetingRunning?";
|
||||
String checksum = "";
|
||||
|
||||
try {
|
||||
checksum = DigestUtils
|
||||
.shaHex("isMeetingRunning" + base_main + salt);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return base_url + base_main + "&checksum=" + checksum;
|
||||
}
|
||||
|
||||
//
|
||||
// isMeetingRunning() -- check the BigBlueButton server to see if the meeting is running (i.e. there is someone in the meeting)
|
||||
//
|
||||
public String isMeetingRunning(String meetingID) {
|
||||
String base_main = "&meetingID=" + urlEncode(meetingID);
|
||||
String base_url = BigBlueButtonURL + "api/isMeetingRunning?";
|
||||
String checksum = "";
|
||||
|
||||
try {
|
||||
checksum = DigestUtils
|
||||
.shaHex("isMeetingRunning" + base_main + salt);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String xml = getURL(base_url + base_main + "&checksum=" + checksum);
|
||||
|
||||
Document doc = null;
|
||||
try {
|
||||
doc = parseXml(xml);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (doc.getElementsByTagName("returncode").item(0).getTextContent()
|
||||
.trim().equals("SUCCESS")) {
|
||||
return doc.getElementsByTagName("running").item(0).getTextContent()
|
||||
.trim();
|
||||
}
|
||||
|
||||
return "false";
|
||||
|
||||
}
|
||||
|
||||
public String getMeetingInfoURL(String meetingID, String password) {
|
||||
String meetingParameters = "meetingID=" + urlEncode(meetingID)
|
||||
+ "&password=" + password;
|
||||
return BigBlueButtonURL + "api/getMeetingInfo?" + meetingParameters
|
||||
+ "&checksum="
|
||||
+ checksum("getMeetingInfo" + meetingParameters + salt);
|
||||
}
|
||||
|
||||
public String getMeetingInfo(String meetingID, String password) {
|
||||
try {
|
||||
URLConnection hpCon = new URL(
|
||||
getMeetingInfoURL(meetingID, password)).openConnection();
|
||||
|
||||
InputStreamReader isr = new InputStreamReader(
|
||||
hpCon.getInputStream());
|
||||
BufferedReader br = new BufferedReader(isr);
|
||||
String data = br.readLine();
|
||||
return data;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace(System.out);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public String getMeetingsURL() {
|
||||
String meetingParameters = "random=" + new Random().nextInt(9999);
|
||||
return BigBlueButtonURL + "api/getMeetings?" + meetingParameters
|
||||
+ "&checksum="
|
||||
+ checksum("getMeetings" + meetingParameters + salt);
|
||||
}
|
||||
|
||||
//
|
||||
// Calls getMeetings to obtain the list of meetings, then calls getMeetingInfo for each meeting
|
||||
// and concatenates the result.
|
||||
//
|
||||
public String getMeetings() {
|
||||
try {
|
||||
|
||||
// Call the API and get the result
|
||||
URLConnection hpCon = new URL(getMeetingsURL()).openConnection();
|
||||
InputStreamReader isr = new InputStreamReader(
|
||||
hpCon.getInputStream());
|
||||
BufferedReader br = new BufferedReader(isr);
|
||||
String data = br.readLine();
|
||||
Document doc = parseXml(data);
|
||||
|
||||
// tags needed for parsing xml documents
|
||||
final String startTag = "<meetings>";
|
||||
final String endTag = "</meetings>";
|
||||
final String startResponse = "<response>";
|
||||
final String endResponse = "</response>";
|
||||
|
||||
// if the request succeeded, then calculate the checksum of each meeting and insert it into the document
|
||||
NodeList meetingsList = doc.getElementsByTagName("meeting");
|
||||
|
||||
String newXMldocument = startTag;
|
||||
for (int i = 0; i < meetingsList.getLength(); i++) {
|
||||
Element meeting = (Element) meetingsList.item(i);
|
||||
String meetingID = meeting.getElementsByTagName("meetingID")
|
||||
.item(0).getTextContent();
|
||||
String password = meeting.getElementsByTagName("moderatorPW")
|
||||
.item(0).getTextContent();
|
||||
|
||||
data = getMeetingInfo(meetingID, password);
|
||||
|
||||
if (data.indexOf("<response>") != -1) {
|
||||
int startIndex = data.indexOf(startResponse)
|
||||
+ startTag.length();
|
||||
int endIndex = data.indexOf(endResponse);
|
||||
newXMldocument += "<meeting>"
|
||||
+ data.substring(startIndex, endIndex)
|
||||
+ "</meeting>";
|
||||
}
|
||||
}
|
||||
newXMldocument += endTag;
|
||||
|
||||
return newXMldocument;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace(System.out);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
public String endMeeting(String meetingID, String moderatorPassword) {
|
||||
|
||||
String base_main = "meetingID=" + urlEncode(meetingID) + "&password="
|
||||
+ urlEncode(moderatorPassword);
|
||||
String base_url = BigBlueButtonURL + "api/end?";
|
||||
String checksum = "";
|
||||
|
||||
try {
|
||||
checksum = DigestUtils.shaHex("end" + base_main + salt);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String xml = getURL(base_url + base_main + "&checksum=" + checksum);
|
||||
|
||||
Document doc = null;
|
||||
try {
|
||||
doc = parseXml(xml);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (doc.getElementsByTagName("returncode").item(0).getTextContent()
|
||||
.trim().equals("SUCCESS")) {
|
||||
return "true";
|
||||
}
|
||||
|
||||
return "Error "
|
||||
+ doc.getElementsByTagName("messageKey").item(0)
|
||||
.getTextContent().trim()
|
||||
+ ": "
|
||||
+ doc.getElementsByTagName("message").item(0).getTextContent()
|
||||
.trim();
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
// parseXml() -- return a DOM of the XML
|
||||
//
|
||||
public static Document parseXml(String xml)
|
||||
throws ParserConfigurationException, IOException, SAXException {
|
||||
DocumentBuilderFactory docFactory = DocumentBuilderFactory
|
||||
.newInstance();
|
||||
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
|
||||
Document doc = docBuilder.parse(new InputSource(new StringReader(xml)));
|
||||
return doc;
|
||||
}
|
||||
|
||||
//
|
||||
// urlEncode() -- URL encode the string
|
||||
//
|
||||
public static String urlEncode(String s) {
|
||||
try {
|
||||
return URLEncoder.encode(s, "UTF-8");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
%>
|
@ -1,14 +0,0 @@
|
||||
|
||||
<%!
|
||||
// This is the security salt that must match the value set in the BigBlueButton server
|
||||
//String salt = "4951c2aea43e5af6d9598610b9e0b6c7";
|
||||
//String salt = "5e5ff0968546b8aaacce0462a99bca30";
|
||||
String salt = "5e5ff0968546b8aaacce0462a99bca30";
|
||||
// This is the URL for the BigBlueButton server 4951c2aea43e5af6d9598610b9e0b6c7
|
||||
String BigBlueButtonURL = "http://192.168.0.217/bigbluebutton/";
|
||||
%>
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,120 +0,0 @@
|
||||
<html>
|
||||
<head><title>Preupload Presentation</title></head></p> <p>
|
||||
<body>
|
||||
<%@ include file="bbb_api.jsp"%>
|
||||
<%@ include file="demo_header.jsp"%>
|
||||
|
||||
<h2>Demo #5: Upload a presentation before joining a Course...</h2>
|
||||
<form action="demo5.jsp" method="post" enctype
|
||||
="multipart/form-data" name="form1" id="form1">
|
||||
<table cellpadding="5" cellspacing="5" style="width: 400px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td style="text-align: right;">Full Name:</td>
|
||||
<td style="width: 5px;"> </td>
|
||||
<td style="text-align: left"><input type="text"
|
||||
name="username" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td style="text-align: left">Upload File:</td>
|
||||
<td style="width: 5px;"> </td>
|
||||
<td style="text-align: left"><input type="file"
|
||||
name="filename" /><!-- <input type="submit" />-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td><input type="submit" value="Join" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<INPUT TYPE=hidden NAME=action VALUE="create">
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<%@ page import="java.util.List" %>
|
||||
<%@ page import="java.util.Iterator" %>
|
||||
<%@ page import="java.io.File" %>
|
||||
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
|
||||
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
|
||||
<%@ page import="org.apache.commons.fileupload.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@page import="sun.security.provider.SHA"%>
|
||||
<%@page import="org.apache.commons.codec.binary.Base64"%>
|
||||
<%@page import="java.security.MessageDigest"%>
|
||||
<%
|
||||
String uname="";
|
||||
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
|
||||
|
||||
if (!isMultipart) {
|
||||
}
|
||||
else {
|
||||
FileItemFactory factory = new DiskFileItemFactory();
|
||||
ServletFileUpload upload = new ServletFileUpload(factory);
|
||||
List<FileItem> items = null;
|
||||
try {
|
||||
items = upload.parseRequest(request);
|
||||
} catch (FileUploadException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
out.print(items.size());
|
||||
Iterator<FileItem> itr = items.iterator();
|
||||
while (itr.hasNext()) {
|
||||
FileItem item = (FileItem) itr.next();
|
||||
String xml = null;
|
||||
xml = "<?xml version='1.0' encoding='UTF-8'?> <modules> <module name='presentation'> <document url='http://www.samplepdf.com/sample.pdf' /> </module></modules>";
|
||||
if (item.isFormField())
|
||||
{
|
||||
String name = item.getFieldName();
|
||||
String value = item.getString();
|
||||
if(name.equals("username"))
|
||||
{
|
||||
uname=value;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
|
||||
String itemName = item.getName();
|
||||
|
||||
if(itemName==""){
|
||||
xml = "<?xml version='1.0' encoding='UTF-8'?> <modules> <module name='presentation'> <document url='http://www.samplepdf.com/sample.pdf' /> </module></modules>";
|
||||
}
|
||||
else {
|
||||
byte[] b = item.get();
|
||||
String encoded = Base64.encodeBase64String(b);
|
||||
xml = "<?xml version='1.0' encoding='UTF-8'?> <modules> <module name=\"presentation\"> <document name=\""+itemName+"\">"+encoded+"\"</document> </module></modules>";
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String joinURL = getJoinURLXML(uname, "Demo Meeting", "Presentation should be uploaded. It was uploaded as an encoded file", xml );
|
||||
if (joinURL.startsWith("http://")) {
|
||||
%>
|
||||
<center><h1>Your presentation has been Uploaded</h1></center>
|
||||
<script language="javascript" type="text/javascript">
|
||||
window.location.href="<%=joinURL%>";
|
||||
</script>
|
||||
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
|
||||
Error: getJoinURL() failed
|
||||
<p />
|
||||
<%=joinURL %>
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
@ -1,112 +0,0 @@
|
||||
<html>
|
||||
<head><title>Preupload Presentation</title></head></p> <p>
|
||||
<body>
|
||||
<%@ include file="bbb_api.jsp"%>
|
||||
<%@ include file="demo_header.jsp"%>
|
||||
<%
|
||||
String fileURL = BigBlueButtonURL.replace("/bigbluebutton",":8080/demo");
|
||||
String name1="Demo123.pdf";
|
||||
String name2="Demo456.pdf";
|
||||
String name3="Demo789.pdf";
|
||||
%>
|
||||
|
||||
<h2>Demo #6: Send a presentation URL before joining a Course...</h2>
|
||||
<form action="demo6.jsp" method="post" enctype
|
||||
="multipart/form-data" name="form1" id="form1">
|
||||
<table cellpadding="5" cellspacing="5" style="width: 400px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td style="text-align: right;">Full Name:</td>
|
||||
<td style="width: 5px;"> </td>
|
||||
<td style="text-align: left"><input type="text"
|
||||
name="username" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td style="text-align: right">File Name:</td>
|
||||
<td style="width: 5px;"> </td>
|
||||
<td><select name=filename>
|
||||
<option value=<%=name1%>><%=name1.substring(0,name1.length()-4)%></option>
|
||||
<option value=<%=name2%>><%=name2.substring(0,name2.length()-4)%></option>
|
||||
<option value=<%=name3%>><%=name3.substring(0,name3.length()-4)%></option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td><input type="submit" value="Join" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<INPUT TYPE=hidden NAME=action VALUE="create">
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<%@ page import="java.util.List" %>
|
||||
<%@ page import="java.util.Iterator" %>
|
||||
<%@ page import="java.io.File" %>
|
||||
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
|
||||
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
|
||||
<%@ page import="org.apache.commons.fileupload.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@page import="sun.security.provider.SHA"%>
|
||||
<%@page import="org.apache.commons.codec.binary.Base64"%>
|
||||
<%@page import="java.security.MessageDigest"%>
|
||||
<%
|
||||
|
||||
String uname="";
|
||||
String fname="";
|
||||
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
|
||||
|
||||
if (!isMultipart) {
|
||||
}
|
||||
else {
|
||||
FileItemFactory factory = new DiskFileItemFactory();
|
||||
ServletFileUpload upload = new ServletFileUpload(factory);
|
||||
List<FileItem> items = null;
|
||||
try {
|
||||
items = upload.parseRequest(request);
|
||||
} catch (FileUploadException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Iterator<FileItem> itr = items.iterator();
|
||||
String xml = null;
|
||||
while (itr.hasNext()) {
|
||||
FileItem item = (FileItem) itr.next();
|
||||
String name = item.getFieldName();
|
||||
String value = item.getString();
|
||||
if(name.equals("username")) {
|
||||
uname=value;
|
||||
}
|
||||
if(name.equals("filename")) {
|
||||
fname=value;
|
||||
}
|
||||
}
|
||||
xml = "<?xml version='1.0' encoding='UTF-8'?> <modules> <module name='presentation'> <document url='"+fileURL+fname+"' /> </module></modules>";
|
||||
String joinURL = getJoinURLXML(uname, "Demo Meeting", "Presentation URL should be passed.", xml );
|
||||
if (joinURL.startsWith("http://")) {
|
||||
%>
|
||||
<center><h1>Your presentation URL has been passed</h1></center>
|
||||
<script language="javascript" type="text/javascript">
|
||||
window.location.href="<%=joinURL%>";
|
||||
</script>
|
||||
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
|
||||
Error: getJoinURL() failed
|
||||
<p />
|
||||
<%=joinURL %>
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
@ -1 +0,0 @@
|
||||
<img src="/bigbluebutton/images/bbb_banner.jpg" /><br><a href="demo5.jsp">Auto Upload File</a> | <a href="demo6.jsp">Auto Upload File URL</a>
|
25
bbb-api-demo/build.gradle
Executable file
25
bbb-api-demo/build.gradle
Executable file
@ -0,0 +1,25 @@
|
||||
//usePlugin 'war'
|
||||
usePlugin 'jetty'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
task resolveDeps(dependsOn: configurations.default.buildArtifacts, type: Copy) {
|
||||
into('lib')
|
||||
from configurations.default
|
||||
from configurations.default.allArtifacts*.file
|
||||
}
|
||||
dependencies {
|
||||
// classpath group: 'org.apache.commons', name: 'commons-codec', version: '2.0'
|
||||
// classpath group: 'org.apache.commons', name: 'commons-fileupload', version: '2.0'
|
||||
// compile group: 'org.apache.commons', name: 'commons-codec', version: '2.0'
|
||||
// compile group: 'org.apache.commons', name: 'commons-fileupload', version: '2.0'
|
||||
// compile 'org.apache.commons:commons-codec'
|
||||
// compile 'org.apache.commons:commons-fileupload'
|
||||
|
||||
compile group: 'commons-codec', name: 'commons-codec', version: '1.4'
|
||||
compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.2'
|
||||
// compile 'commons-codec:commons-codec'
|
||||
|
||||
// compile 'commons-fileupload:commons-fileupload'
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<project name="demo" default="war">
|
||||
|
||||
<path id="compile.classpath">
|
||||
<fileset dir="WebContent/WEB-INF/lib">
|
||||
<include name="*.jar"/>
|
||||
</fileset>
|
||||
</path>
|
||||
|
||||
<target name="init">
|
||||
<mkdir dir="build/classes"/>
|
||||
<mkdir dir="dist" />
|
||||
</target>
|
||||
|
||||
<target name="compile" depends="init" >
|
||||
<javac destdir="build/classes" debug="true" srcdir="src">
|
||||
<classpath refid="compile.classpath"/>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="war" depends="compile">
|
||||
<war destfile="dist/demo.war" webxml="WebContent/WEB-INF/web.xml">
|
||||
<fileset dir="WebContent"/>
|
||||
<lib dir="WebContent/WEB-INF/lib"/>
|
||||
<classes dir="build/classes"/>
|
||||
</war>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="dist" />
|
||||
<delete dir="build" />
|
||||
</target>
|
||||
</project>
|
1
bbb-api-demo/build/.gitignore
vendored
1
bbb-api-demo/build/.gitignore
vendored
@ -1 +0,0 @@
|
||||
classes
|
BIN
bbb-api-demo/build/libs/bbb-api-demo-unspecified.war
Normal file
BIN
bbb-api-demo/build/libs/bbb-api-demo-unspecified.war
Normal file
Binary file not shown.
1
bbb-api-demo/dist/.gitignore
vendored
1
bbb-api-demo/dist/.gitignore
vendored
@ -1 +0,0 @@
|
||||
*.war
|
BIN
bbb-api-demo/lib/bbb-api-demo-unspecified.war
Normal file
BIN
bbb-api-demo/lib/bbb-api-demo-unspecified.war
Normal file
Binary file not shown.
BIN
bbb-api-demo/lib/commons-codec-1.4.jar
Normal file
BIN
bbb-api-demo/lib/commons-codec-1.4.jar
Normal file
Binary file not shown.
BIN
bbb-api-demo/lib/commons-fileupload-1.2.jar
Normal file
BIN
bbb-api-demo/lib/commons-fileupload-1.2.jar
Normal file
Binary file not shown.
2
bbb-api-demo/pom.xml
Normal file → Executable file
2
bbb-api-demo/pom.xml
Normal file → Executable file
@ -16,6 +16,6 @@
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>bbb-api-demo</finalName>
|
||||
<finalName>demo</finalName>
|
||||
</build>
|
||||
</project>
|
||||
|
@ -1,14 +0,0 @@
|
||||
|
||||
<%!
|
||||
// This is the security salt that must match the value set in the BigBlueButton server
|
||||
//String salt = "4951c2aea43e5af6d9598610b9e0b6c7";
|
||||
//String salt = "5e5ff0968546b8aaacce0462a99bca30";
|
||||
String salt = "5e5ff0968546b8aaacce0462a99bca30";
|
||||
// This is the URL for the BigBlueButton server 4951c2aea43e5af6d9598610b9e0b6c7
|
||||
String BigBlueButtonURL = "http://192.168.0.217/bigbluebutton/";
|
||||
%>
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user