[Red5devs] [red5 commit] r3087 - in java/server/trunk/src/org/red5/server: service tomcat util

codesite-noreply at google.com codesite-noreply at google.com
Sun Sep 21 17:38:29 PDT 2008


Author: mondain
Date: Sun Sep 21 17:36:52 2008
New Revision: 3087

Modified:
    java/server/trunk/src/org/red5/server/service/Installer.java
    java/server/trunk/src/org/red5/server/tomcat/TomcatLoader.java
    java/server/trunk/src/org/red5/server/tomcat/TomcatVHostLoader.java
    java/server/trunk/src/org/red5/server/util/FileUtil.java

Log:
Fixed installer for Mac when running in bootstrap mode external of Eclipse.

Modified: java/server/trunk/src/org/red5/server/service/Installer.java
==============================================================================
--- java/server/trunk/src/org/red5/server/service/Installer.java	(original)
+++ java/server/trunk/src/org/red5/server/service/Installer.java	Sun Sep 21  
17:36:52 2008
@@ -223,7 +223,6 @@
  					// faster and it also works on macs ;)
  					byte[] buf = method.getResponseBody();
  					fos.write(buf);
-					fos.close();
  					fos.flush();
  					
  					result = true;

Modified: java/server/trunk/src/org/red5/server/tomcat/TomcatLoader.java
==============================================================================
--- java/server/trunk/src/org/red5/server/tomcat/TomcatLoader.java	 
(original)
+++ java/server/trunk/src/org/red5/server/tomcat/TomcatLoader.java	Sun Sep  
21 17:36:52 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);
  		
@@ -483,27 +497,8 @@
  			log.debug("Context did not exist in host");
  			String webappContextDir = FileUtil.formatPath(webappFolder,  
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/trunk/src/org/red5/server/tomcat/TomcatVHostLoader.java
==============================================================================
--- java/server/trunk/src/org/red5/server/tomcat/TomcatVHostLoader.java	 
(original)
+++ java/server/trunk/src/org/red5/server/tomcat/TomcatVHostLoader.java	Sun  
Sep 21 17:36:52 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/util/FileUtil.java
==============================================================================
--- java/server/trunk/src/org/red5/server/util/FileUtil.java	(original)
+++ java/server/trunk/src/org/red5/server/util/FileUtil.java	Sun Sep 21  
17:36:52 2008
@@ -21,7 +21,6 @@


  import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileOutputStream;
@@ -32,11 +31,8 @@
  import java.nio.channels.FileChannel;
  import java.util.Enumeration;
  import java.util.Random;
-import java.util.zip.Adler32;
-import java.util.zip.CheckedInputStream;
  import java.util.zip.ZipEntry;
  import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;

  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
@@ -341,35 +337,35 @@
  		File tmpDir = new File(destinationDir);

  		// make the war directory
-		System.out.println("making directory: " + tmpDir.mkdirs());
+		log.debug("Making directory: {}", tmpDir.mkdirs());
  		
  		try {
  			ZipFile zf = new ZipFile(compressedFileName);
  			Enumeration e = zf.entries();
  			while(e.hasMoreElements()) {
  				ZipEntry ze = (ZipEntry) e.nextElement();
-				System.out.println("Unzipping " + ze.getName());
+				log.debug("Unzipping {}", ze.getName());
  				if(ze.isDirectory()) {
-					System.out.println("is a directory");
+					log.debug("is a directory");
  					File dir = new File(tmpDir + "/" + ze.getName());
  					Boolean tmp = dir.mkdir();
-					System.out.println(tmp);
+					log.debug("{}", tmp);
  					continue;
  				}
  				FileOutputStream fout = new FileOutputStream(tmpDir + "/" +  
ze.getName());
-				java.io.InputStream in = zf.getInputStream(ze);
+				InputStream in = zf.getInputStream(ze);
  				copy(in, fout);
  				in.close();
  				fout.close();
  			}
+			e = null;
  		} catch (IOException e) {
-			System.err.println(e);
+			log.debug("Error unzipping", e);
  			e.printStackTrace();
  		}
  	}
  	
  	public static void copy(InputStream in, OutputStream out) throws  
IOException {
-		
  		synchronized(in) {
  			synchronized(out) {
  				byte[] buffer = new byte[256];



More information about the Red5devs mailing list