I don't think this is supposed to happen, is it? -Scott
> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Monday, June 13, 2005 12:45 PM > To: [EMAIL PROTECTED] > Subject: failure notice > > Hi. This is the qmail-send program at apache.org. > I'm afraid I wasn't able to deliver your message to the following > addresses. > This is a permanent error; I've given up. Sorry it didn't work out. > > <[email protected]>: > Sorry, only subscribers may post. If you are a subscriber, please forward > this message to [EMAIL PROTECTED] to get your new address > included (#5.7.2) > > --- Below this line is a copy of the message. > > Return-Path: <[EMAIL PROTECTED]> > Received: (qmail 73874 invoked by uid 99); 13 Jun 2005 16:45:10 -0000 > X-ASF-Spam-Status: No, hits=-9.8 required=10.0 > tests=ALL_TRUSTED,NO_REAL_NAME > X-Spam-Check-By: apache.org > Received: from minotaur.apache.org (HELO minotaur.apache.org) > (209.237.227.194) > by apache.org (qpsmtpd/0.28) with SMTP; Mon, 13 Jun 2005 09:45:06 -0700 > Received: (qmail 75636 invoked by uid 65534); 13 Jun 2005 16:44:48 -0000 > Message-ID: <[EMAIL PROTECTED]> > Content-Type: text/plain; charset="utf-8" > MIME-Version: 1.0 > Content-Transfer-Encoding: quoted-printable > Subject: svn commit: r190422 - in > /portals/jetspeed-2/trunk/portal/src/java/org/apache/jetspeed/ajax: ./ > AJAXFilter.java AJAXRequestImpl.java AJAXResponseImpl.java > AJAXServiceImpl.java AJAXValve.java > Date: Mon, 13 Jun 2005 16:44:47 -0000 > To: [email protected], [email protected] > From: [EMAIL PROTECTED] > X-Mailer: svnmailer-1.0.0-dev > X-Virus-Checked: Checked > > Author: weaver > Date: Mon Jun 13 09:44:46 2005 > New Revision: 190422 > > URL: http://svn.apache.org/viewcvs?rev=3D190422&view=3Drev > Log: > JS2-283: These are the initial implementations of the Ajax service > interfa= > ces > > Added: > portals/jetspeed-2/trunk/portal/src/java/org/apache/jetspeed/ajax/ > portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXF= > ilter.java > portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXR= > equestImpl.java > portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXR= > esponseImpl.java > portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXS= > erviceImpl.java > portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXV= > alve.java > > Added: portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJ= > AXFilter.java > URL: http://svn.apache.org/viewcvs/portals/jetspeed- > 2/trunk/portal/src/java= > /org/apache/jetspeed/ajax/AJAXFilter.java?rev=3D190422&view=3Dauto > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D > --- portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXF= > ilter.java (added) > +++ portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXF= > ilter.java Mon Jun 13 09:44:46 2005 > @@ -0,0 +1,82 @@ > +/* > + * Copyright 2000-2001,2004 The Apache Software Foundation. > + *=20 > + * Licensed under the Apache License, Version 2.0 (the "License"); > + * you may not use this file except in compliance with the License. > + * You may obtain a copy of the License at > + *=20 > + * http://www.apache.org/licenses/LICENSE-2.0 > + *=20 > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied= > . > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.jetspeed.ajax; > + > +import java.io.IOException; > + > +import javax.servlet.Filter; > +import javax.servlet.FilterChain; > +import javax.servlet.FilterConfig; > +import javax.servlet.ServletException; > +import javax.servlet.ServletRequest; > +import javax.servlet.ServletResponse; > +import javax.servlet.http.HttpServletRequest; > +import javax.servlet.http.HttpServletResponse; > + > +import org.springframework.context.ApplicationContext; > +import org.springframework.web.context.WebApplicationContext; > + > +/** > + * Simple ServletFilter for invoking AJAX services. > + *=20 > + *=20 > + * @author <href a=3D"mailto:[EMAIL PROTECTED]">Scott T. Weaver</a> > + * > + */ > +public class AJAXFilter implements Filter > +{ > + private ApplicationContext ctx; > + private AJAXService ajaxService; > + private FilterConfig config; > + =20 > + public void init(FilterConfig config) throws ServletException > + { > + this.config =3D config; > + } > + > + public void doFilter(ServletRequest request, ServletResponse > response, > + FilterChain arg2) throws IOException, ServletException > + { =20 > + try > + { > + response.setContentType("text/xml"); > + if(ctx =3D=3D null) > + { > + ctx =3D > (ApplicationContext)config.getServletContext().get= > Attribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); > + ajaxService =3D (AJAXService) ctx.getBean("AJAXService"); > + } > + =20 > + AJAXRequest ajaxRequest =3D new > AJAXRequestImpl((HttpServletRe= > quest) request, (HttpServletResponse) response, > config.getServletContext())= > ; > + AJAXResponse ajaxReponse =3D > ajaxService.processRequest(ajaxRe= > quest); > + ajaxReponse.complete(); > + } > + catch (AJAXException e) > + { > + ((HttpServletResponse) response).sendError(500, > e.getMessage())= > ; > + } > + catch(Exception e) > + { > + throw new ServletException(e.getMessage(), e); > + } > + } > + > + public void destroy() > + { > + // do nothing > + > + } > + > +} > > Added: portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJ= > AXRequestImpl.java > URL: http://svn.apache.org/viewcvs/portals/jetspeed- > 2/trunk/portal/src/java= > /org/apache/jetspeed/ajax/AJAXRequestImpl.java?rev=3D190422&view=3Dauto > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D > --- portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXR= > equestImpl.java (added) > +++ portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXR= > equestImpl.java Mon Jun 13 09:44:46 2005 > @@ -0,0 +1,180 @@ > +/* > + * Copyright 2000-2001,2004 The Apache Software Foundation. > + *=20 > + * Licensed under the Apache License, Version 2.0 (the "License"); > + * you may not use this file except in compliance with the License. > + * You may obtain a copy of the License at > + *=20 > + * http://www.apache.org/licenses/LICENSE-2.0 > + *=20 > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied= > . > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.jetspeed.ajax; > + > +import java.util.ArrayList; > +import java.util.Iterator; > +import java.util.List; > +import java.util.Map; > + > +import javax.servlet.ServletContext; > +import javax.servlet.http.HttpServletRequest; > +import javax.servlet.http.HttpServletResponse; > + > +/** > + * Request used for AJAX services. > + *=20 > + * @author <href a=3D"mailto:[EMAIL PROTECTED]">Scott T. Weaver</a> > + * > + */ > +public class AJAXRequestImpl implements AJAXRequest > +{ > + public static final String AJAX_SERVICE =3D "ajax_service"; > + public static final String AJAX_PARAM_PREFIX =3D "ajax_param_"; > + =20 > + private final HttpServletRequest request; > + private List ajaxParams; > + private final String serviceName; > + private final String methodName; > + private HttpServletResponse response; > + private ServletContext context; > + > + public AJAXRequestImpl(HttpServletRequest request, > HttpServletResponse= > response, ServletContext context) throws AJAXException > + { > + this.request =3D request; > + this.response =3D response; > + this.context =3D context; > + String serviceRequest =3D request.getParameter(AJAX_SERVICE); > + if(serviceRequest =3D=3D null ) > + { > + throw new AJAXException("No '"+AJAX_SERVICE+"' parameter > could= > be found in the request or it was not in the > '{service_name}.{method_name}= > ' format."); > + } > + final String split =3D serviceRequest.split("\\.")[0]; > + serviceName =3D split; > + methodName =3D serviceRequest.split("\\.")[1]; > + =20 > + parseRequestArguments(); > + =20 > + } > + =20 > + /* (non-Javadoc) > + * @see org.apache.jetspeed.ajax.AJAXRequest#getParameters() > + */ > + public List getParameters() > + { > + return ajaxParams; > + } > + > + /* (non-Javadoc) > + * @see org.apache.jetspeed.ajax.AJAXRequest#getServiceName() > + */ > + public String getServiceName() > + { > + return serviceName; > + } > + > + protected List parseRequestArguments() throws AJAXException > + { > + try > + { > + ajaxParams =3D new ArrayList(); > + Map rawParams =3D request.getParameterMap(); > + Iterator entryItr =3D rawParams.entrySet().iterator(); > + while(entryItr.hasNext()) > + { > + Map.Entry entry =3D (Map.Entry) entryItr.next(); > + String key =3D entry.getKey().toString(); > + =20 > + if(key.startsWith(AJAX_PARAM_PREFIX)) > + { > + String[] paramInfo =3D key.split("_"); > + int index =3D Integer.parseInt(paramInfo[2]); > + String type =3D paramInfo[3];=20 > + AJAXParameter ajaxParam =3D new AJAXParameter(type, > (S= > tring[])entry.getValue()); > + ajaxParams.add(index, ajaxParam); > + } > + } > + return ajaxParams; > + } > + catch (Throwable e) > + { > + throw new AJAXException("Errors were encountered parsing > reque= > st parameters for the AJAX service "+serviceName+": "+e.getMessage(), e); > + } > + } > + =20 > + public class AJAXParameter > + { > + private Object value; > + =20 > + public AJAXParameter(String typeName, String[] paramValues) > + { > + if(typeName.equals("int")) > + { =20 > + if(paramValues.length > 1) > + { > + int[] intValues =3D new int[paramValues.length]; > + for(int i=3D0; i<paramValues.length; i++) > + { > + intValues[i] =3D > Integer.parseInt(paramValues[i]); > + } > + } > + else > + { > + value =3D new Integer(paramValues[0]); > + } > + } > + else if(typeName.equals("str")) > + { > + if(paramValues.length > 1) > + { =20 > + value =3D paramValues; > + } > + else > + { > + value =3D paramValues[0]; > + } > + } > + } > + =20 > + public Object getValue() > + { > + return value; > + } > + } > + > + > + /* (non-Javadoc) > + * @see org.apache.jetspeed.ajax.AJAXRequest#getMethodName() > + */ > + public String getMethodName() > + { > + return methodName; > + } > + > + /* (non-Javadoc) > + * @see org.apache.jetspeed.ajax.AJAXRequest#getContext() > + */ > + public ServletContext getContext() > + { > + return context; > + } > + > + /* (non-Javadoc) > + * @see org.apache.jetspeed.ajax.AJAXRequest#getServletRequest() > + */ > + public HttpServletRequest getServletRequest() > + { > + return request; > + } > + > + /* (non-Javadoc) > + * @see org.apache.jetspeed.ajax.AJAXRequest#getServletResponse() > + */ > + public HttpServletResponse getServletResponse() > + { > + return response; > + } > +} > > Added: portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJ= > AXResponseImpl.java > URL: http://svn.apache.org/viewcvs/portals/jetspeed- > 2/trunk/portal/src/java= > /org/apache/jetspeed/ajax/AJAXResponseImpl.java?rev=3D190422&view=3Dauto > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D > --- portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXR= > esponseImpl.java (added) > +++ portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXR= > esponseImpl.java Mon Jun 13 09:44:46 2005 > @@ -0,0 +1,64 @@ > +/* > + * Copyright 2000-2001,2004 The Apache Software Foundation. > + *=20 > + * Licensed under the Apache License, Version 2.0 (the "License"); > + * you may not use this file except in compliance with the License. > + * You may obtain a copy of the License at > + *=20 > + * http://www.apache.org/licenses/LICENSE-2.0 > + *=20 > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied= > . > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.jetspeed.ajax; > + > +import java.io.Reader; > +import java.io.Writer; > + > +import org.apache.velocity.app.VelocityEngine; > +import org.apache.velocity.context.Context; > + > +/** > + * Response object used for AJAX services. > + *=20 > + * @author <href a=3D"mailto:[EMAIL PROTECTED]">Scott T. Weaver</a> > + * > + */ > +public class AJAXResponseImpl implements AJAXResponse > +{ =20 > + > + private Context context; > + private VelocityEngine engine; > + private Reader template; > + private Writer output; > + > + public AJAXResponseImpl(Context context, VelocityEngine engine, > Reader= > template, Writer output) > + { > + this.context =3D context; > + this.engine =3D engine; > + this.template =3D template; > + this.output =3D output; > + } > + > + /* (non-Javadoc) > + * @see org.apache.jetspeed.ajax.AJAXResponse#complete() > + */ > + public void complete() throws AJAXException > + { > + try > + { > + engine.evaluate(context, output, "AJAX processor", template); > + } > + catch (Exception e) > + { > + throw new AJAXException("Failed to render velocity xml > templat= > e: "+e.getMessage(), e); > + } > + =20 > + } > + > + =20 > + > +} > > Added: portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJ= > AXServiceImpl.java > URL: http://svn.apache.org/viewcvs/portals/jetspeed- > 2/trunk/portal/src/java= > /org/apache/jetspeed/ajax/AJAXServiceImpl.java?rev=3D190422&view=3Dauto > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D > --- portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXS= > erviceImpl.java (added) > +++ portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXS= > erviceImpl.java Mon Jun 13 09:44:46 2005 > @@ -0,0 +1,148 @@ > +/* > + * Copyright 2000-2001,2004 The Apache Software Foundation. > + *=20 > + * Licensed under the Apache License, Version 2.0 (the "License"); > + * you may not use this file except in compliance with the License. > + * You may obtain a copy of the License at > + *=20 > + * http://www.apache.org/licenses/LICENSE-2.0 > + *=20 > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied= > . > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.jetspeed.ajax; > + > +import java.io.IOException; > +import java.io.InputStream; > +import java.io.InputStreamReader; > +import java.io.Reader; > +import java.lang.reflect.Method; > +import java.util.Iterator; > +import java.util.List; > +import java.util.Map; > +import java.util.Properties; > + > +import org.apache.velocity.VelocityContext; > +import org.apache.velocity.app.VelocityEngine; > +import org.apache.velocity.context.Context; > +import org.springframework.beans.BeansException; > +import org.springframework.beans.factory.BeanFactory; > +import org.springframework.beans.factory.BeanFactoryAware; > + > +/** > + * Performs invocation of the actual AJAX request and returns > + * a result object to converted into XML. > + *=20 > + * @author <href a=3D"mailto:[EMAIL PROTECTED]">Scott T. Weaver</a> > + * > + */ > +public class AJAXServiceImpl implements AJAXService, BeanFactoryAware > +{ > + > + private Map serviceToBeans; > + > + private BeanFactory beanFactory; > + private VelocityEngine engine; > + > + public AJAXServiceImpl(Map serviceToBeans) > + { > + this.serviceToBeans =3D serviceToBeans; > + =20 > + } > + > + public AJAXResponse processRequest(AJAXRequest request) > + throws AJAXException > + { > + final String serviceName =3D request.getServiceName(); > + final String methodName =3D request.getMethodName(); > + final String templateName =3D > request.getServletRequest().getServl= > etPath(); > + > + final String mappedServiceName =3D > (serviceName+"."+methodName).tr= > im(); > + try > + { > + if(engine =3D=3D null) > + { > + engine =3D new VelocityEngine(); > + Properties props =3D new Properties(); > + > props.load(request.getContext().getResourceAsStream("/WEB-= > INF/velocity.properties")); > + engine.init(); > + } > + =20 > + =20 > + if(!serviceToBeans.containsKey(mappedServiceName)) > + { > + throw new AJAXException("There is no AJAX service named > '"= > +mappedServiceName+"' defined. "+=20 > + "Please make sure that your ajax.xml is set up > cor= > rectly."); > + } > + =20 > + String beanId =3D > ((String)serviceToBeans.get(mappedServiceNam= > e)).trim(); > + Object targetService =3D beanFactory.getBean(beanId); > + final List parameters =3D request.getParameters(); > + Method method =3D > targetService.getClass().getMethod(methodNam= > e, getTypes(parameters)); > + Object result =3D method.invoke(targetService, > getValues(param= > eters)); > + Context context =3D new VelocityContext(); > + context.put("ajaxRequest", request); > + context.put("result", result); =20 > + =20 > + final InputStream templateResource =3D > request.getContext().ge= > tResourceAsStream(templateName); > + =20 > + if(templateResource =3D=3D null) > + { > + request.getServletResponse().sendError(404, > templateName+"= > ajax template could not be found."); > + throw new IOException(templateName+" does not exist"); > + } > + Reader template =3D new InputStreamReader(templateResource); > + =20 > + return new AJAXResponseImpl(context, engine, template, > request= > .getServletResponse().getWriter()); > + } > + catch(AJAXException ae) > + { > + throw ae; > + } > + catch (Exception e) > + { > + throw new AJAXException("Unable to process service" + > mappedSe= > rviceName + ": " + e.getMessage(), e); > + } > + > + } > + > + /* > + * (non-Javadoc) > + *=20 > + * @see > org.springframework.beans.factory.BeanFactoryAware#setBeanFact= > ory(org.springframework.beans.factory.BeanFactory) > + */ > + public void setBeanFactory(BeanFactory beanFactory) throws > BeansExcept= > ion > + { > + this.beanFactory =3D beanFactory; > + } > + > + protected Class[] getTypes(List objects) > + { > + Class[] args =3D new Class[objects.size()]; > + Iterator itr =3D objects.iterator(); > + int i =3D 0; > + while (itr.hasNext()) > + { > + args[i] =3D > ((AJAXRequestImpl.AJAXParameter)itr.next()).getVal= > ue().getClass(); > + i++; > + } > + return args; > + } > + =20 > + protected Object[] getValues(List objects) > + { > + Object[] args =3D new Object[objects.size()]; > + Iterator itr =3D objects.iterator(); > + int i =3D 0; > + while (itr.hasNext()) > + { > + args[i] =3D > ((AJAXRequestImpl.AJAXParameter)itr.next()).getVal= > ue(); > + i++; > + } > + return args; > + } > + > +} > > Added: portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJ= > AXValve.java > URL: http://svn.apache.org/viewcvs/portals/jetspeed- > 2/trunk/portal/src/java= > /org/apache/jetspeed/ajax/AJAXValve.java?rev=3D190422&view=3Dauto > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3 > D= > =3D=3D=3D > --- portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXV= > alve.java (added) > +++ portals/jetspeed- > 2/trunk/portal/src/java/org/apache/jetspeed/ajax/AJAXV= > alve.java Mon Jun 13 09:44:46 2005 > @@ -0,0 +1,44 @@ > +/* > + * Copyright 2000-2001,2004 The Apache Software Foundation. > + *=20 > + * Licensed under the Apache License, Version 2.0 (the "License"); > + * you may not use this file except in compliance with the License. > + * You may obtain a copy of the License at > + *=20 > + * http://www.apache.org/licenses/LICENSE-2.0 > + *=20 > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied= > . > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.jetspeed.ajax; > + > +import org.apache.jetspeed.pipeline.PipelineException; > +import org.apache.jetspeed.pipeline.valve.AbstractValve; > +import org.apache.jetspeed.pipeline.valve.ValveContext; > +import org.apache.jetspeed.request.RequestContext; > + > +/** > + * This should eventually replace the AJAX ServletFilter. > + *=20 > + * @author <href a=3D"mailto:[EMAIL PROTECTED]">Scott T. Weaver</a> > + * > + */ > +public class AJAXValve extends AbstractValve > +{ > + public AJAXValve() > + { > + super(); > + =20 > + } > + > + public void invoke(RequestContext request, ValveContext context) > + throws PipelineException > + { > + =20 > + > + } > + > +} > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
