User: jules_gosnell
Date: 02/02/20 18:03:57
Modified: jetty/src/main/org/jboss/jetty
JBossWebApplicationContext.java Jetty.java
JettyService.java
Log:
a few more comments in config files
addition of an FAQ - needs content !
publish JAAS support via JMX interface
Revision Changes Path
1.27 +15 -36
contrib/jetty/src/main/org/jboss/jetty/JBossWebApplicationContext.java
Index: JBossWebApplicationContext.java
===================================================================
RCS file:
/cvsroot/jboss/contrib/jetty/src/main/org/jboss/jetty/JBossWebApplicationContext.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- JBossWebApplicationContext.java 20 Feb 2002 05:37:23 -0000 1.26
+++ JBossWebApplicationContext.java 21 Feb 2002 02:03:57 -0000 1.27
@@ -5,7 +5,7 @@
* See terms of license at gnu.org.
*/
-// $Id: JBossWebApplicationContext.java,v 1.26 2002/02/20 05:37:23 janb Exp $
+// $Id: JBossWebApplicationContext.java,v 1.27 2002/02/21 02:03:57 jules_gosnell
Exp $
// A Jetty HttpServer with the interface expected by JBoss'
// J2EEDeployer...
@@ -40,13 +40,14 @@
extends WebApplicationContext
{
Logger _log;
+ Jetty _jetty;
WebDescriptorParser _descriptorParser;
WebApplication _webApp;
DocumentBuilder _parser;
String _subjAttrName="j_subject";
public
- JBossWebApplicationContext(HttpServer httpServer,
+ JBossWebApplicationContext(Jetty jetty,
String contextPathSpec,
WebDescriptorParser descriptorParser,
WebApplication webApp,
@@ -58,10 +59,11 @@
String subjAttrName)
throws java.io.IOException
{
-
- super(httpServer, contextPathSpec, warUrl);
+
+ super(jetty, contextPathSpec, warUrl);
_log = Logger.getLogger(getClass().getName()+"#" +
contextPathSpec);
+ _jetty = jetty;
_descriptorParser = descriptorParser;
_webApp = webApp;
_parser = parser;
@@ -164,44 +166,21 @@
}
String _separator=System.getProperty("path.separator");
- protected String
- URLArrayToClassPath(URL[] urls, String classpath)
- {
- for (int i=urls.length-1; urls!=null && i>-1; i--)
- {
- URL url=urls[i];
- if (url.getProtocol().equals("file"))
- {
- String path=url.getPath();
- // brute force - but should strip out duplicates
- if (classpath.indexOf(path)==-1)
- classpath+=(classpath.length()==0?"":_separator)+path;
- }
- else
- _log.warn("non-file URL encountered in ClassPath URLs");
- }
-
- return classpath;
- }
public String
getFileClassPath()
{
+ String[] entries=_jetty.getCompileClasspath(getClassLoader());
+
+ // this should probably :
+ // 1. be cached
+ // 2. use a StringBuffer
String classpath="";
- for (ClassLoader cl=getClassLoader();
- cl.getParent()!=null;
- cl=cl.getParent())
- {
- if (cl instanceof URLClassLoader)
- classpath=URLArrayToClassPath(((URLClassLoader)cl).getURLs(), classpath);
- else if (cl instanceof MBeanClassLoader)
- classpath=URLArrayToClassPath(((MBeanClassLoader)cl).getURLs(), classpath);
- else
- _log.warn("unknown ClassLoader type ("+cl.getClass().getName()+") -
classpath may be incomplete");
- }
+ for (int i=0; i<entries.length; i++)
+
classpath+=(classpath.length()==0?"":_separator)+entries[i].substring("file:".length());
- if (_log.isDebugEnabled())
- _log.debug("JSP classpath: "+classpath);
+ // if (_log.isDebugEnabled())
+ _log.info("JSP classpath: "+classpath);
return classpath;
}
1.40 +159 -149 contrib/jetty/src/main/org/jboss/jetty/Jetty.java
Index: Jetty.java
===================================================================
RCS file: /cvsroot/jboss/contrib/jetty/src/main/org/jboss/jetty/Jetty.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- Jetty.java 20 Feb 2002 05:37:23 -0000 1.39
+++ Jetty.java 21 Feb 2002 02:03:57 -0000 1.40
@@ -5,7 +5,7 @@
* See terms of license at gnu.org.
*/
-// $Id: Jetty.java,v 1.39 2002/02/20 05:37:23 janb Exp $
+// $Id: Jetty.java,v 1.40 2002/02/21 02:03:57 jules_gosnell Exp $
// A Jetty HttpServer with the interface expected by JBoss'
// J2EEDeployer...
@@ -15,21 +15,18 @@
package org.jboss.jetty;
//------------------------------------------------------------------------------
+
import java.io.ByteArrayOutputStream;
import java.net.URL;
import java.util.Hashtable;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.w3c.dom.Element;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
-
-
import org.jboss.deployment.DeploymentException;
import org.jboss.jetty.xml.JettyResolver;
import org.jboss.logging.Logger;
@@ -38,6 +35,8 @@
import org.mortbay.jetty.servlet.WebApplicationContext;
import org.mortbay.util.MultiException;
import org.mortbay.xml.XmlConfiguration;
+import org.w3c.dom.Element;
+
//------------------------------------------------------------------------------
/**
@@ -45,7 +44,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Julian Gosnell</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Andreas Schaefer</a>.
- * @version $Revision: 1.39 $
+ * @version $Revision: 1.40 $
*
* <p><b>Revisions:</b>
*
@@ -61,20 +60,24 @@
public class Jetty
extends org.mortbay.jetty.Server
{
- static DocumentBuilderFactory _factory =DocumentBuilderFactory.newInstance();
+ static DocumentBuilderFactory _factory = DocumentBuilderFactory.newInstance();
+
DocumentBuilder _parser;
Logger _log = Logger.getLogger(Jetty.class);
+ JettyService _service;
+
+ // the XML snippet
+ String _xmlConfigString = null;
+
+ // the XML snippet as a DOM element
+ Element _configElement = null;
- // the XML snippet
- String _xmlConfigString = null;
-
- // the XML snippet as a DOM element
- Element _configElement = null;
-
- Jetty()
+ Jetty(JettyService service)
{
super();
+ _service=service;
+
// resolver should be populated from a configuration file.
JettyResolver resolver = new JettyResolver();
@@ -84,12 +87,12 @@
URL stdWeb23=findResourceInJar("javax/servlet/resources/web-app_2_3.dtd");
resolver.put("-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN",
stdWeb23);
- URL jbossWeb22=findResourceInJar("org/jboss/metadata/jboss-web.dtd");
- resolver.put("-//jBoss//DTD Web Application 2.2//EN", jbossWeb22);
- resolver.put("-//JBoss//DTD Web Application 2.2//EN", jbossWeb22);
+ URL jbossWeb2=findResourceInJar("org/jboss/metadata/jboss-web.dtd");
+ resolver.put("-//jBoss//DTD Web Application 2.2//EN", jbossWeb2);
+ resolver.put("-//JBoss//DTD Web Application 2.2//EN", jbossWeb2);
- URL jbossWeb23=findResourceInJar("org/jboss/metadata/jboss-web_3_0.dtd");
- resolver.put("-//JBoss//DTD Web Application 2.3//EN", jbossWeb23);
+ URL jbossWeb3=findResourceInJar("org/jboss/metadata/jboss-web_3_0.dtd");
+ resolver.put("-//JBoss//DTD Web Application 2.3//EN", jbossWeb3);
try
{
@@ -133,35 +136,35 @@
String _webDefault;
- /** If a webdefault.xml file has been specified in
- * jboss-service.xml then we try and use that.
- *
- * If we cannot find it, then we will use the one
- * shipped as standard with Jetty and issue a warning.
- *
- * If the jboss-service.xml file does not specify a
- * custom one, then we again default to the standard one.
- * @param webDefault
- */
- public synchronized void
+ /** If a webdefault.xml file has been specified in
+ * jboss-service.xml then we try and use that.
+ *
+ * If we cannot find it, then we will use the one
+ * shipped as standard with Jetty and issue a warning.
+ *
+ * If the jboss-service.xml file does not specify a
+ * custom one, then we again default to the standard one.
+ * @param webDefault
+ */
+ public synchronized void
setWebDefault(String webDefault)
+ {
+ if (webDefault != null)
{
- if (webDefault != null)
- {
- URL webDefaultURL = findResourceInJar(webDefault);
- if (webDefaultURL != null)
- _webDefault=fixURL(webDefaultURL.toString());
- else
- _webDefault = null;
- _log.warn ("Cannot find resource for "+webDefault+": using
default");
- }
- else
- _webDefault = null;
-
- if (_log.isDebugEnabled())
- _log.debug ("webdefault specification is: "+_webDefault);
-
-
+ URL webDefaultURL = findResourceInJar(webDefault);
+ if (webDefaultURL != null)
+ _webDefault=fixURL(webDefaultURL.toString());
+ else
+ _webDefault = null;
+ _log.warn ("Cannot find resource for "+webDefault+": using default");
+ }
+ else
+ _webDefault = null;
+
+ if (_log.isDebugEnabled())
+ _log.debug ("webdefault specification is: "+_webDefault);
+
+
}
public synchronized String
@@ -244,95 +247,95 @@
-
- //----------------------------------------
- // configuration property
- //----------------------------------------
-
- public Element getConfigurationElement ()
- {
- return _configElement;
-
- }
-
- /**
- * @param configElement XML fragment from jboss-service.xml
- */
- public void setConfigurationElement (Element configElement)
- {
-
- // convert to an xml string to pass into Jetty's normal
- // configuration mechanism
- _configElement = configElement;
-
- try
- {
- DOMSource source = new DOMSource(configElement);
-
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
-
- StreamResult result = new StreamResult (stream);
-
- TransformerFactory factory = TransformerFactory.newInstance();
- Transformer transformer = factory.newTransformer();
- transformer.transform (source, result);
-
- _xmlConfigString = stream.toString();
-
- // get rid of the first line, as this will be prepended by
- // the XmlConfiguration
- int index = _xmlConfigString.indexOf("?>");
- if ( index >= 0)
- {
- index += 2;
-
- while ((_xmlConfigString.charAt(index) == '\n')
- ||
- (_xmlConfigString.charAt(index) == '\r'))
- index++;
- }
-
- _xmlConfigString = _xmlConfigString.substring(index);
-
- _log.debug ("Passing xml config to jetty:\n"+_xmlConfigString);
-
- setXMLConfiguration (_xmlConfigString);
-
- }
- catch (TransformerConfigurationException tce)
- {
- _log.error ("Can't transform config Element -> xml:", tce);
- }
- catch (TransformerException te)
- {
- _log.error ("Can't transform config Element -> xml:", te);
- }
- catch (Exception e)
- {
- _log.error("Unexpected exception converting configuration Element ->
xml", e);
- }
- }
-
- /* Actually perform the configuration
- * @param xmlString
- */
- private void setXMLConfiguration (String xmlString)
- {
-
- try
- {
- XmlConfiguration xmlConfigurator = new XmlConfiguration (xmlString);
- xmlConfigurator.configure(this);
- }
- catch (Exception e)
- {
- _log.error("problem configuring Jetty:", e);
- }
- }
-
-
-
-
+
+ //----------------------------------------
+ // configuration property
+ //----------------------------------------
+
+ public Element getConfigurationElement ()
+ {
+ return _configElement;
+
+ }
+
+ /**
+ * @param configElement XML fragment from jboss-service.xml
+ */
+ public void setConfigurationElement (Element configElement)
+ {
+
+ // convert to an xml string to pass into Jetty's normal
+ // configuration mechanism
+ _configElement = configElement;
+
+ try
+ {
+ DOMSource source = new DOMSource(configElement);
+
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+
+ StreamResult result = new StreamResult (stream);
+
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = factory.newTransformer();
+ transformer.transform (source, result);
+
+ _xmlConfigString = stream.toString();
+
+ // get rid of the first line, as this will be prepended by
+ // the XmlConfiguration
+ int index = _xmlConfigString.indexOf("?>");
+ if ( index >= 0)
+ {
+ index += 2;
+
+ while ((_xmlConfigString.charAt(index) == '\n')
+ ||
+ (_xmlConfigString.charAt(index) == '\r'))
+ index++;
+ }
+
+ _xmlConfigString = _xmlConfigString.substring(index);
+
+ _log.debug ("Passing xml config to jetty:\n"+_xmlConfigString);
+
+ setXMLConfiguration (_xmlConfigString);
+
+ }
+ catch (TransformerConfigurationException tce)
+ {
+ _log.error ("Can't transform config Element -> xml:", tce);
+ }
+ catch (TransformerException te)
+ {
+ _log.error ("Can't transform config Element -> xml:", te);
+ }
+ catch (Exception e)
+ {
+ _log.error("Unexpected exception converting configuration Element -> xml", e);
+ }
+ }
+
+ /* Actually perform the configuration
+ * @param xmlString
+ */
+ private void setXMLConfiguration (String xmlString)
+ {
+
+ try
+ {
+ XmlConfiguration xmlConfigurator = new XmlConfiguration (xmlString);
+ xmlConfigurator.configure(this);
+ }
+ catch (Exception e)
+ {
+ _log.error("problem configuring Jetty:", e);
+ }
+ }
+
+
+
+
//----------------------------------------------------------------------------
// 'deploy' interface
@@ -344,6 +347,7 @@
deploy(String contextPath, String warUrl, WebDescriptorParser descriptorParser)
throws DeploymentException
{
+ _log.info("DEPLOYING contextPath:"+contextPath+" warUrl:"+warUrl);
WebApplication wa=new WebApplication();
try
@@ -359,25 +363,25 @@
// deploy the WebApp
WebApplicationContext app=
- new JBossWebApplicationContext(this, contextPath,
- descriptorParser, wa, _parser,
- fixedWarUrl,
- getHttpSessionStorageStrategy(),
- getHttpSessionSnapshotFrequency(),
- getHttpSessionSnapshotNotificationPolicy(),
- getSubjectAttributeName());
+ new JBossWebApplicationContext(this, contextPath,
+ descriptorParser, wa, _parser,
+ fixedWarUrl,
+ getHttpSessionStorageStrategy(),
+ getHttpSessionSnapshotFrequency(),
+ getHttpSessionSnapshotNotificationPolicy(),
+ getSubjectAttributeName());
+
-
// configure whether the context is to flatten the classes in
- // the WAR or not
+ // the WAR or not
app.setExtractWAR (getUnpackWars());
// if a different webdefaults.xml file has been provided, use it
if (getWebDefault() != null)
- app.setDefaultsDescriptor (getWebDefault());
-
-
+ app.setDefaultsDescriptor (getWebDefault());
+
+
String virtualHost=null;
addContext(virtualHost, app);
@@ -484,5 +488,11 @@
// the URL but here we just ignore it
return url;
}
+ }
+
+ public String[]
+ getCompileClasspath(ClassLoader cl)
+ {
+ return _service.getCompileClasspath(cl);
}
}
1.51 +22 -28 contrib/jetty/src/main/org/jboss/jetty/JettyService.java
Index: JettyService.java
===================================================================
RCS file: /cvsroot/jboss/contrib/jetty/src/main/org/jboss/jetty/JettyService.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- JettyService.java 20 Feb 2002 05:37:23 -0000 1.50
+++ JettyService.java 21 Feb 2002 02:03:57 -0000 1.51
@@ -5,7 +5,7 @@
* See terms of license at gnu.org.
*/
-// $Id: JettyService.java,v 1.50 2002/02/20 05:37:23 janb Exp $
+// $Id: JettyService.java,v 1.51 2002/02/21 02:03:57 jules_gosnell Exp $
//------------------------------------------------------------------------------
@@ -38,7 +38,7 @@
* A service to launch jetty from JMX.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Julian Gosnell</a>
- * @version $Revision: 1.50 $
+ * @version $Revision: 1.51 $
*/
public class JettyService
@@ -47,21 +47,16 @@
{
public static final String NAME = "Jetty";
-
- Logger _log = Logger.getLogger(JettyService.class);
- JettyMBean _mbean = null;
- CodeMBean _debug = null;
- Jetty _jetty = null;
- MBeanServer _server = null;
- LogMBean _logbean = null;
- ObjectName _codeBeanName = null;
-
- ObjectName _logBeanName = null;
-
- Element _configElement = null;
-
-
-
+
+ Logger _log = Logger.getLogger(JettyService.class);
+ JettyMBean _mbean = null;
+ CodeMBean _debug = null;
+ Jetty _jetty = null;
+ MBeanServer _server = null;
+ LogMBean _logbean = null;
+ ObjectName _codeBeanName = null;
+ ObjectName _logBeanName = null;
+ Element _configElement = null;
public
JettyService()
@@ -71,7 +66,6 @@
// that logging models are connected before configure-time (via
// MLET file) which is done before initialise-time.
ensureLogging();
-
ensureNaming();
}
@@ -90,8 +84,8 @@
}
-
-
+
+
//----------------------------------------------------------------------------
public void
@@ -143,7 +137,7 @@
//org.mortbay.jetty.jmx.ModelMBeanImpl.setJettyDomain("jboss.web");
// make a Jetty...
- Jetty tmp = new Jetty();
+ Jetty tmp = new Jetty(this);
tmp.setWebDefault(getWebDefault());
tmp.setUnpackWars(getUnpackWars());
tmp.setHttpSessionStorageStrategy(getHttpSessionStorageStrategy());
@@ -185,7 +179,7 @@
_log.info("MBean peers WILL NOT be created for Jetty Contexts");
}
_jetty.setConfigurationElement (_configElement);
-
+
}
protected void
@@ -494,8 +488,8 @@
else
return _configElement;
}
-
-
+
+
//----------------------------------------------------------------------------
/** Configure Jetty
* @param configElement XML fragment from jboss-service.xml
@@ -509,11 +503,11 @@
if (isInitialised())
_jetty.setConfigurationElement (configElement);
-
+
_configElement=configElement;
}
-
+
protected String _subjectAttributeName=null; // "j_subject"
public String
@@ -537,7 +531,7 @@
_subjectAttributeName=subjectAttributeName;
}
-
-
+
+
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development