You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/10/01 09:41:32 UTC

[1/2] openmeetings git commit: [OPENMEETINGS-1714] more issues are fixed

Repository: openmeetings
Updated Branches:
  refs/heads/master 2357db3f9 -> a16a65d48


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/user/TestMailSending.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/user/TestMailSending.java b/openmeetings-core/src/test/java/org/apache/openmeetings/user/TestMailSending.java
new file mode 100644
index 0000000..c8077f4
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/user/TestMailSending.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.user;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+import static org.junit.Assert.assertTrue;
+
+import javax.mail.Message;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.openmeetings.core.mail.MailHandler;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ *
+ * @author swagner
+ *
+ */
+public class TestMailSending {
+	private static final Logger log = Red5LoggerFactory.getLogger(TestMailSending.class, getWebAppRootKey());
+
+	//Example GMail email server data
+	private String smtpServer = "smtp.gmail.com";
+	private int smtpPort = 587;
+	private String from = "test-app@apache.org";
+	private String mailAuthUser = "test-app@gmail.com";
+	private String mailAuthPass = "test-pass";
+	private boolean mailTls = true;
+
+	/**
+	 * @Test
+	 *
+	 * It does not make a lot of send to test this in every test suite, it is more for manual testing.
+	 * Handy to check your server and the JavaMail setting properties
+	 *
+	 */
+	@Test
+	public void doTestSendEmail() {
+		try {
+			Transport.send(getMimeMessage());
+		} catch (Exception err) {
+			log.error("Error", err);
+		}
+		assertTrue(true);
+	}
+
+	private MimeMessage getMimeMessage() throws Exception {
+		MailHandler h = new MailHandler();
+		h.init(smtpServer, smtpPort, from, mailAuthUser, mailAuthPass, mailTls, true);
+		// Building MimeMessage
+		MimeMessage msg = h.getBasicMimeMessage();
+		msg.setSubject("getSubject()");
+		msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse("test-recipient@gmail.com", false));
+
+		return h.appendBody(msg, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
+	}
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/userdata/TestMD5.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/userdata/TestMD5.java b/openmeetings-core/src/test/java/org/apache/openmeetings/userdata/TestMD5.java
new file mode 100644
index 0000000..1dfc7f9
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/userdata/TestMD5.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.userdata;
+
+import org.junit.Test;
+
+public class TestMD5 {
+
+	@Test
+	public void testTestMD5() {
+		// no-op
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1a8f43c..8d29755 100644
--- a/pom.xml
+++ b/pom.xml
@@ -838,6 +838,11 @@
 				</executions>
 			</plugin>
 			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<inherited>true</inherited>
+			</plugin>
+			<plugin>
 				<groupId>org.jacoco</groupId>
 				<artifactId>jacoco-maven-plugin</artifactId>
 				<executions>


[2/2] openmeetings git commit: [OPENMEETINGS-1714] more issues are fixed

Posted by so...@apache.org.
[OPENMEETINGS-1714] more issues are fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/a16a65d4
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/a16a65d4
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/a16a65d4

Branch: refs/heads/master
Commit: a16a65d48d7e33ce552c4c5b664740c8f763188a
Parents: 2357db3
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sun Oct 1 16:41:26 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sun Oct 1 16:41:26 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/EditorPaneLinkDetector.java    | 319 +++++++++++++++++++
 .../org/apache/openmeetings/TestConnection.java |  29 ++
 .../org/apache/openmeetings/gui/TestGui.java    |  30 ++
 .../openmeetings/jai/TestInterpolation.java     |  61 ++++
 .../apache/openmeetings/rdc/KeyCodesTest.java   | 164 ++++++++++
 .../openmeetings/rdc/ReadKeyCodesTest.java      | 122 +++++++
 .../openmeetings/rdc/TestKeyCodesNumber.java    |  50 +++
 .../rdc/TestReadKeyCodesNumber.java             |  51 +++
 .../openmeetings/rtmp/LoadTestRtmpClient.java   | 171 ++++++++++
 .../apache/openmeetings/rtmp/SimulateLoad.java  |  92 ++++++
 .../openmeetings/rtmp/SimulateLoadTest.java     | 111 +++++++
 .../test/EditorPaneLinkDetector.java            | 319 -------------------
 .../openmeetings/test/TestConnection.java       |  29 --
 .../apache/openmeetings/test/gui/TestGui.java   |  30 --
 .../test/jai/TestInterpolation.java             |  61 ----
 .../openmeetings/test/rdc/KeyCodesTest.java     | 164 ----------
 .../openmeetings/test/rdc/ReadKeyCodesTest.java | 122 -------
 .../test/rdc/TestKeyCodesNumber.java            |  50 ---
 .../test/rdc/TestReadKeyCodesNumber.java        |  51 ---
 .../test/rtmp/LoadTestRtmpClient.java           | 171 ----------
 .../openmeetings/test/rtmp/SimulateLoad.java    |  92 ------
 .../test/rtmp/SimulateLoadTest.java             | 111 -------
 .../openmeetings/test/user/TestMailSending.java |  77 -----
 .../openmeetings/test/userdata/TestMD5.java     |  30 --
 .../openmeetings/user/TestMailSending.java      |  77 +++++
 .../apache/openmeetings/userdata/TestMD5.java   |  30 ++
 pom.xml                                         |   5 +
 27 files changed, 1312 insertions(+), 1307 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/EditorPaneLinkDetector.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/EditorPaneLinkDetector.java b/openmeetings-core/src/test/java/org/apache/openmeetings/EditorPaneLinkDetector.java
new file mode 100644
index 0000000..d415240
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/EditorPaneLinkDetector.java
@@ -0,0 +1,319 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings;
+
+/**
+ * David Bismut, david.bismut@gmail.com
+ * Intern, SETLabs, Infosys Technologies Ltd. May 2004 - Jul 2004
+ * Ecole des Mines de Nantes, France
+ */
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseMotionAdapter;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.accessibility.AccessibleHypertext;
+import javax.swing.JEditorPane;
+import javax.swing.text.AttributeSet;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Element;
+import javax.swing.text.html.HTML;
+import javax.swing.text.html.HTMLDocument;
+import javax.swing.text.html.HTMLEditorKit;
+import javax.swing.text.html.StyleSheet;
+import javax.swing.text.html.parser.ParserDelegator;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * A "HTML" JEditorPane embedded with a special HTMLDocument that detects urls
+ * and displays them as hyperlinks. When CTRL is pressed, the urls are
+ * clickable.
+ *
+ * @author David Bismut
+ *
+ */
+public class EditorPaneLinkDetector extends JEditorPane {
+	private static final long serialVersionUID = 1L;
+	private static final Logger log = Red5LoggerFactory.getLogger(EditorPaneLinkDetector.class, getWebAppRootKey());
+
+	/**
+	 * Creates a <code>EditorPaneLinkDetector</code>.
+	 */
+	public EditorPaneLinkDetector() {
+
+		HTMLEditorKit htmlkit = new HTMLEditorKit();
+
+		StyleSheet styles = htmlkit.getStyleSheet();
+		StyleSheet ss = new StyleSheet();
+
+		ss.addStyleSheet(styles);
+
+		ss.addRule("body {font-family:arial;font-size:12pt}");
+		ss.addRule("p {font-family:arial;margin:2}");
+
+		HTMLDocument doc = new HTMLDocLinkDetector(ss);
+
+		setEditorKit(htmlkit);
+
+		setDocument(doc);
+
+		addMouseMotionListener(new MouseMotionAdapter() {
+			@Override
+			public void mouseMoved(MouseEvent e) {
+
+				AccessibleJTextComponent context = (AccessibleJTextComponent) getAccessibleContext()
+						.getAccessibleEditableText();
+
+				AccessibleHypertext accText = (AccessibleHypertext) context
+						.getAccessibleText();
+
+				int index = accText.getIndexAtPoint(e.getPoint());
+
+				int linkIndex = accText.getLinkIndex(index);
+				if (linkIndex == -1) {
+					setToolTipText(null);
+					return;
+				}
+
+				String linkDesc = accText.getLink(linkIndex)
+						.getAccessibleActionDescription(0);
+
+				String toolTipText = "<html><body style='margin: 3'>"
+						+ linkDesc
+						+ "<br><b>CTRL + click to follow link</b></body></html>";
+				setToolTipText(toolTipText);
+			}
+		});
+
+		addKeyListener(new KeyAdapter() {
+			@Override
+			public void keyPressed(KeyEvent e) {
+
+				if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
+					if (isEditable()) {
+						setEditable(false);
+					}
+				} else {
+					if (!isEditable()) {
+						setEditable(true);
+					}
+				}
+
+			}
+
+			@Override
+			public void keyReleased(KeyEvent e) {
+
+				if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
+					setEditable(true);
+				}
+
+			}
+		});
+	}
+
+	protected class HTMLDocLinkDetector extends HTMLDocument {
+		private static final long serialVersionUID = 1L;
+
+		public HTMLDocLinkDetector(StyleSheet ss) {
+			super(ss);
+
+			setAsynchronousLoadPriority(4);
+			setTokenThreshold(100);
+			setParser(new ParserDelegator());
+		}
+
+		/**
+		 * Returns true if the Element contains a HTML.Tag.A attribute, false
+		 * otherwise.
+		 *
+		 * @param e
+		 *            the Element to be checkd
+		 * @return
+		 */
+		protected boolean isLink(Element e) {
+
+			return (e.getAttributes().getAttribute(HTML.Tag.A) != null);
+
+		}
+
+		/**
+		 * This method corrects or creates a url contained in an Element as an
+		 * hyperlink.
+		 *
+		 * @param e
+		 *            the Element to be computed
+		 * @throws BadLocationException
+		 */
+		protected void computeLinks(Element e) throws BadLocationException {
+
+			int caretPos = getCaretPosition();
+			try {
+				if (isLink(e))
+					correctLink(e);
+				else
+					createLink(e);
+			} catch (IOException ex) {
+				log.error("Error", ex);
+			}
+			setCaretPosition(Math.min(caretPos, getLength()));
+		}
+
+		/**
+		 * The method corrects the url inside an Element, that is supposed to be
+		 * an element containing a link only. This function is typically called
+		 * when the url is beeing edited. What the function does is to remove
+		 * the html tags, so the url is actually edited in plain text and not as
+		 * an hyperlink.
+		 *
+		 * @param e
+		 *            the Element that contains the url
+		 * @throws BadLocationException
+		 * @throws IOException
+		 */
+		protected void correctLink(Element e) throws BadLocationException,
+				IOException {
+
+			int length = e.getEndOffset() - e.getStartOffset();
+
+			boolean endOfDoc = e.getEndOffset() == getLength() + 1;
+
+			// to avoid catching the final '\n' of the document.
+			if (endOfDoc)
+				length--;
+
+			String text = getText(e.getStartOffset(), length);
+
+			setOuterHTML(e, text);
+
+			// insert final spaces ignored by the html
+			Matcher spaceMatcher = Pattern.compile("(\\s+)$").matcher(text);
+
+			if (spaceMatcher.find()) {
+				String endingSpaces = spaceMatcher.group(1);
+				insertString(Math.min(getLength(), e.getEndOffset()),
+						endingSpaces, null);
+			}
+		}
+
+		/**
+		 * The method check if the element contains a url in plain text, and if
+		 * so, it creates the html tag HTML.Tag.A to have the url displayed as
+		 * an hyperlink.
+		 *
+		 * @param e
+		 *            element that contains the url
+		 * @throws BadLocationException
+		 * @throws IOException
+		 */
+		protected void createLink(Element e) throws BadLocationException,
+				IOException {
+
+			int caretPos = getCaretPosition();
+
+			int startOffset = e.getStartOffset();
+			int length = e.getEndOffset() - e.getStartOffset();
+
+			boolean endOfDoc = e.getEndOffset() == getLength() + 1;
+			// to avoid catching the final '\n' of the document.
+			if (endOfDoc)
+				length--;
+
+			String text = getText(startOffset, length);
+
+			Matcher matcher = Pattern.compile(
+					"(?i)(\\b(http://|https://|www.|ftp://|file:/|mailto:)\\S+)(\\s+)")
+					.matcher(text);
+
+			if (matcher.find()) {
+				String url = matcher.group(1);
+				//String prefix = matcher.group(2);
+				String endingSpaces = matcher.group(3);
+
+				// to ignore characters after the caret
+				int validPos = startOffset + matcher.start(3) + 1;
+				if (validPos > caretPos)
+					return;
+
+				Matcher dotEndMatcher = Pattern.compile("([\\W&&[^/]]+)$")
+						.matcher(url);
+
+				//Ending non alpha characters like [.,?%] shouldn't be included
+				// in the url.
+				String endingDots = "";
+				if (dotEndMatcher.find()) {
+					endingDots = dotEndMatcher.group(1);
+					url = dotEndMatcher.replaceFirst("");
+				}
+
+				text = matcher.replaceFirst("<a href='" + url + "'>" + url
+						+ "</a>" + endingDots + endingSpaces);
+
+				setOuterHTML(e, text);
+
+				// insert initial spaces ignored by the html
+				Matcher spaceMatcher = Pattern.compile("^(\\s+)").matcher(text);
+
+				if (spaceMatcher.find()) {
+					String initialSpaces = spaceMatcher.group(1);
+					insertString(startOffset, initialSpaces, null);
+				}
+
+				// insert final spaces ignored by the html
+				spaceMatcher = Pattern.compile("(\\s+)$").matcher(text);
+
+				if (spaceMatcher.find()) {
+					String extraSpaces = spaceMatcher.group(1);
+					int endoffset = e.getEndOffset();
+					if (extraSpaces.charAt(extraSpaces.length() - 1) == '\n') {
+						extraSpaces = extraSpaces.substring(0, extraSpaces
+								.length() - 1);
+						endoffset--;
+					}
+					insertString(Math.min(getLength(), endoffset), extraSpaces,
+							null);
+				}
+			}
+		}
+
+		@Override
+		public void remove(int offs, int len) throws BadLocationException {
+
+			super.remove(offs, len);
+			Element e = getCharacterElement(offs - len);
+			computeLinks(e);
+		}
+
+		@Override
+		public void insertString(int offs, String str, AttributeSet a)
+				throws BadLocationException {
+
+			super.insertString(offs, str, a);
+			Element e = getCharacterElement(offs);
+			computeLinks(e);
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/TestConnection.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/TestConnection.java b/openmeetings-core/src/test/java/org/apache/openmeetings/TestConnection.java
new file mode 100644
index 0000000..0a271ae
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/TestConnection.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings;
+
+import org.junit.Test;
+
+public class TestConnection {
+
+	@Test
+	public void testNoop() {
+		//no-op
+	}
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/gui/TestGui.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/gui/TestGui.java b/openmeetings-core/src/test/java/org/apache/openmeetings/gui/TestGui.java
new file mode 100644
index 0000000..2541fd0
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/gui/TestGui.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.gui;
+
+import org.junit.Test;
+
+
+public class TestGui {
+
+	@Test
+	public void testNoop() {
+		// no-op
+	}
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/jai/TestInterpolation.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/jai/TestInterpolation.java b/openmeetings-core/src/test/java/org/apache/openmeetings/jai/TestInterpolation.java
new file mode 100644
index 0000000..a33c7c2
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/jai/TestInterpolation.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.jai;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class TestInterpolation {
+	private static final Logger log = Red5LoggerFactory.getLogger(TestInterpolation.class, getWebAppRootKey());
+
+	@Test
+	public void testInterpolate() {
+		try {
+
+//			GeomPoint p1 = new Point(-60,-100);
+//			GeomPoint p2 = new Point(20, 50);
+//
+//			//double[] samples = {-100,-50};
+//
+//			GeomPoint gPoint = GeomPoint.interpolate(p1, p2, new Float(0.5));
+//
+//			log.debug("Interpolated: "+gPoint);
+//
+//
+//			GeomPoint p3 = new GeomPoint();
+//			p3.setLocation(-2,4);
+//			//p3.setLocation(3,4);
+//			p3.normalize(10);
+//			//GeomPoint
+//
+//
+//			p3.setLocation(2,-4);
+//			//p3.setLocation(3,4);
+//			p3.normalize(10);
+//
+		} catch (Exception er) {
+			log.error("ERROR ", er);
+		}
+	}
+
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/KeyCodesTest.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/KeyCodesTest.java b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/KeyCodesTest.java
new file mode 100644
index 0000000..411067e
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/KeyCodesTest.java
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.rdc;
+
+import java.awt.Color;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+
+class WindowClosingAdapter extends WindowAdapter {
+	@Override
+	public void windowClosing(WindowEvent event) {
+		event.getWindow().setVisible(false);
+		event.getWindow().dispose();
+		System.exit(0);
+	}
+}
+
+public class KeyCodesTest extends Frame implements KeyListener {
+	private static final long serialVersionUID = 1L;
+	String msg1 = "";
+	String msg2 = "";
+
+	public static void main(String[] args) {
+		new KeyCodesTest();
+	}
+
+	public KeyCodesTest() {
+		super("TestKeyCodes");
+		addKeyListener(this);
+		addWindowListener(new WindowClosingAdapter());
+		setBackground(Color.lightGray);
+		setSize(300, 200);
+		setLocation(200, 100);
+		setVisible(true);
+	}
+
+	@Override
+	public void paint(Graphics g) {
+		if (msg1.length() > 0) {
+			draw3DRect(g, 20, 50, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg1, 30, 70);
+		}
+		if (msg2.length() > 0) {
+			draw3DRect(g, 20, 100, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg2, 30, 120);
+		}
+	}
+
+	void draw3DRect(Graphics g, int x, int y, int width, int height) {
+		g.setColor(Color.darkGray);
+		g.drawLine(x, y, x, y + height);
+		g.drawLine(x, y, x + width, y);
+		g.setColor(Color.white);
+		g.drawLine(x + width, y + height, x, y + height);
+		g.drawLine(x + width, y + height, x + width, y);
+	}
+
+	@Override
+	public void keyPressed(KeyEvent event) {
+		msg1 = "";
+		System.out.println("keyPressed CODE1 "+event.getKeyCode());
+
+		int myCode = event.getKeyCode();
+
+		System.out.println("keyPressed CODE2 "+myCode);
+
+		System.out.println("keyPressed CHAR3 "+event.getKeyChar());
+
+		System.out.println("keyPressed CHAR4 "+KeyEvent.getKeyText(event.getKeyCode()));
+
+		System.out.println("keyPressed CHAR5 "+KeyEvent.getKeyText(myCode));
+
+		System.out.println("keyPressed isActionKey "+event.isActionKey());
+		System.out.println("keyPressed isAltDown "+event.isAltDown());
+		System.out.println("keyPressed isAltGraphDown "+event.isAltGraphDown());
+		System.out.println("keyPressed isConsumed "+event.isConsumed());
+		System.out.println("keyPressed isControlDown "+event.isControlDown());
+		System.out.println("keyPressed isMetaDown "+event.isMetaDown());
+		System.out.println("keyPressed isShiftDown "+event.isShiftDown());
+
+		System.out.println("keyPressed paramString "+event.paramString());
+
+		if (event.getKeyChar() == KeyEvent.CHAR_UNDEFINED) {
+			int key = event.getKeyCode();
+			// Funktionstaste abfragen
+			if (key == KeyEvent.VK_F1) {
+				msg1 = "F1";
+			} else if (key == KeyEvent.VK_F2) {
+				msg1 = "F2";
+			} else if (key == KeyEvent.VK_F3) {
+				msg1 = "F3";
+			}
+			// Modifier abfragen
+			if (msg1.length() > 0) {
+				if (event.isAltDown()) {
+					msg1 = "ALT + " + msg1;
+				}
+				if (event.isControlDown()) {
+					msg1 = "STRG + " + msg1;
+				}
+				if (event.isShiftDown()) {
+					msg1 = "UMSCHALT + " + msg1;
+				}
+			}
+		}
+		repaint();
+	}
+
+	@Override
+	public void keyReleased(KeyEvent event) {
+		msg1 = "";
+		repaint();
+	}
+
+	@Override
+	public void keyTyped(KeyEvent event) {
+		char key = event.getKeyChar();
+
+//		System.out.println("keyTyped CODE1 "+event.getKeyCode());
+//
+//		Integer myCode = event.getKeyCode();
+//
+//		System.out.println("keyTyped CODE2 "+myCode);
+//
+//		System.out.println("keyTyped CHAR3 "+event.getKeyChar());
+//
+//		System.out.println("keyTyped CHAR4 "+event.getKeyText(event.getKeyCode()));
+//
+//		System.out.println("keyTyped CHAR5 "+event.getKeyText(myCode));
+
+		if (key == KeyEvent.VK_BACK_SPACE) {
+			if (msg2.length() > 0) {
+				msg2 = msg2.substring(0, msg2.length() - 1);
+			}
+		} else if (key >= KeyEvent.VK_SPACE) {
+			if (msg2.length() < 40) {
+				msg2 += event.getKeyChar();
+			}
+		}
+		repaint();
+	}
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/ReadKeyCodesTest.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/ReadKeyCodesTest.java b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/ReadKeyCodesTest.java
new file mode 100644
index 0000000..cd5968e
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/ReadKeyCodesTest.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.rdc;
+
+import java.awt.Color;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+
+public class ReadKeyCodesTest extends Frame implements KeyListener {
+	private static final long serialVersionUID = 1L;
+	String msg1 = "";
+	String msg2 = "";
+
+	public static void main(String[] args) {
+		new ReadKeyCodesTest();
+	}
+
+	public ReadKeyCodesTest() {
+		super("TestKeyCodes");
+		addKeyListener(this);
+		addWindowListener(new WindowClosingAdapter());
+		setBackground(Color.lightGray);
+		setSize(300, 200);
+		setLocation(200, 100);
+		setVisible(true);
+	}
+
+	@Override
+	public void paint(Graphics g) {
+		if (msg1.length() > 0) {
+			draw3DRect(g, 20, 50, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg1, 30, 70);
+		}
+		if (msg2.length() > 0) {
+			draw3DRect(g, 20, 100, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg2, 30, 120);
+		}
+	}
+
+	void draw3DRect(Graphics g, int x, int y, int width, int height) {
+		g.setColor(Color.darkGray);
+		g.drawLine(x, y, x, y + height);
+		g.drawLine(x, y, x + width, y);
+		g.setColor(Color.white);
+		g.drawLine(x + width, y + height, x, y + height);
+		g.drawLine(x + width, y + height, x + width, y);
+	}
+
+	@Override
+	public void keyPressed(KeyEvent event) {
+		msg1 = "";
+		System.out.println("keyPressed "+event.getKeyCode());
+		if (event.getKeyChar() == KeyEvent.CHAR_UNDEFINED) {
+			int key = event.getKeyCode();
+			// Funktionstaste abfragen
+			if (key == KeyEvent.VK_F1) {
+				msg1 = "F1";
+			} else if (key == KeyEvent.VK_F2) {
+				msg1 = "F2";
+			} else if (key == KeyEvent.VK_F3) {
+				msg1 = "F3";
+			}
+			// Modifier abfragen
+			if (msg1.length() > 0) {
+				if (event.isAltDown()) {
+					msg1 = "ALT + " + msg1;
+				}
+				if (event.isControlDown()) {
+					msg1 = "STRG + " + msg1;
+				}
+				if (event.isShiftDown()) {
+					msg1 = "UMSCHALT + " + msg1;
+				}
+			}
+		}
+		repaint();
+	}
+
+	@Override
+	public void keyReleased(KeyEvent event) {
+		msg1 = "";
+		repaint();
+	}
+
+	@Override
+	public void keyTyped(KeyEvent event) {
+		char key = event.getKeyChar();
+
+		System.out.println("keyTyped "+event.getKeyCode());
+
+		if (key == KeyEvent.VK_BACK_SPACE) {
+			if (msg2.length() > 0) {
+				msg2 = msg2.substring(0, msg2.length() - 1);
+			}
+		} else if (key >= KeyEvent.VK_SPACE) {
+			if (msg2.length() < 40) {
+				msg2 += event.getKeyChar();
+			}
+		}
+		repaint();
+	}
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestKeyCodesNumber.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestKeyCodesNumber.java b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestKeyCodesNumber.java
new file mode 100644
index 0000000..40850b1
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestKeyCodesNumber.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.rdc;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
+import java.awt.event.KeyEvent;
+
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class TestKeyCodesNumber {
+	private static final Logger log = Red5LoggerFactory.getLogger(TestKeyCodesNumber.class, getWebAppRootKey());
+
+	@Test
+	public void testKeyCodes() {
+		try {
+
+			for (int i = 1; i < 600; i++) {
+
+				String charText = KeyEvent.getKeyText(i);
+
+				log.debug("ERROR " + i + " " + charText);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[testKeyCodes]", err);
+		}
+
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestReadKeyCodesNumber.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestReadKeyCodesNumber.java b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestReadKeyCodesNumber.java
new file mode 100644
index 0000000..d09567d
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/rdc/TestReadKeyCodesNumber.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.rdc;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class TestReadKeyCodesNumber {
+	private static final Logger log = Red5LoggerFactory.getLogger(TestReadKeyCodesNumber.class, getWebAppRootKey());
+
+	@Test
+	public void testTestKeyCodesNumber() {
+		try {
+
+			this.testKeyCodes();
+
+		} catch (Exception er) {
+			log.debug("ERROR ", er);
+		}
+	}
+
+	@Test
+	public void testKeyCodes() {
+		try {
+
+		} catch (Exception err) {
+			log.error("[testKeyCodes]", err);
+		}
+
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/LoadTestRtmpClient.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/LoadTestRtmpClient.java b/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/LoadTestRtmpClient.java
new file mode 100644
index 0000000..3368d5d
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/LoadTestRtmpClient.java
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.rtmp;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.red5.client.net.rtmp.ClientExceptionHandler;
+import org.red5.client.net.rtmp.INetStreamEventHandler;
+import org.red5.client.net.rtmp.RTMPClient;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.net.rtmp.event.Notify;
+
+public class LoadTestRtmpClient extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, ClientExceptionHandler {
+	private static class CallObject {
+		Date started;
+		Date ended;
+
+		public CallObject(Date started) {
+			super();
+			this.started = started;
+		}
+
+		public Date getStarted() {
+			return started;
+		}
+
+		public Date getEnded() {
+			return ended;
+		}
+
+		public void setEnded(Date ended) {
+			this.ended = ended;
+		}
+	}
+
+	private int counterCalls = 0; // a call is always 2 steps
+	private Map<Integer, CallObject> calls = new HashMap<>();
+	private boolean isConnected = false;
+	private final int instanceId;
+
+	public LoadTestRtmpClient(int instanceId) {
+		this.instanceId = instanceId;
+	}
+
+	public boolean performCall() {
+
+		// System.err.println("performCall " + isConnected);
+
+		if (!isConnected) {
+			return false;
+		}
+
+		if (counterCalls % 2 == 0) {
+
+			if (counterCalls > 10) {
+
+				return true;
+
+			}
+
+			System.err.println("Rest o do new call " + counterCalls);
+			counterCalls++;
+
+			Map<String, Integer> map = new HashMap<>();
+			map.put("instanceId", instanceId);
+			map.put("count", counterCalls);
+			calls.put(counterCalls, new CallObject(new Date()));
+			invoke("sendMessageToCurrentScope", new Object[] {"syncMessageToCurrentScopeResult", map, true, false }, this);
+
+		} else {
+			System.err.println("Call running " + counterCalls);
+		}
+
+
+
+		return false;
+	}
+
+	public double getAverageTime() {
+		long overallTime = 0L;
+
+		for (Entry<Integer, CallObject> tCallObjectEntry : calls.entrySet()) {
+
+			long deltaTime = tCallObjectEntry.getValue().getEnded().getTime()
+					- tCallObjectEntry.getValue().getStarted().getTime();
+
+			// System.err.println("Key " + tCallObjectEntry.getKey()
+			// + "deltaTime " + deltaTime);
+
+			overallTime += deltaTime;
+
+		}
+
+		double averageTime = Long.valueOf(overallTime).doubleValue()
+				/ Integer.valueOf(calls.size()).doubleValue();
+
+		return averageTime;
+	}
+
+	@Override
+	public void resultReceived(IPendingServiceCall call) {
+		String method = call == null ? null : call.getServiceMethodName();
+		System.err.println("method "+method);
+		if (method == null) {
+			return;
+		}
+		if ("connect".equals(method)) {
+			isConnected = true;
+		}
+
+		if ("loadTestSyncMessage".equals(method)) {
+
+			CallObject tCallObject = calls.get(counterCalls);
+			if (tCallObject == null) {
+
+				for (Entry<Integer, CallObject> tCallObjectEntry : calls.entrySet()) {
+
+					System.err.println("Key " + tCallObjectEntry.getKey()
+							+ "tCallObjectEntry "
+							+ tCallObjectEntry.getValue().getStarted());
+
+				}
+
+				throw new RuntimeException(
+						"tCallObject is null currentCountReturn "
+								+ counterCalls + " list size "
+								+ calls.size());
+			}
+			tCallObject.setEnded(new Date());
+			calls.put(counterCalls, tCallObject);
+
+			System.err.println("Call received " + counterCalls
+					+ " instanceId: " + instanceId);
+
+			counterCalls++;
+		}
+
+	}
+
+
+	@Override
+	public void onStreamEvent(Notify notify) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public int getNumberOfCalls() {
+		return calls.size();
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoad.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoad.java b/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoad.java
new file mode 100644
index 0000000..65ba126
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoad.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.rtmp;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class SimulateLoad extends Thread {
+	private static final Logger log = Red5LoggerFactory.getLogger(SimulateLoad.class, getWebAppRootKey());
+
+	private LoadTestRtmpClient loadTestRtmpClient;
+	private boolean testRunning = true;
+
+	public double getAverageTime() {
+		return loadTestRtmpClient.getAverageTime();
+	}
+
+	public boolean isTestRunning() {
+		return testRunning;
+	}
+
+	public static void main(String... args) {
+		try {
+			if (args.length != 4) {
+				throw new RuntimeException("4 args needed, host, port, context, instanceId");
+			}
+			for (String arg : args) {
+				System.err.println("arg: " + arg);
+			}
+			SimulateLoad simulateLoad = new SimulateLoad(args[0], Integer
+					.valueOf(args[1]).intValue(), args[2], Integer.valueOf(
+					args[3]).intValue());
+			simulateLoad.start();
+			System.err.println("started ");
+
+		} catch (Exception er) {
+			log.error("Error", er);
+		}
+	}
+
+	public SimulateLoad(String host, int port, String applicationContext,
+			int instanceId) {
+		super();
+
+		loadTestRtmpClient = new LoadTestRtmpClient(instanceId);
+		loadTestRtmpClient.connect(host, port, applicationContext,
+				loadTestRtmpClient);
+	}
+
+	@Override
+	public void run() {
+		try {
+
+			System.err.println("######### start client");
+
+			while (testRunning) {
+				testRunning = !loadTestRtmpClient.performCall();
+				try {
+					Thread.sleep(200);
+				} catch (InterruptedException e) {
+					log.error("Error", e);
+				}
+			}
+
+		} catch (Exception e) {
+			log.error("Error", e);
+		}
+	}
+
+	public int getNumberOfCalls() {
+		return loadTestRtmpClient.getNumberOfCalls();
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoadTest.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoadTest.java b/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoadTest.java
new file mode 100644
index 0000000..2ebd2c7
--- /dev/null
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/rtmp/SimulateLoadTest.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.openmeetings.rtmp;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class SimulateLoadTest {
+	private static final Logger log = Red5LoggerFactory.getLogger(SimulateLoadTest.class, getWebAppRootKey());
+	private int numberOfClients = 25;
+	private List<SimulateLoad> simulateLoadList = new ArrayList<>();
+
+	private String host = "192.168.1.7";
+	private final int port = 1935;
+	private final String applicationContext = "openmeetings/1";
+
+	public SimulateLoadTest(String host, int numberOfClients) {
+		this.host = host;
+		this.numberOfClients = numberOfClients;
+	}
+
+	public static void main(String... args) {
+		if (args.length != 2) {
+			return;
+		}
+		SimulateLoadTest simulateLoadTest = new SimulateLoadTest(args[0],
+				Integer.valueOf(args[1]).intValue());
+		simulateLoadTest.test();
+	}
+
+
+	@Test
+	public void test() {
+		try {
+			for (int i = 0; i < numberOfClients; i++) {
+				SimulateLoad simulateLoad = new SimulateLoad(host, port,
+						applicationContext, i);
+				simulateLoadList.add(simulateLoad);
+				Thread.sleep(100);
+			}
+
+			log.error("Clients initialized");
+
+			for (SimulateLoad simulateLoad : simulateLoadList) {
+				simulateLoad.start();
+				Thread.sleep(50);
+			}
+
+			log.error("Clients started");
+
+			boolean running = true;
+			while (running) {
+				boolean doRunStill = false;
+				for (SimulateLoad simulateLoad : simulateLoadList) {
+					if (simulateLoad.isTestRunning()) {
+						doRunStill = true;
+						break;
+					}
+				}
+				running = doRunStill;
+				try {
+					Thread.sleep(200);
+				} catch (InterruptedException e) {
+					log.error("Error", e);
+				}
+			}
+
+			double overallTime = 0;
+
+			for (SimulateLoad simulateLoad : simulateLoadList) {
+				overallTime += simulateLoad.getAverageTime();
+				log.error("Number of calls: "
+						+ simulateLoad.getNumberOfCalls() + "overallTime: "
+						+ overallTime + " averageTime"
+						+ simulateLoad.getAverageTime());
+			}
+
+			double deltaAllClients = overallTime
+					/ Integer.valueOf(simulateLoadList.size()).doubleValue();
+
+			log.error("Average time per call: " + deltaAllClients);
+
+		} catch (Exception err) {
+			log.error("Error", err);
+		}
+
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/EditorPaneLinkDetector.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/EditorPaneLinkDetector.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/EditorPaneLinkDetector.java
deleted file mode 100644
index d41c6d3..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/EditorPaneLinkDetector.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test;
-
-/**
- * David Bismut, david.bismut@gmail.com
- * Intern, SETLabs, Infosys Technologies Ltd. May 2004 - Jul 2004
- * Ecole des Mines de Nantes, France
- */
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseMotionAdapter;
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.accessibility.AccessibleHypertext;
-import javax.swing.JEditorPane;
-import javax.swing.text.AttributeSet;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Element;
-import javax.swing.text.html.HTML;
-import javax.swing.text.html.HTMLDocument;
-import javax.swing.text.html.HTMLEditorKit;
-import javax.swing.text.html.StyleSheet;
-import javax.swing.text.html.parser.ParserDelegator;
-
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-/**
- * A "HTML" JEditorPane embedded with a special HTMLDocument that detects urls
- * and displays them as hyperlinks. When CTRL is pressed, the urls are
- * clickable.
- *
- * @author David Bismut
- *
- */
-public class EditorPaneLinkDetector extends JEditorPane {
-	private static final long serialVersionUID = 1L;
-	private static final Logger log = Red5LoggerFactory.getLogger(EditorPaneLinkDetector.class, getWebAppRootKey());
-
-	/**
-	 * Creates a <code>EditorPaneLinkDetector</code>.
-	 */
-	public EditorPaneLinkDetector() {
-
-		HTMLEditorKit htmlkit = new HTMLEditorKit();
-
-		StyleSheet styles = htmlkit.getStyleSheet();
-		StyleSheet ss = new StyleSheet();
-
-		ss.addStyleSheet(styles);
-
-		ss.addRule("body {font-family:arial;font-size:12pt}");
-		ss.addRule("p {font-family:arial;margin:2}");
-
-		HTMLDocument doc = new HTMLDocLinkDetector(ss);
-
-		setEditorKit(htmlkit);
-
-		setDocument(doc);
-
-		addMouseMotionListener(new MouseMotionAdapter() {
-			@Override
-			public void mouseMoved(MouseEvent e) {
-
-				AccessibleJTextComponent context = (AccessibleJTextComponent) getAccessibleContext()
-						.getAccessibleEditableText();
-
-				AccessibleHypertext accText = (AccessibleHypertext) context
-						.getAccessibleText();
-
-				int index = accText.getIndexAtPoint(e.getPoint());
-
-				int linkIndex = accText.getLinkIndex(index);
-				if (linkIndex == -1) {
-					setToolTipText(null);
-					return;
-				}
-
-				String linkDesc = accText.getLink(linkIndex)
-						.getAccessibleActionDescription(0);
-
-				String toolTipText = "<html><body style='margin: 3'>"
-						+ linkDesc
-						+ "<br><b>CTRL + click to follow link</b></body></html>";
-				setToolTipText(toolTipText);
-			}
-		});
-
-		addKeyListener(new KeyAdapter() {
-			@Override
-			public void keyPressed(KeyEvent e) {
-
-				if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
-					if (isEditable()) {
-						setEditable(false);
-					}
-				} else {
-					if (!isEditable()) {
-						setEditable(true);
-					}
-				}
-
-			}
-
-			@Override
-			public void keyReleased(KeyEvent e) {
-
-				if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
-					setEditable(true);
-				}
-
-			}
-		});
-	}
-
-	protected class HTMLDocLinkDetector extends HTMLDocument {
-		private static final long serialVersionUID = 1L;
-
-		public HTMLDocLinkDetector(StyleSheet ss) {
-			super(ss);
-
-			setAsynchronousLoadPriority(4);
-			setTokenThreshold(100);
-			setParser(new ParserDelegator());
-		}
-
-		/**
-		 * Returns true if the Element contains a HTML.Tag.A attribute, false
-		 * otherwise.
-		 *
-		 * @param e
-		 *            the Element to be checkd
-		 * @return
-		 */
-		protected boolean isLink(Element e) {
-
-			return (e.getAttributes().getAttribute(HTML.Tag.A) != null);
-
-		}
-
-		/**
-		 * This method corrects or creates a url contained in an Element as an
-		 * hyperlink.
-		 *
-		 * @param e
-		 *            the Element to be computed
-		 * @throws BadLocationException
-		 */
-		protected void computeLinks(Element e) throws BadLocationException {
-
-			int caretPos = getCaretPosition();
-			try {
-				if (isLink(e))
-					correctLink(e);
-				else
-					createLink(e);
-			} catch (IOException ex) {
-				log.error("Error", ex);
-			}
-			setCaretPosition(Math.min(caretPos, getLength()));
-		}
-
-		/**
-		 * The method corrects the url inside an Element, that is supposed to be
-		 * an element containing a link only. This function is typically called
-		 * when the url is beeing edited. What the function does is to remove
-		 * the html tags, so the url is actually edited in plain text and not as
-		 * an hyperlink.
-		 *
-		 * @param e
-		 *            the Element that contains the url
-		 * @throws BadLocationException
-		 * @throws IOException
-		 */
-		protected void correctLink(Element e) throws BadLocationException,
-				IOException {
-
-			int length = e.getEndOffset() - e.getStartOffset();
-
-			boolean endOfDoc = e.getEndOffset() == getLength() + 1;
-
-			// to avoid catching the final '\n' of the document.
-			if (endOfDoc)
-				length--;
-
-			String text = getText(e.getStartOffset(), length);
-
-			setOuterHTML(e, text);
-
-			// insert final spaces ignored by the html
-			Matcher spaceMatcher = Pattern.compile("(\\s+)$").matcher(text);
-
-			if (spaceMatcher.find()) {
-				String endingSpaces = spaceMatcher.group(1);
-				insertString(Math.min(getLength(), e.getEndOffset()),
-						endingSpaces, null);
-			}
-		}
-
-		/**
-		 * The method check if the element contains a url in plain text, and if
-		 * so, it creates the html tag HTML.Tag.A to have the url displayed as
-		 * an hyperlink.
-		 *
-		 * @param e
-		 *            element that contains the url
-		 * @throws BadLocationException
-		 * @throws IOException
-		 */
-		protected void createLink(Element e) throws BadLocationException,
-				IOException {
-
-			int caretPos = getCaretPosition();
-
-			int startOffset = e.getStartOffset();
-			int length = e.getEndOffset() - e.getStartOffset();
-
-			boolean endOfDoc = e.getEndOffset() == getLength() + 1;
-			// to avoid catching the final '\n' of the document.
-			if (endOfDoc)
-				length--;
-
-			String text = getText(startOffset, length);
-
-			Matcher matcher = Pattern.compile(
-					"(?i)(\\b(http://|https://|www.|ftp://|file:/|mailto:)\\S+)(\\s+)")
-					.matcher(text);
-
-			if (matcher.find()) {
-				String url = matcher.group(1);
-				//String prefix = matcher.group(2);
-				String endingSpaces = matcher.group(3);
-
-				// to ignore characters after the caret
-				int validPos = startOffset + matcher.start(3) + 1;
-				if (validPos > caretPos)
-					return;
-
-				Matcher dotEndMatcher = Pattern.compile("([\\W&&[^/]]+)$")
-						.matcher(url);
-
-				//Ending non alpha characters like [.,?%] shouldn't be included
-				// in the url.
-				String endingDots = "";
-				if (dotEndMatcher.find()) {
-					endingDots = dotEndMatcher.group(1);
-					url = dotEndMatcher.replaceFirst("");
-				}
-
-				text = matcher.replaceFirst("<a href='" + url + "'>" + url
-						+ "</a>" + endingDots + endingSpaces);
-
-				setOuterHTML(e, text);
-
-				// insert initial spaces ignored by the html
-				Matcher spaceMatcher = Pattern.compile("^(\\s+)").matcher(text);
-
-				if (spaceMatcher.find()) {
-					String initialSpaces = spaceMatcher.group(1);
-					insertString(startOffset, initialSpaces, null);
-				}
-
-				// insert final spaces ignored by the html
-				spaceMatcher = Pattern.compile("(\\s+)$").matcher(text);
-
-				if (spaceMatcher.find()) {
-					String extraSpaces = spaceMatcher.group(1);
-					int endoffset = e.getEndOffset();
-					if (extraSpaces.charAt(extraSpaces.length() - 1) == '\n') {
-						extraSpaces = extraSpaces.substring(0, extraSpaces
-								.length() - 1);
-						endoffset--;
-					}
-					insertString(Math.min(getLength(), endoffset), extraSpaces,
-							null);
-				}
-			}
-		}
-
-		@Override
-		public void remove(int offs, int len) throws BadLocationException {
-
-			super.remove(offs, len);
-			Element e = getCharacterElement(offs - len);
-			computeLinks(e);
-		}
-
-		@Override
-		public void insertString(int offs, String str, AttributeSet a)
-				throws BadLocationException {
-
-			super.insertString(offs, str, a);
-			Element e = getCharacterElement(offs);
-			computeLinks(e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/TestConnection.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/TestConnection.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/TestConnection.java
deleted file mode 100644
index fd43134..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/TestConnection.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test;
-
-import org.junit.Test;
-
-public class TestConnection {
-
-	@Test
-	public void testNoop() {
-		//no-op
-	}
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/gui/TestGui.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/gui/TestGui.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/gui/TestGui.java
deleted file mode 100644
index b8a1295..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/gui/TestGui.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.gui;
-
-import org.junit.Test;
-
-
-public class TestGui {
-
-	@Test
-	public void testNoop() {
-		// no-op
-	}
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/jai/TestInterpolation.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/jai/TestInterpolation.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/jai/TestInterpolation.java
deleted file mode 100644
index 1d4b831..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/jai/TestInterpolation.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.jai;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-public class TestInterpolation {
-	private static final Logger log = Red5LoggerFactory.getLogger(TestInterpolation.class, getWebAppRootKey());
-
-	@Test
-	public void testInterpolate() {
-		try {
-
-//			GeomPoint p1 = new Point(-60,-100);
-//			GeomPoint p2 = new Point(20, 50);
-//
-//			//double[] samples = {-100,-50};
-//
-//			GeomPoint gPoint = GeomPoint.interpolate(p1, p2, new Float(0.5));
-//
-//			log.debug("Interpolated: "+gPoint);
-//
-//
-//			GeomPoint p3 = new GeomPoint();
-//			p3.setLocation(-2,4);
-//			//p3.setLocation(3,4);
-//			p3.normalize(10);
-//			//GeomPoint
-//
-//
-//			p3.setLocation(2,-4);
-//			//p3.setLocation(3,4);
-//			p3.normalize(10);
-//
-		} catch (Exception er) {
-			log.error("ERROR ", er);
-		}
-	}
-
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/KeyCodesTest.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/KeyCodesTest.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/KeyCodesTest.java
deleted file mode 100644
index a75f696..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/KeyCodesTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.rdc;
-
-import java.awt.Color;
-import java.awt.Frame;
-import java.awt.Graphics;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-
-class WindowClosingAdapter extends WindowAdapter {
-	@Override
-	public void windowClosing(WindowEvent event) {
-		event.getWindow().setVisible(false);
-		event.getWindow().dispose();
-		System.exit(0);
-	}
-}
-
-public class KeyCodesTest extends Frame implements KeyListener {
-	private static final long serialVersionUID = 1L;
-	String msg1 = "";
-	String msg2 = "";
-
-	public static void main(String[] args) {
-		new KeyCodesTest();
-	}
-
-	public KeyCodesTest() {
-		super("TestKeyCodes");
-		addKeyListener(this);
-		addWindowListener(new WindowClosingAdapter());
-		setBackground(Color.lightGray);
-		setSize(300, 200);
-		setLocation(200, 100);
-		setVisible(true);
-	}
-
-	@Override
-	public void paint(Graphics g) {
-		if (msg1.length() > 0) {
-			draw3DRect(g, 20, 50, 250, 30);
-			g.setColor(Color.black);
-			g.drawString(msg1, 30, 70);
-		}
-		if (msg2.length() > 0) {
-			draw3DRect(g, 20, 100, 250, 30);
-			g.setColor(Color.black);
-			g.drawString(msg2, 30, 120);
-		}
-	}
-
-	void draw3DRect(Graphics g, int x, int y, int width, int height) {
-		g.setColor(Color.darkGray);
-		g.drawLine(x, y, x, y + height);
-		g.drawLine(x, y, x + width, y);
-		g.setColor(Color.white);
-		g.drawLine(x + width, y + height, x, y + height);
-		g.drawLine(x + width, y + height, x + width, y);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent event) {
-		msg1 = "";
-		System.out.println("keyPressed CODE1 "+event.getKeyCode());
-
-		int myCode = event.getKeyCode();
-
-		System.out.println("keyPressed CODE2 "+myCode);
-
-		System.out.println("keyPressed CHAR3 "+event.getKeyChar());
-
-		System.out.println("keyPressed CHAR4 "+KeyEvent.getKeyText(event.getKeyCode()));
-
-		System.out.println("keyPressed CHAR5 "+KeyEvent.getKeyText(myCode));
-
-		System.out.println("keyPressed isActionKey "+event.isActionKey());
-		System.out.println("keyPressed isAltDown "+event.isAltDown());
-		System.out.println("keyPressed isAltGraphDown "+event.isAltGraphDown());
-		System.out.println("keyPressed isConsumed "+event.isConsumed());
-		System.out.println("keyPressed isControlDown "+event.isControlDown());
-		System.out.println("keyPressed isMetaDown "+event.isMetaDown());
-		System.out.println("keyPressed isShiftDown "+event.isShiftDown());
-
-		System.out.println("keyPressed paramString "+event.paramString());
-
-		if (event.getKeyChar() == KeyEvent.CHAR_UNDEFINED) {
-			int key = event.getKeyCode();
-			// Funktionstaste abfragen
-			if (key == KeyEvent.VK_F1) {
-				msg1 = "F1";
-			} else if (key == KeyEvent.VK_F2) {
-				msg1 = "F2";
-			} else if (key == KeyEvent.VK_F3) {
-				msg1 = "F3";
-			}
-			// Modifier abfragen
-			if (msg1.length() > 0) {
-				if (event.isAltDown()) {
-					msg1 = "ALT + " + msg1;
-				}
-				if (event.isControlDown()) {
-					msg1 = "STRG + " + msg1;
-				}
-				if (event.isShiftDown()) {
-					msg1 = "UMSCHALT + " + msg1;
-				}
-			}
-		}
-		repaint();
-	}
-
-	@Override
-	public void keyReleased(KeyEvent event) {
-		msg1 = "";
-		repaint();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent event) {
-		char key = event.getKeyChar();
-
-//		System.out.println("keyTyped CODE1 "+event.getKeyCode());
-//
-//		Integer myCode = event.getKeyCode();
-//
-//		System.out.println("keyTyped CODE2 "+myCode);
-//
-//		System.out.println("keyTyped CHAR3 "+event.getKeyChar());
-//
-//		System.out.println("keyTyped CHAR4 "+event.getKeyText(event.getKeyCode()));
-//
-//		System.out.println("keyTyped CHAR5 "+event.getKeyText(myCode));
-
-		if (key == KeyEvent.VK_BACK_SPACE) {
-			if (msg2.length() > 0) {
-				msg2 = msg2.substring(0, msg2.length() - 1);
-			}
-		} else if (key >= KeyEvent.VK_SPACE) {
-			if (msg2.length() < 40) {
-				msg2 += event.getKeyChar();
-			}
-		}
-		repaint();
-	}
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/ReadKeyCodesTest.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/ReadKeyCodesTest.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/ReadKeyCodesTest.java
deleted file mode 100644
index c5dd051..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/ReadKeyCodesTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.rdc;
-
-import java.awt.Color;
-import java.awt.Frame;
-import java.awt.Graphics;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-
-public class ReadKeyCodesTest extends Frame implements KeyListener {
-	private static final long serialVersionUID = 1L;
-	String msg1 = "";
-	String msg2 = "";
-
-	public static void main(String[] args) {
-		new ReadKeyCodesTest();
-	}
-
-	public ReadKeyCodesTest() {
-		super("TestKeyCodes");
-		addKeyListener(this);
-		addWindowListener(new WindowClosingAdapter());
-		setBackground(Color.lightGray);
-		setSize(300, 200);
-		setLocation(200, 100);
-		setVisible(true);
-	}
-
-	@Override
-	public void paint(Graphics g) {
-		if (msg1.length() > 0) {
-			draw3DRect(g, 20, 50, 250, 30);
-			g.setColor(Color.black);
-			g.drawString(msg1, 30, 70);
-		}
-		if (msg2.length() > 0) {
-			draw3DRect(g, 20, 100, 250, 30);
-			g.setColor(Color.black);
-			g.drawString(msg2, 30, 120);
-		}
-	}
-
-	void draw3DRect(Graphics g, int x, int y, int width, int height) {
-		g.setColor(Color.darkGray);
-		g.drawLine(x, y, x, y + height);
-		g.drawLine(x, y, x + width, y);
-		g.setColor(Color.white);
-		g.drawLine(x + width, y + height, x, y + height);
-		g.drawLine(x + width, y + height, x + width, y);
-	}
-
-	@Override
-	public void keyPressed(KeyEvent event) {
-		msg1 = "";
-		System.out.println("keyPressed "+event.getKeyCode());
-		if (event.getKeyChar() == KeyEvent.CHAR_UNDEFINED) {
-			int key = event.getKeyCode();
-			// Funktionstaste abfragen
-			if (key == KeyEvent.VK_F1) {
-				msg1 = "F1";
-			} else if (key == KeyEvent.VK_F2) {
-				msg1 = "F2";
-			} else if (key == KeyEvent.VK_F3) {
-				msg1 = "F3";
-			}
-			// Modifier abfragen
-			if (msg1.length() > 0) {
-				if (event.isAltDown()) {
-					msg1 = "ALT + " + msg1;
-				}
-				if (event.isControlDown()) {
-					msg1 = "STRG + " + msg1;
-				}
-				if (event.isShiftDown()) {
-					msg1 = "UMSCHALT + " + msg1;
-				}
-			}
-		}
-		repaint();
-	}
-
-	@Override
-	public void keyReleased(KeyEvent event) {
-		msg1 = "";
-		repaint();
-	}
-
-	@Override
-	public void keyTyped(KeyEvent event) {
-		char key = event.getKeyChar();
-
-		System.out.println("keyTyped "+event.getKeyCode());
-
-		if (key == KeyEvent.VK_BACK_SPACE) {
-			if (msg2.length() > 0) {
-				msg2 = msg2.substring(0, msg2.length() - 1);
-			}
-		} else if (key >= KeyEvent.VK_SPACE) {
-			if (msg2.length() < 40) {
-				msg2 += event.getKeyChar();
-			}
-		}
-		repaint();
-	}
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestKeyCodesNumber.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestKeyCodesNumber.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestKeyCodesNumber.java
deleted file mode 100644
index 331f1bf..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestKeyCodesNumber.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.rdc;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import java.awt.event.KeyEvent;
-
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-public class TestKeyCodesNumber {
-	private static final Logger log = Red5LoggerFactory.getLogger(TestKeyCodesNumber.class, getWebAppRootKey());
-
-	@Test
-	public void testKeyCodes() {
-		try {
-
-			for (int i = 1; i < 600; i++) {
-
-				String charText = KeyEvent.getKeyText(i);
-
-				log.debug("ERROR " + i + " " + charText);
-
-			}
-
-		} catch (Exception err) {
-			log.error("[testKeyCodes]", err);
-		}
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestReadKeyCodesNumber.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestReadKeyCodesNumber.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestReadKeyCodesNumber.java
deleted file mode 100644
index 46acca5..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rdc/TestReadKeyCodesNumber.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.rdc;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-public class TestReadKeyCodesNumber {
-	private static final Logger log = Red5LoggerFactory.getLogger(TestReadKeyCodesNumber.class, getWebAppRootKey());
-
-	@Test
-	public void testTestKeyCodesNumber() {
-		try {
-
-			this.testKeyCodes();
-
-		} catch (Exception er) {
-			log.debug("ERROR ", er);
-		}
-	}
-
-	@Test
-	public void testKeyCodes() {
-		try {
-
-		} catch (Exception err) {
-			log.error("[testKeyCodes]", err);
-		}
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/LoadTestRtmpClient.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/LoadTestRtmpClient.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/LoadTestRtmpClient.java
deleted file mode 100644
index b6cc1c4..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/LoadTestRtmpClient.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.rtmp;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.red5.client.net.rtmp.ClientExceptionHandler;
-import org.red5.client.net.rtmp.INetStreamEventHandler;
-import org.red5.client.net.rtmp.RTMPClient;
-import org.red5.server.api.service.IPendingServiceCall;
-import org.red5.server.api.service.IPendingServiceCallback;
-import org.red5.server.net.rtmp.event.Notify;
-
-public class LoadTestRtmpClient extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, ClientExceptionHandler {
-	private static class CallObject {
-		Date started;
-		Date ended;
-
-		public CallObject(Date started) {
-			super();
-			this.started = started;
-		}
-
-		public Date getStarted() {
-			return started;
-		}
-
-		public Date getEnded() {
-			return ended;
-		}
-
-		public void setEnded(Date ended) {
-			this.ended = ended;
-		}
-	}
-
-	private int counterCalls = 0; // a call is always 2 steps
-	private Map<Integer, CallObject> calls = new HashMap<>();
-	private boolean isConnected = false;
-	private final int instanceId;
-
-	public LoadTestRtmpClient(int instanceId) {
-		this.instanceId = instanceId;
-	}
-
-	public boolean performCall() {
-
-		// System.err.println("performCall " + isConnected);
-
-		if (!isConnected) {
-			return false;
-		}
-
-		if (counterCalls % 2 == 0) {
-
-			if (counterCalls > 10) {
-
-				return true;
-
-			}
-
-			System.err.println("Rest o do new call " + counterCalls);
-			counterCalls++;
-
-			Map<String, Integer> map = new HashMap<>();
-			map.put("instanceId", instanceId);
-			map.put("count", counterCalls);
-			calls.put(counterCalls, new CallObject(new Date()));
-			invoke("sendMessageToCurrentScope", new Object[] {"syncMessageToCurrentScopeResult", map, true, false }, this);
-
-		} else {
-			System.err.println("Call running " + counterCalls);
-		}
-
-
-
-		return false;
-	}
-
-	public double getAverageTime() {
-		long overallTime = 0L;
-
-		for (Entry<Integer, CallObject> tCallObjectEntry : calls.entrySet()) {
-
-			long deltaTime = tCallObjectEntry.getValue().getEnded().getTime()
-					- tCallObjectEntry.getValue().getStarted().getTime();
-
-			// System.err.println("Key " + tCallObjectEntry.getKey()
-			// + "deltaTime " + deltaTime);
-
-			overallTime += deltaTime;
-
-		}
-
-		double averageTime = Long.valueOf(overallTime).doubleValue()
-				/ Integer.valueOf(calls.size()).doubleValue();
-
-		return averageTime;
-	}
-
-	@Override
-	public void resultReceived(IPendingServiceCall call) {
-		String method = call == null ? null : call.getServiceMethodName();
-		System.err.println("method "+method);
-		if (method == null) {
-			return;
-		}
-		if ("connect".equals(method)) {
-			isConnected = true;
-		}
-
-		if ("loadTestSyncMessage".equals(method)) {
-
-			CallObject tCallObject = calls.get(counterCalls);
-			if (tCallObject == null) {
-
-				for (Entry<Integer, CallObject> tCallObjectEntry : calls.entrySet()) {
-
-					System.err.println("Key " + tCallObjectEntry.getKey()
-							+ "tCallObjectEntry "
-							+ tCallObjectEntry.getValue().getStarted());
-
-				}
-
-				throw new RuntimeException(
-						"tCallObject is null currentCountReturn "
-								+ counterCalls + " list size "
-								+ calls.size());
-			}
-			tCallObject.setEnded(new Date());
-			calls.put(counterCalls, tCallObject);
-
-			System.err.println("Call received " + counterCalls
-					+ " instanceId: " + instanceId);
-
-			counterCalls++;
-		}
-
-	}
-
-
-	@Override
-	public void onStreamEvent(Notify notify) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public int getNumberOfCalls() {
-		return calls.size();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoad.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoad.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoad.java
deleted file mode 100644
index 8acd0fc..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoad.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.rtmp;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-public class SimulateLoad extends Thread {
-	private static final Logger log = Red5LoggerFactory.getLogger(SimulateLoad.class, getWebAppRootKey());
-
-	private LoadTestRtmpClient loadTestRtmpClient;
-	private boolean testRunning = true;
-
-	public double getAverageTime() {
-		return loadTestRtmpClient.getAverageTime();
-	}
-
-	public boolean isTestRunning() {
-		return testRunning;
-	}
-
-	public static void main(String... args) {
-		try {
-			if (args.length != 4) {
-				throw new RuntimeException("4 args needed, host, port, context, instanceId");
-			}
-			for (String arg : args) {
-				System.err.println("arg: " + arg);
-			}
-			SimulateLoad simulateLoad = new SimulateLoad(args[0], Integer
-					.valueOf(args[1]).intValue(), args[2], Integer.valueOf(
-					args[3]).intValue());
-			simulateLoad.start();
-			System.err.println("started ");
-
-		} catch (Exception er) {
-			log.error("Error", er);
-		}
-	}
-
-	public SimulateLoad(String host, int port, String applicationContext,
-			int instanceId) {
-		super();
-
-		loadTestRtmpClient = new LoadTestRtmpClient(instanceId);
-		loadTestRtmpClient.connect(host, port, applicationContext,
-				loadTestRtmpClient);
-	}
-
-	@Override
-	public void run() {
-		try {
-
-			System.err.println("######### start client");
-
-			while (testRunning) {
-				testRunning = !loadTestRtmpClient.performCall();
-				try {
-					Thread.sleep(200);
-				} catch (InterruptedException e) {
-					log.error("Error", e);
-				}
-			}
-
-		} catch (Exception e) {
-			log.error("Error", e);
-		}
-	}
-
-	public int getNumberOfCalls() {
-		return loadTestRtmpClient.getNumberOfCalls();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoadTest.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoadTest.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoadTest.java
deleted file mode 100644
index 680166d..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoadTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.rtmp;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-public class SimulateLoadTest {
-	private static final Logger log = Red5LoggerFactory.getLogger(SimulateLoadTest.class, getWebAppRootKey());
-	private int numberOfClients = 25;
-	private List<SimulateLoad> simulateLoadList = new ArrayList<>();
-
-	private String host = "192.168.1.7";
-	private final int port = 1935;
-	private final String applicationContext = "openmeetings/1";
-
-	public SimulateLoadTest(String host, int numberOfClients) {
-		this.host = host;
-		this.numberOfClients = numberOfClients;
-	}
-
-	public static void main(String... args) {
-		if (args.length != 2) {
-			return;
-		}
-		SimulateLoadTest simulateLoadTest = new SimulateLoadTest(args[0],
-				Integer.valueOf(args[1]).intValue());
-		simulateLoadTest.test();
-	}
-
-
-	@Test
-	public void test() {
-		try {
-			for (int i = 0; i < numberOfClients; i++) {
-				SimulateLoad simulateLoad = new SimulateLoad(host, port,
-						applicationContext, i);
-				simulateLoadList.add(simulateLoad);
-				Thread.sleep(100);
-			}
-
-			log.error("Clients initialized");
-
-			for (SimulateLoad simulateLoad : simulateLoadList) {
-				simulateLoad.start();
-				Thread.sleep(50);
-			}
-
-			log.error("Clients started");
-
-			boolean running = true;
-			while (running) {
-				boolean doRunStill = false;
-				for (SimulateLoad simulateLoad : simulateLoadList) {
-					if (simulateLoad.isTestRunning()) {
-						doRunStill = true;
-						break;
-					}
-				}
-				running = doRunStill;
-				try {
-					Thread.sleep(200);
-				} catch (InterruptedException e) {
-					log.error("Error", e);
-				}
-			}
-
-			double overallTime = 0;
-
-			for (SimulateLoad simulateLoad : simulateLoadList) {
-				overallTime += simulateLoad.getAverageTime();
-				log.error("Number of calls: "
-						+ simulateLoad.getNumberOfCalls() + "overallTime: "
-						+ overallTime + " averageTime"
-						+ simulateLoad.getAverageTime());
-			}
-
-			double deltaAllClients = overallTime
-					/ Integer.valueOf(simulateLoadList.size()).doubleValue();
-
-			log.error("Average time per call: " + deltaAllClients);
-
-		} catch (Exception err) {
-			log.error("Error", err);
-		}
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java
deleted file mode 100644
index baa145b..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.user;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertTrue;
-
-import javax.mail.Message;
-import javax.mail.Transport;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-
-import org.apache.openmeetings.core.mail.MailHandler;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-/**
- *
- * @author swagner
- *
- */
-public class TestMailSending {
-	private static final Logger log = Red5LoggerFactory.getLogger(TestMailSending.class, getWebAppRootKey());
-
-	//Example GMail email server data
-	private String smtpServer = "smtp.gmail.com";
-	private int smtpPort = 587;
-	private String from = "test-app@apache.org";
-	private String mailAuthUser = "test-app@gmail.com";
-	private String mailAuthPass = "test-pass";
-	private boolean mailTls = true;
-
-	/**
-	 * @Test
-	 *
-	 * It does not make a lot of send to test this in every test suite, it is more for manual testing.
-	 * Handy to check your server and the JavaMail setting properties
-	 *
-	 */
-	@Test
-	public void doTestSendEmail() {
-		try {
-			Transport.send(getMimeMessage());
-		} catch (Exception err) {
-			log.error("Error", err);
-		}
-		assertTrue(true);
-	}
-
-	private MimeMessage getMimeMessage() throws Exception {
-		MailHandler h = new MailHandler();
-		h.init(smtpServer, smtpPort, from, mailAuthUser, mailAuthPass, mailTls, true);
-		// Building MimeMessage
-		MimeMessage msg = h.getBasicMimeMessage();
-		msg.setSubject("getSubject()");
-		msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse("test-recipient@gmail.com", false));
-
-		return h.appendBody(msg, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
-	}
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a16a65d4/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java b/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java
deleted file mode 100644
index 4f3efb1..0000000
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.openmeetings.test.userdata;
-
-import org.junit.Test;
-
-public class TestMD5 {
-
-	@Test
-	public void testTestMD5() {
-		// no-op
-	}
-
-}