hammant 2003/01/08 23:42:49
Modified: sevak jetty.xml
sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty
JettySevak.java SevakWebApplicationContext.java
Added: sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty
SevakServletHolder.java
SevakWebApplicationHandler.java
Log:
Jetty upgraded to pre-release 4.2.5 version. Release coems in about 3 weeks.
Extensions to servet handling added.
Revision Changes Path
1.11 +20 -11 jakarta-avalon-apps/sevak/jetty.xml
Index: jetty.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-apps/sevak/jetty.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- jetty.xml 7 Jan 2003 23:13:00 -0000 1.10
+++ jetty.xml 9 Jan 2003 07:42:49 -0000 1.11
@@ -60,7 +60,7 @@
<!-- Jetty stuff -->
- <property name ="jetty.rel" value="4.2.4"/>
+ <property name ="jetty.rel" value="4.2.5-pr20030108"/>
<property name="jetty.jars.dir" value="${lib.dir}/jetty-jars"/>
@@ -118,24 +118,33 @@
<target name="get-jetty">
<mkdir dir="jetty-download"/>
-
- <get
src="http://unc.dl.sourceforge.net/sourceforge/jetty/Jetty-${jetty.rel}.zip"
- dest="jetty-download/Jetty-${jetty.rel}.zip"
+
+ <!--
+ <get
src="http://unc.dl.sourceforge.net/sourceforge/jetty/Jetty-${jetty.rel}.zip"
+ dest="jetty-download/Jetty-${jetty.rel}.zip"
verbose="true"
usetimestamp="true"/>
-
+ -->
+
+ <!-- temporarily point to EOB site -->
+
+ <get src="http://www.enterpriseobjectbroker.org/Jetty-${jetty.rel}.zip"
+ dest="jetty-download/Jetty-${jetty.rel}.zip"
+ verbose="true"
+ usetimestamp="true"/>
+
<unzip src="jetty-download/Jetty-${jetty.rel}.zip"
dest="jetty-download/Jetty-${jetty.rel}" />
-
- <delete file="${jetty.jars.dir}/*.jar"/>
-
+
+ <delete file="${jetty.jars.dir}/*.jar"/>
+
<copy todir="${jetty.jars.dir}" flatten="true">
<fileset dir="jetty-download/Jetty-${jetty.rel}">
<include name="**/lib/*.jar"/>
</fileset>
</copy>
-
- </target>
-
+
+ </target>
+
<!-- prepare -->
<target name="prepare" depends="checkNeccesaryJars" >
</target>
1.10 +15 -2
jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty/JettySevak.java
Index: JettySevak.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty/JettySevak.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- JettySevak.java 8 Jan 2003 07:13:02 -0000 1.9
+++ JettySevak.java 9 Jan 2003 07:42:49 -0000 1.10
@@ -16,6 +16,9 @@
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.CascadingRuntimeException;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.apps.sevak.Sevak;
import org.apache.avalon.apps.sevak.SevakException;
import org.apache.avalon.phoenix.BlockContext;
@@ -44,7 +47,7 @@
* @version 1.0
*/
public class JettySevak extends AbstractLogEnabled implements Sevak, Startable,
Contextualizable,
- Configurable, Initializable
+ Configurable, Initializable, Serviceable
{
private Server m_server;
@@ -55,6 +58,7 @@
private HashMap m_webapps = new HashMap();
private int m_port;
private File m_sarRootDir;
+ private ServiceManager m_serviceManager;
/**
@@ -65,6 +69,15 @@
}
/**
+ * @param serviceManager
+ * @throws ServiceException
+ */
+ public void service(ServiceManager serviceManager) throws ServiceException
+ {
+ m_serviceManager = serviceManager;
+ }
+
+ /**
* Contextualize
* @param context the context
*/
@@ -150,7 +163,7 @@
// WebApplicationContext ctx = m_server.addWebApplication(m_hostName,
context, webAppURL);
WebApplicationContext ctx =
- new SevakWebApplicationContext(m_sarRootDir, webAppURL);
+ new SevakWebApplicationContext(m_serviceManager, m_sarRootDir,
webAppURL);
ctx.setContextPath(context);
m_server.addContext(m_hostName,ctx);
1.2 +29 -1
jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty/SevakWebApplicationContext.java
Index: SevakWebApplicationContext.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty/SevakWebApplicationContext.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SevakWebApplicationContext.java 1 Dec 2002 23:57:24 -0000 1.1
+++ SevakWebApplicationContext.java 9 Jan 2003 07:42:49 -0000 1.2
@@ -8,6 +8,9 @@
package org.apache.avalon.apps.sevak.blocks.jetty;
import org.mortbay.jetty.servlet.WebApplicationContext;
+import org.mortbay.jetty.servlet.ServletHandler;
+import org.mortbay.jetty.servlet.WebApplicationHandler;
+import org.apache.avalon.framework.service.ServiceManager;
import java.io.IOException;
import java.io.File;
@@ -29,12 +32,14 @@
private File m_sarRoot;
private File m_phoenixLib;
+ private ServiceManager m_serviceManager;
- public SevakWebApplicationContext(File sarRoot, String webAppURL) throws
IOException
+ public SevakWebApplicationContext(ServiceManager serviceManager, File sarRoot,
String webAppURL) throws IOException
{
super(webAppURL);
m_sarRoot = sarRoot;
m_phoenixLib = new File(sarRoot.getParentFile().getParentFile(),"lib");
+ m_serviceManager = serviceManager;
}
@@ -50,6 +55,29 @@
classpath += new File(m_sarRoot, "jsplibs" + File.separator +
"javax.servlet.jar") + File.pathSeparator;
classpath += new File(m_phoenixLib, "tools.jar");
return classpath;
+ }
+
+ public synchronized ServletHandler getServletHandler() {
+// super.getServletHandler();
+
+// ServletHandler shandler =
(ServletHandler)getHandler(org.mortbay.jetty.servlet.ServletHandler.class);
+// if(shandler == null) {
+// shandler = new SevakServletHandler(serviceManager);
+// addHandler(shandler);
+// }
+// return shandler;
+
+ if(_webAppHandler == null) {
+ _webAppHandler =
(WebApplicationHandler)getHandler(SevakWebApplicationHandler.class);
+ if(_webAppHandler == null) {
+ if(getHandler(org.mortbay.jetty.servlet.ServletHandler.class) !=
null)
+ throw new IllegalStateException("Cannot have ServletHandler in
WebApplicationContext");
+ _webAppHandler = new SevakWebApplicationHandler(m_serviceManager);
+ addHandler(_webAppHandler);
+ }
+ }
+ return _webAppHandler;
+
}
}
1.1
jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty/SevakServletHolder.java
Index: SevakServletHolder.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.apps.sevak.blocks.jetty;
import org.mortbay.jetty.servlet.ServletHolder;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.ServiceException;
/**
*
* Override for Jetty's ServletHolder allow custom servlet handling
*
*
* @see <a href="http://jetty.mortbay.com/">Jetty Project Page</a>
*
* @author Paul Hammant
* @version 1.0
*/
public class SevakServletHolder extends ServletHolder
{
private ServiceManager m_serviceManager;
public SevakServletHolder(ServiceManager serviceManager,
SevakWebApplicationHandler handler, String name, String className, String forcedPath)
{
// this constructor public or protected...
super(handler, name, className, forcedPath);
m_serviceManager = serviceManager;
}
public synchronized Object newInstance() throws InstantiationException,
IllegalAccessException {
if(_class == null)
throw new InstantiationException("No class for " + this);
else {
Object instance = _class.newInstance();
if (instance instanceof Serviceable) {
try
{
((Serviceable) instance).service(m_serviceManager);
}
catch (ServiceException e)
{
throw new InstantiationException("Service Exception for servlet "
+ _class.getName() + ":" + e.getMessage());
}
}
return instance;
}
}
}
1.1
jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/jetty/SevakWebApplicationHandler.java
Index: SevakWebApplicationHandler.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.apps.sevak.blocks.jetty;
import org.mortbay.jetty.servlet.WebApplicationHandler;
import org.mortbay.jetty.servlet.ServletHolder;
import org.apache.avalon.framework.service.ServiceManager;
/**
*
* Override for Jetty's WebApplicationHandler allow custom servlet handling
*
*
* @see <a href="http://jetty.mortbay.com/">Jetty Project Page</a>
*
* @author Paul Hammant
* @version 1.0
*/
public class SevakWebApplicationHandler extends WebApplicationHandler {
ServiceManager m_serviceManager;
public SevakWebApplicationHandler(ServiceManager serviceManager)
{
m_serviceManager = serviceManager;
}
public ServletHolder newServletHolder(String name, String servletClass, String
forcedPath)
{
if(_nameMap.containsKey(name)) {
throw new IllegalArgumentException("Named servlet already exists: " +
name);
} else {
ServletHolder holder = new SevakServletHolder(m_serviceManager, this,
name, servletClass, forcedPath);
_nameMap.put(holder.getName(), holder);
return holder;
}
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>