You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gi...@apache.org on 2001/05/14 10:38:30 UTC
cvs commit: xml-cocoon2/src/org/apache/cocoon Main.java
giacomo 01/05/14 01:38:30
Modified: src/org/apache/cocoon Main.java
Log:
Forgot to commit it last time
Revision Changes Path
1.2 +46 -4 xml-cocoon2/src/org/apache/cocoon/Main.java
Index: Main.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/Main.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Main.java 2001/05/09 20:49:28 1.1
+++ Main.java 2001/05/14 08:38:25 1.2
@@ -17,6 +17,7 @@
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
@@ -26,6 +27,7 @@
import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.environment.commandline.FileSavingEnvironment;
import org.apache.cocoon.environment.commandline.LinkSamplingEnvironment;
+import org.apache.cocoon.environment.commandline.CommandlineContext;
import org.apache.cocoon.util.IOUtils;
import org.apache.cocoon.util.JavaArchiveFilter;
import org.apache.cocoon.util.MIMEUtils;
@@ -45,7 +47,7 @@
* Command line entry point.
*
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
- * @version CVS $Revision: 1.1 $ $Date: 2001/05/09 20:49:28 $
+ * @version CVS $Revision: 1.2 $ $Date: 2001/05/14 08:38:25 $
*/
public class Main {
@@ -206,11 +208,13 @@
File context = getDir(contextDir, "context");
File conf = getConfigurationFile(context);
DefaultContext appContext = new DefaultContext();
- //appContext.put(Constants.CONTEXT_SERVLET_CONTEXT, contextDir);
- appContext.put(Constants.CONTEXT_ROOT_PATH, contextDir);
appContext.put(Constants.CONTEXT_CLASS_LOADER, Main.class.getClassLoader());
- appContext.put(Constants.CONTEXT_CONFIG_URL, conf.toURL());
+ appContext.put(Constants.CONTEXT_ENVIRONMENT_CONTEXT, new CommandlineContext(contextDir));
+ appContext.put(Constants.CONTEXT_CLASSPATH, getClassPath(contextDir));
appContext.put(Constants.CONTEXT_WORK_DIR, work);
+ appContext.put(Constants.CONTEXT_UPLOAD_DIR, contextDir + "image-dir");
+ appContext.put(Constants.CONTEXT_CONFIG_URL, conf.toURL());
+ appContext.put(Constants.CONTEXT_ROOT_PATH, contextDir);
Cocoon c = new Cocoon();
c.setLogger(log);
c.contextualize(appContext);
@@ -467,5 +471,43 @@
cocoon.process(env);
return env.getContentType();
}
+
+ /**
+ * This builds the important ClassPath used by this class. It
+ * does so in a neutral way.
+ * It iterates in alphabetical order through every file in the
+ * lib directory and adds it to the classpath.
+ *
+ * Also, we add the files to the ClassLoader for the Cocoon system.
+ * In order to protect ourselves from skitzofrantic classloaders,
+ * we need to work with a known one.
+ *
+ * @param context The context path
+ */
+ protected static String getClassPath(final String context) {
+ StringBuffer buildClassPath = new StringBuffer();
+ String classDir = context + "/WEB-INF/classes";
+ File root = new File(context + "/WEB-INF/lib");
+
+ buildClassPath.append(classDir);
+
+ if (root.isDirectory()) {
+ File[] libraries = root.listFiles();
+ Arrays.sort(libraries);
+ for (int i = 0; i < libraries.length; i++) {
+ buildClassPath.append(File.pathSeparatorChar)
+ .append(IOUtils.getFullFilename(libraries[i]));
+ }
+ }
+
+ buildClassPath.append(File.pathSeparatorChar)
+ .append(System.getProperty("java.class.path"));
+
+// buildClassPath.append(File.pathSeparatorChar)
+// .append(getExtraClassPath(context));
+
+ log.debug("Context classpath: " + buildClassPath.toString());
+ return buildClassPath.toString();
+ }
}
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org