[Red5devs] [red5 commit] r3101 - doc/trunk java/server/branches/paulg_mp4/src/org/red5/server/api java/server/branches/pau...
codesite-noreply at google.com
codesite-noreply at google.com
Wed Sep 24 22:52:17 PDT 2008
Author: mondain
Date: Wed Sep 24 22:51:37 2008
New Revision: 3101
Modified:
doc/trunk/changelog.txt
java/server/branches/paulg_mp4/src/org/red5/server/api/Red5.java
java/server/branches/paulg_mp4/src/org/red5/server/service/Installer.java
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatLoader.java
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatVHostLoader.java
java/server/trunk/src/org/red5/server/api/Red5.java
java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java
java/server/trunk/src/org/red5/server/net/rtmp/codec/RTMPProtocolDecoder.java
java/server/trunk/src/org/red5/server/net/rtmp/event/Ping.java
Log:
Updated version numbers and merged some updates from trunk to mp4 branch
Modified: doc/trunk/changelog.txt
==============================================================================
--- doc/trunk/changelog.txt (original)
+++ doc/trunk/changelog.txt Wed Sep 24 22:51:37 2008
@@ -4,6 +4,15 @@
This file contains informations about the changes between the different
versions of Red5.
+Red5 0.9.0 (unreleased)
+------------------------
+New Features:
+
+Bugfixes:
+
+Other:
+
+
Red5 0.8.1 (unreleased)
------------------------
New Features:
@@ -51,6 +60,11 @@
Other:
- Split demos and flash sources into their own top level directories
- Added application snapshot repository
+
+
+Red5 0.7.1
+------------------------
+Version renamed 0.8.0 for release
Red5 0.7.0 (2008-02-23)
Modified: java/server/branches/paulg_mp4/src/org/red5/server/api/Red5.java
==============================================================================
--- java/server/branches/paulg_mp4/src/org/red5/server/api/Red5.java
(original)
+++ java/server/branches/paulg_mp4/src/org/red5/server/api/Red5.java Wed
Sep 24 22:51:37 2008
@@ -59,12 +59,12 @@
/**
* Current server version with revision
*/
- public static final String VERSION = "Red5 Server 0.7.2-dev $Revision:
3020 $";
+ public static final String VERSION = "Red5 Server 0.9.0-dev $Revision:
3020 $";
/**
* Current server version for fmsVer requests
*/
- public static final String FMS_VERSION = "RED5/0,7,2,0";
+ public static final String FMS_VERSION = "RED5/0,9,0,0";
/**
* Server start time
Modified:
java/server/branches/paulg_mp4/src/org/red5/server/service/Installer.java
==============================================================================
---
java/server/branches/paulg_mp4/src/org/red5/server/service/Installer.java
(original)
+++
java/server/branches/paulg_mp4/src/org/red5/server/service/Installer.java
Wed Sep 24 22:51:37 2008
@@ -57,6 +57,8 @@
private String applicationRepositoryUrl;
+ private static final String userAgent = "Mozilla/4.0 (compatible; Red5
Server)";
+
{
log.info("Installer service created");
}
@@ -103,7 +105,7 @@
client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
//get the params for the client
HttpClientParams params = client.getParams();
- params.setParameter(HttpMethodParams.USER_AGENT, "Mozilla/4.0
(compatible; Red5 Server)");
+ params.setParameter(HttpMethodParams.USER_AGENT, userAgent);
//try the wav version first
HttpMethod method = new GetMethod(applicationRepositoryUrl
+ "registry.xml");
//follow any 302's although there shouldnt be any
@@ -198,7 +200,7 @@
client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
//get the params for the client
HttpClientParams params = client.getParams();
- params.setParameter(HttpMethodParams.USER_AGENT, "Mozilla/4.0
(compatible; Red5 Server)");
+ params.setParameter(HttpMethodParams.USER_AGENT, userAgent);
params.setParameter(HttpMethodParams.STRICT_TRANSFER_ENCODING,
Boolean.TRUE);
//try the wav version first
@@ -215,12 +217,11 @@
//create output file
fos = new FileOutputStream(srcDir + '/' + applicationWarName);
log.debug("Writing response to {}/{}", srcDir, applicationWarName);
- InputStream is = method.getResponseBodyAsStream();
- byte[] buf = new byte[512];
- while (is.read(buf) != -1) {
+
+ // have to receive the response as a byte array. This has the
advantage of writing to the filesystem
+ // faster and it also works on macs ;)
+ byte[] buf = method.getResponseBody();
fos.write(buf);
- }
- is.close();
fos.flush();
//
result = true;
Modified:
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatLoader.java
==============================================================================
---
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatLoader.java
(original)
+++
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatLoader.java
Wed Sep 24 22:51:37 2008
@@ -108,6 +108,9 @@
System.setProperty("tomcat.home", serverRoot);
System.setProperty("catalina.home", serverRoot);
System.setProperty("catalina.base", serverRoot);
+ //
+ System.setProperty("catalina.shared.loader", serverRoot + "/lib/*.jar");
+ System.setProperty("shared.loader", serverRoot + "/lib/*.jar");
// create one embedded (server) and use it everywhere
embedded = new Embedded();
}
@@ -157,7 +160,34 @@
public Context addContext(String path, String docBase) {
log.debug("Add context - path: {} docbase: {}", path, docBase);
org.apache.catalina.Context c = embedded.createContext(path, docBase);
- log.debug("Context name: {}", c.getName());
+ log.debug("Context name: {} docbase: {} encoded: {}", new
Object[]{c.getName(), c.getDocBase(), c.getEncodedPath()});
+ //see if we can load the webapp cl
+ try {
+ Class.forName("org.red5.server.tomcat.WebappClassLoader").newInstance();
+ } catch (Exception e) {
+ log.error("{}", e);
+ e.printStackTrace();
+ }
+ if (c != null) {
+ Object ldr = c.getLoader();
+ log.debug("Context loader: {}", ldr);
+ if (ldr != null) {
+ if (ldr instanceof WebappLoader) {
+ log.debug("Replacing context loader");
+ ((WebappLoader)
ldr).setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
+ } else {
+ log.debug("Context loader was instance of {}",
ldr.getClass().getName());
+ }
+ } else {
+ log.debug("Context loader was null");
+ ClassLoader classloader =
Thread.currentThread().getContextClassLoader();
+ log.debug("Thread context class loader: {}", classloader);
+ WebappLoader wldr = new WebappLoader(classloader);
+ wldr.setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
+ c.setLoader(wldr);
+ }
+ }
+ log.debug("Context loader (check): {}", c.getLoader());
host.addChild(c);
LoaderBase.setRed5ApplicationContext(path, new
TomcatApplicationContext(c));
return c;
@@ -258,7 +288,7 @@
webappFolder = System.getProperty("red5.root") + "/webapps";
}
System.setProperty("red5.webapp.root", webappFolder);
- log.info("Application root: " + webappFolder);
+ log.info("Application root: {}", webappFolder);
// scan for additional webapp contexts
@@ -281,22 +311,6 @@
log.debug("Adding context from directory scan: {}", dirName);
ctx = addContext(dirName, webappContextDir);
}
- if (ctx != null) {
- Object ldr = ctx.getLoader();
- if (ldr != null) {
- if (ldr instanceof WebappLoader) {
- log.debug("Replacing context class loader");
- ((WebappLoader)
ldr).setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- } else {
- log.debug("Context class loader was instance of {}",
ldr.getClass().getName());
- }
- } else {
- log.debug("Context class loader was null");
- WebappLoader wldr = new WebappLoader(classloader);
- wldr.setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- ctx.setLoader(wldr);
- }
- }
webappContextDir = null;
}
}
@@ -468,8 +482,8 @@
* @return
*/
public boolean startWebApplication(String applicationName) {
- boolean result = false;
log.info("Starting Tomcat - Web application");
+ boolean result = false;
log.debug("Webapp root: {}", webappFolder);
@@ -478,32 +492,25 @@
Container cont = null;
+ if (webappFolder == null) {
+ // Use default webapps directory
+ webappFolder = System.getProperty("red5.root") + "/webapps";
+ }
+ System.setProperty("red5.webapp.root", webappFolder);
+ log.info("Application root: {}", webappFolder);
+
+ // scan for additional webapp contexts
+
+ // Root applications directory
+ File appDirBase = new File(webappFolder);
+
//check if the context already exists for the host
if ((cont = host.findChild(contextName)) == null) {
log.debug("Context did not exist in host");
- String webappContextDir = FileUtil.formatPath(webappFolder,
applicationName);
+ String webappContextDir =
FileUtil.formatPath(appDirBase.getAbsolutePath(), applicationName);
log.debug("Webapp context directory (full path): {}", webappContextDir);
- //prepend slash
- Context ctx = addContext(contextName, webappContextDir);
- if (ctx != null) {
- Object ldr = ctx.getLoader();
- if (ldr != null) {
- if (ldr instanceof WebappLoader) {
- log.debug("Replacing context loader");
- ((WebappLoader)
ldr).setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- } else {
- log.debug("Context loader was instance of {}",
ldr.getClass().getName());
- }
- } else {
- log.debug("Context loader was null");
- ClassLoader classloader =
Thread.currentThread().getContextClassLoader();
- WebappLoader wldr = new WebappLoader(classloader);
- wldr.setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- ctx.setLoader(wldr);
- }
- }
//set the newly created context as the current container
- cont = ctx;
+ cont = addContext(contextName, webappContextDir);
} else {
log.debug("Context already exists in host");
}
Modified:
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatVHostLoader.java
==============================================================================
---
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatVHostLoader.java
(original)
+++
java/server/branches/paulg_mp4/src/org/red5/server/tomcat/TomcatVHostLoader.java
Wed Sep 24 22:51:37 2008
@@ -132,22 +132,6 @@
log.debug("Adding context from directory scan: {}", dirName);
ctx = addContext(dirName, webappContextDir);
}
- if (ctx != null) {
- Object ldr = ctx.getLoader();
- if (ldr != null) {
- if (ldr instanceof WebappLoader) {
- log.debug("Replacing context loader");
- ((WebappLoader)
ldr).setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- } else {
- log.debug("Context loader was instance of {}",
ldr.getClass().getName());
- }
- } else {
- log.debug("Context loader was null");
- WebappLoader wldr = new WebappLoader(classloader);
- wldr.setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- ctx.setLoader(wldr);
- }
- }
webappContextDir = null;
}
}
@@ -296,23 +280,6 @@
String webappContextDir = FileUtil.formatPath(webappRoot,
applicationName);
//prepend slash
Context ctx = addContext(contextName, webappContextDir);
- if (ctx != null) {
- Object ldr = ctx.getLoader();
- if (ldr != null) {
- if (ldr instanceof WebappLoader) {
- log.debug("Replacing context loader");
- ((WebappLoader)
ldr).setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- } else {
- log.debug("Context loader was instance of {}",
ldr.getClass().getName());
- }
- } else {
- log.debug("Context loader was null");
- ClassLoader classloader =
Thread.currentThread().getContextClassLoader();
- WebappLoader wldr = new WebappLoader(classloader);
- wldr.setLoaderClass("org.red5.server.tomcat.WebappClassLoader");
- ctx.setLoader(wldr);
- }
- }
//set the newly created context as the current container
cont = ctx;
} else {
Modified: java/server/trunk/src/org/red5/server/api/Red5.java
==============================================================================
--- java/server/trunk/src/org/red5/server/api/Red5.java (original)
+++ java/server/trunk/src/org/red5/server/api/Red5.java Wed Sep 24 22:51:37
2008
@@ -59,7 +59,12 @@
/**
* Current server version with revision
*/
- public static final String VERSION = "Red5 Server 0.7.1-dev
$Revision$";
+ public static final String VERSION = "Red5 Server 0.8.0-dev
$Revision$";
+
+ /**
+ * Current server version for fmsVer requests
+ */
+ public static final String FMS_VERSION = "RED5/0,8,0,0";
/**
* Server start time
@@ -152,6 +157,15 @@
*/
public static String getVersion() {
return VERSION;
+ }
+
+ /**
+ * Returns the current version for fmsVer requests
+ *
+ * @return String fms version
+ */
+ public static String getFMSVersion() {
+ return FMS_VERSION;
}
/**
Modified: java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java
==============================================================================
--- java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java
(original)
+++ java/server/trunk/src/org/red5/server/net/rtmp/RTMPHandler.java Wed Sep
24 22:51:37 2008
@@ -32,6 +32,7 @@
import org.red5.server.api.IScope;
import org.red5.server.api.IScopeHandler;
import org.red5.server.api.IServer;
+import org.red5.server.api.Red5;
import org.red5.server.api.ScopeUtils;
import org.red5.server.api.IConnection.Encoding;
import org.red5.server.api.service.IPendingServiceCall;
@@ -306,7 +307,7 @@
IPendingServiceCall pc = (IPendingServiceCall) call;
//send fmsver and capabilities
StatusObject result = getStatus(NC_CONNECT_SUCCESS);
- result.setAdditional("fmsVer", "RED5/0,7,1,0");
+ result.setAdditional("fmsVer", Red5.getFMSVersion());
result.setAdditional("capabilities", Integer.valueOf(31));
pc.setResult(result);
}
Modified:
java/server/trunk/src/org/red5/server/net/rtmp/codec/RTMPProtocolDecoder.java
==============================================================================
---
java/server/trunk/src/org/red5/server/net/rtmp/codec/RTMPProtocolDecoder.java
(original)
+++
java/server/trunk/src/org/red5/server/net/rtmp/codec/RTMPProtocolDecoder.java
Wed Sep 24 22:51:37 2008
@@ -530,10 +530,11 @@
message = decodeInvoke(in, rtmp);
break;
case TYPE_NOTIFY:
- if (header.getStreamId() == 0)
+ if (header.getStreamId() == 0) {
message = decodeNotify(in, header, rtmp);
- else
+ } else {
message = decodeStreamMetadata(in);
+ }
break;
case TYPE_PING:
message = decodePing(in);
@@ -770,11 +771,13 @@
private boolean isStreamCommand(String action) {
return (ACTION_CREATE_STREAM.equals(action)
|| ACTION_DELETE_STREAM.equals(action)
- || ACTION_PUBLISH.equals(action) || ACTION_PLAY.equals(action)
- || ACTION_SEEK.equals(action) || ACTION_PAUSE.equals(action)
+ || ACTION_PUBLISH.equals(action)
+ || ACTION_PLAY.equals(action)
+ || ACTION_SEEK.equals(action)
+ || ACTION_PAUSE.equals(action)
|| ACTION_CLOSE_STREAM.equals(action)
- || ACTION_RECEIVE_VIDEO.equals(action) || ACTION_RECEIVE_AUDIO
- .equals(action));
+ || ACTION_RECEIVE_VIDEO.equals(action)
+ || ACTION_RECEIVE_AUDIO.equals(action));
}
/**
Modified: java/server/trunk/src/org/red5/server/net/rtmp/event/Ping.java
==============================================================================
--- java/server/trunk/src/org/red5/server/net/rtmp/event/Ping.java
(original)
+++ java/server/trunk/src/org/red5/server/net/rtmp/event/Ping.java Wed Sep
24 22:51:37 2008
@@ -108,6 +108,14 @@
this.value3 = value3;
this.value4 = value4;
}
+
+ public Ping(Ping in) {
+ super(Type.SYSTEM);
+ this.value1 = in.getValue1();
+ this.value2 = in.getValue2();
+ this.value3 = in.getValue3();
+ this.value4 = in.getValue4();
+ }
/** {@inheritDoc} */
@Override
More information about the Red5devs
mailing list