You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2012/12/27 21:41:09 UTC
svn commit: r1426309 - in /tomcat/trunk: java/javax/websocket/
java/org/apache/tomcat/websocket/ test/org/apache/tomcat/websocket/
Author: markt
Date: Thu Dec 27 20:41:08 2012
New Revision: 1426309
URL: http://svn.apache.org/viewvc?rev=1426309&view=rev
Log:
Fill in some Javadoc.
Rename various fields/methods/parameters for consistency
Remove unnecessary code
Added:
tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpoint.java
- copied, changed from r1426301, tomcat/trunk/java/org/apache/tomcat/websocket/WsEndpointPojo.java
Removed:
tomcat/trunk/java/org/apache/tomcat/websocket/WsEndpointPojo.java
Modified:
tomcat/trunk/java/javax/websocket/MessageHandler.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpointConfiguration.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBase.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBinary.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncString.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBase.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBase.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBinary.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicPong.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicString.java
tomcat/trunk/java/org/apache/tomcat/websocket/PojoMethodMapping.java
tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java
tomcat/trunk/java/org/apache/tomcat/websocket/Util.java
tomcat/trunk/test/org/apache/tomcat/websocket/TestUtil.java
Modified: tomcat/trunk/java/javax/websocket/MessageHandler.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/MessageHandler.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/MessageHandler.java (original)
+++ tomcat/trunk/java/javax/websocket/MessageHandler.java Thu Dec 27 20:41:08 2012
@@ -20,11 +20,23 @@ public interface MessageHandler {
interface Async<T> extends MessageHandler {
+ /**
+ * Called when part of a message is available to be processed.
+ *
+ * @param messagePart The message part
+ * @param last <code>true</code> if this is the last part of
+ * this message, else <code>false</code>
+ */
void onMessage(T messagePart, boolean last);
}
interface Basic<T> extends MessageHandler {
+ /**
+ * Called when a whole message is available to be processed.
+ *
+ * @param messagePart The message
+ */
void onMessage(T message);
}
}
Copied: tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpoint.java (from r1426301, tomcat/trunk/java/org/apache/tomcat/websocket/WsEndpointPojo.java)
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpoint.java?p2=tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpoint.java&p1=tomcat/trunk/java/org/apache/tomcat/websocket/WsEndpointPojo.java&r1=1426301&r2=1426309&rev=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsEndpointPojo.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpoint.java Thu Dec 27 20:41:08 2012
@@ -30,7 +30,7 @@ import javax.websocket.Session;
* {@link javax.websocket.server.WebSocketEndpoint} so they appear as standard
* {@link Endpoint} instances.
*/
-public class WsEndpointPojo extends Endpoint {
+public class PojoEndpoint extends Endpoint {
private Object pojo;
private String pathInfo;
@@ -43,7 +43,7 @@ public class WsEndpointPojo extends Endp
PojoEndpointConfiguration pec =
(PojoEndpointConfiguration) endpointConfiguration;
- pojo = pec.getPojo();
+ pojo = pec.createPojo();
pathInfo = pec.getPathInfo();
methodMapping = pec.getMethodMapping();
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpointConfiguration.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpointConfiguration.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpointConfiguration.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoEndpointConfiguration.java Thu Dec 27 20:41:08 2012
@@ -20,7 +20,7 @@ import javax.websocket.server.DefaultSer
/**
* Provides the configuration for POJOs annotated at WebSocket endpoints. It
- * provides the means, via casting, of new {@link WsEndpointPojo} instances
+ * provides the means, via casting, of new {@link PojoEndpoint} instances
* obtaining POJO endpoint specific configuration settings such as the mapping
* of onXxx calls to POJO methods.
*/
@@ -28,28 +28,19 @@ public class PojoEndpointConfiguration e
private final Class<?> pojoClass;
private final PojoMethodMapping methodMapping;
- private final String servletPath;
private final String pathInfo;
PojoEndpointConfiguration(Class<?> pojoClass,
- PojoMethodMapping methodMapping, String servletPath,
- String pathInfo) {
- super(WsEndpointPojo.class, methodMapping.getMappingPath());
+ PojoMethodMapping methodMapping, String pathInfo) {
+ super(PojoEndpoint.class, methodMapping.getWsPath());
this.pojoClass = pojoClass;
this.methodMapping = methodMapping;
- this.servletPath = servletPath;
this.pathInfo = pathInfo;
}
- @Override
- public String getPath() {
- return servletPath;
- }
-
-
- public Object getPojo() {
+ public Object createPojo() {
try {
return pojoClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBase.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBase.java Thu Dec 27 20:41:08 2012
@@ -23,6 +23,12 @@ import java.nio.ByteBuffer;
import javax.websocket.MessageHandler;
import javax.websocket.Session;
+/**
+ * Common implementation code for the POJO asynchronous message handlers. All
+ * the real work is done in this class and in the superclass.
+ *
+ * @param <T> The type of message to handle
+ */
public abstract class PojoMessageHandlerAsyncBase<T>
extends PojoMessageHandlerBase<T> implements MessageHandler.Async<T> {
@@ -38,7 +44,7 @@ public abstract class PojoMessageHandler
@Override
- public void onMessage(T message, boolean last) {
+ public final void onMessage(T message, boolean last) {
Object[] parameters = params.clone();
if (indexBoolean != -1) {
parameters[indexBoolean] = Boolean.valueOf(last);
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBinary.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBinary.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBinary.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncBinary.java Thu Dec 27 20:41:08 2012
@@ -21,7 +21,9 @@ import java.nio.ByteBuffer;
import javax.websocket.Session;
-
+/**
+ * ByteBuffer specific concrete asynchronous implementation.
+ */
public class PojoMessageHandlerAsyncBinary
extends PojoMessageHandlerAsyncBase<ByteBuffer>{
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncString.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncString.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncString.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerAsyncString.java Thu Dec 27 20:41:08 2012
@@ -20,7 +20,9 @@ import java.lang.reflect.Method;
import javax.websocket.Session;
-
+/**
+ * String specific concrete asynchronous implementation.
+ */
public class PojoMessageHandlerAsyncString
extends PojoMessageHandlerAsyncBase<String>{
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBase.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBase.java Thu Dec 27 20:41:08 2012
@@ -24,6 +24,11 @@ import javax.websocket.EncodeException;
import javax.websocket.RemoteEndpoint;
import javax.websocket.Session;
+/**
+ * Common implementation code for the POJO message handlers.
+ *
+ * @param <T> The type of message to handle
+ */
public abstract class PojoMessageHandlerBase<T> {
protected final Object pojo;
@@ -48,7 +53,7 @@ public abstract class PojoMessageHandler
}
- protected void processResult(Object result) {
+ protected final void processResult(Object result) {
if (result == null) {
return;
}
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBase.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBase.java Thu Dec 27 20:41:08 2012
@@ -23,6 +23,12 @@ import java.nio.ByteBuffer;
import javax.websocket.MessageHandler;
import javax.websocket.Session;
+/**
+ * Common implementation code for the POJO basic message handlers. All the real
+ * work is done in this class and in the superclass.
+ *
+ * @param <T> The type of message to handle
+ */
public abstract class PojoMessageHandlerBasicBase<T>
extends PojoMessageHandlerBase<T> implements MessageHandler.Basic<T> {
@@ -35,7 +41,7 @@ public abstract class PojoMessageHandler
@Override
- public void onMessage(T message) {
+ public final void onMessage(T message) {
Object[] parameters = params.clone();
if (indexSession != -1) {
parameters[indexSession] = session;
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBinary.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBinary.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBinary.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicBinary.java Thu Dec 27 20:41:08 2012
@@ -21,6 +21,9 @@ import java.nio.ByteBuffer;
import javax.websocket.Session;
+/**
+ * ByteBuffer specific concrete basic implementation.
+ */
public class PojoMessageHandlerBasicBinary
extends PojoMessageHandlerBasicBase<ByteBuffer> {
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicPong.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicPong.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicPong.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicPong.java Thu Dec 27 20:41:08 2012
@@ -21,6 +21,9 @@ import java.lang.reflect.Method;
import javax.websocket.PongMessage;
import javax.websocket.Session;
+/**
+ * PongMessage specific concrete basic implementation.
+ */
public class PojoMessageHandlerBasicPong
extends PojoMessageHandlerBasicBase<PongMessage> {
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicString.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicString.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicString.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMessageHandlerBasicString.java Thu Dec 27 20:41:08 2012
@@ -20,6 +20,9 @@ import java.lang.reflect.Method;
import javax.websocket.Session;
+/**
+ * String specific concrete basic implementation.
+ */
public class PojoMessageHandlerBasicString
extends PojoMessageHandlerBasicBase<String> {
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/PojoMethodMapping.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/PojoMethodMapping.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/PojoMethodMapping.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/PojoMethodMapping.java Thu Dec 27 20:41:08 2012
@@ -48,17 +48,18 @@ public class PojoMethodMapping {
private final PathParam[] onCloseParams;
private final PathParam[] onErrorParams;
private final Set<MessageMethod> onMessage = new HashSet<>();
- private final String mappingPath;
+ private final String wsPath;
private final UriTemplate template;
- public PojoMethodMapping(Class<?> clazzPojo, String path, String mappingPath) {
- this.mappingPath = mappingPath;
+ public PojoMethodMapping(Class<?> clazzPojo, String wsPath,
+ String servletPath) {
+ this.wsPath = wsPath;
Method open = null;
Method close = null;
Method error = null;
- if (path.length() > mappingPath.length()) {
- template = new UriTemplate(path.substring(mappingPath.length() - 2));
+ if (wsPath.length() > servletPath.length()) {
+ template = new UriTemplate(wsPath.substring(servletPath.length() - 2));
} else {
template = null;
}
@@ -85,8 +86,8 @@ public class PojoMethodMapping {
}
- public String getMappingPath() {
- return mappingPath;
+ public String getWsPath() {
+ return wsPath;
}
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/ServerContainerImpl.java Thu Dec 27 20:41:08 2012
@@ -40,9 +40,11 @@ public class ServerContainerImpl extends
// Needs to be a WeakHashMap to prevent memory leaks when a context is
// stopped
- private static Map<ClassLoader,ServerContainerImpl> classLoaderContainerMap = new WeakHashMap<>();
+ private static Map<ClassLoader,ServerContainerImpl> classLoaderContainerMap =
+ new WeakHashMap<>();
private static Object classLoaderContainerMapLock = new Object();
- private static StringManager sm = StringManager.getManager(Constants.PACKAGE_NAME);
+ private static StringManager sm =
+ StringManager.getManager(Constants.PACKAGE_NAME);
protected Log log = LogFactory.getLog(ServerContainerImpl.class);
@@ -59,9 +61,11 @@ public class ServerContainerImpl extends
return result;
}
private volatile ServletContext servletContext = null;
- private Map<String,ServerEndpointConfiguration> configMap = new ConcurrentHashMap<>();
+ private Map<String,ServerEndpointConfiguration> configMap =
+ new ConcurrentHashMap<>();
private Map<String,Class<?>> pojoMap = new ConcurrentHashMap<>();
- private Map<Class<?>,PojoMethodMapping> pojoMethodMap = new ConcurrentHashMap<>();
+ private Map<Class<?>,PojoMethodMapping> pojoMethodMap =
+ new ConcurrentHashMap<>();
private volatile int readBufferSize = 8192;
@@ -75,6 +79,17 @@ public class ServerContainerImpl extends
}
+ /**
+ * Published the provided endpoint implementation at the specified path with
+ * the specified configuration. {@link #setServletContext(ServletContext)}
+ * must be called before calling this method.
+ *
+ * @param endpointClass The WebSocket server implementation to publish
+ * @param path The path to publish the implementation at
+ * @param configClass The configuration to use when creating endpoint
+ * instances
+ * @throws DeploymentException
+ */
public void publishServer(Class<? extends Endpoint> endpointClass,
String path,
Class<? extends ServerEndpointConfiguration> configClass)
@@ -94,13 +109,14 @@ public class ServerContainerImpl extends
throw new DeploymentException(sm.getString("sci.newInstance.fail",
endpointClass.getName()), e);
}
- String mappingPath = Util.getServletMappingPath(path);
+ String servletPath = Util.getServletPath(path);
if (log.isDebugEnabled()) {
log.debug(sm.getString("serverContainer.endpointDeploy",
- endpointClass.getName(), path, servletContext.getContextPath()));
+ endpointClass.getName(), path,
+ servletContext.getContextPath()));
}
- configMap.put(mappingPath.substring(0, mappingPath.length() - 2), sec);
- addWsServletMapping(mappingPath);
+ configMap.put(servletPath.substring(0, servletPath.length() - 2), sec);
+ addWsServletMapping(servletPath);
}
@@ -109,11 +125,12 @@ public class ServerContainerImpl extends
* publishing plain old java objects (POJOs) that have been annotated as
* WebSocket endpoints.
*
- * @param pojo The annotated POJO
- * @param ctxt The ServletContext the endpoint is to be published in
- * @param path The path at which the endpoint is to be published
+ * @param pojo The annotated POJO
+ * @param ctxt The ServletContext the endpoint is to be published in
+ * @param wsPath The path at which the endpoint is to be published
*/
- public void publishServer(Class<?> pojo, ServletContext ctxt, String path) {
+ public void publishServer(Class<?> pojo, ServletContext ctxt,
+ String wsPath) {
if (ctxt == null) {
throw new IllegalArgumentException(
sm.getString("serverContainer.servletContextMissing"));
@@ -124,27 +141,30 @@ public class ServerContainerImpl extends
} else if (ctxt != servletContext) {
// Should never happen
throw new IllegalStateException(sm.getString(
- "serverContainer.servletContextMismatch", path,
+ "serverContainer.servletContextMismatch", wsPath,
servletContext.getContextPath(), ctxt.getContextPath()));
}
if (log.isDebugEnabled()) {
log.debug(sm.getString("serverContainer.pojoDeploy",
- pojo.getName(), path, servletContext.getContextPath()));
+ pojo.getName(), wsPath, servletContext.getContextPath()));
}
- String mappingPath = Util.getServletMappingPath(path);
- pojoMap.put(mappingPath.substring(0, mappingPath.length() - 2), pojo);
- pojoMethodMap.put(pojo, new PojoMethodMapping(pojo, path, mappingPath));
- addWsServletMapping(mappingPath);
+ String servletPath = Util.getServletPath(wsPath);
+ // Remove the trailing /* before adding it to the map
+ pojoMap.put(servletPath.substring(0, servletPath.length() - 2), pojo);
+ pojoMethodMap.put(pojo,
+ new PojoMethodMapping(pojo, wsPath, servletPath));
+ addWsServletMapping(servletPath);
}
- private void addWsServletMapping(String mapping) {
- ServletRegistration sr = servletContext.getServletRegistration(Constants.SERVLET_NAME);
+ private void addWsServletMapping(String servletPath) {
+ ServletRegistration sr =
+ servletContext.getServletRegistration(Constants.SERVLET_NAME);
if (sr == null) {
sr = servletContext.addServlet(Constants.SERVLET_NAME,
WsServlet.class);
}
- sr.addMapping(mapping);
+ sr.addMapping(servletPath);
}
@@ -156,10 +176,11 @@ public class ServerContainerImpl extends
}
Class<?> pojo = pojoMap.get(servletPath);
if (pojo != null) {
- PojoMethodMapping mapping = pojoMethodMap.get(pojo);
- if (mapping != null) {
- PojoEndpointConfiguration pojoSec = new PojoEndpointConfiguration(
- pojo, mapping, servletPath, pathInfo);
+ PojoMethodMapping methodMapping = pojoMethodMap.get(pojo);
+ if (methodMapping != null) {
+ PojoEndpointConfiguration pojoSec =
+ new PojoEndpointConfiguration(pojo, methodMapping,
+ pathInfo);
return pojoSec;
}
}
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/Util.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/Util.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/Util.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/Util.java Thu Dec 27 20:41:08 2012
@@ -37,7 +37,7 @@ class Util {
* @param wsPath The WebSocket endpoint path to convert
* @return The servlet mapping
*/
- static String getServletMappingPath(String wsPath) {
+ static String getServletPath(String wsPath) {
int templateStart = wsPath.indexOf('{');
if (templateStart == -1) {
if (wsPath.charAt(wsPath.length() - 1) == '/') {
Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestUtil.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestUtil.java?rev=1426309&r1=1426308&r2=1426309&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/websocket/TestUtil.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/websocket/TestUtil.java Thu Dec 27 20:41:08 2012
@@ -24,20 +24,20 @@ public class TestUtil {
@Test
public void testGetServletMappingPath() throws Exception {
Assert.assertEquals("/foo/*",
- Util.getServletMappingPath("/foo"));
+ Util.getServletPath("/foo"));
Assert.assertEquals("/foo/*",
- Util.getServletMappingPath("/foo/"));
+ Util.getServletPath("/foo/"));
Assert.assertEquals("/foo/bar/*",
- Util.getServletMappingPath("/foo/bar"));
+ Util.getServletPath("/foo/bar"));
Assert.assertEquals("/foo/bar/*",
- Util.getServletMappingPath("/foo/bar/"));
+ Util.getServletPath("/foo/bar/"));
Assert.assertEquals("/foo/*",
- Util.getServletMappingPath("/foo/{bar}"));
+ Util.getServletPath("/foo/{bar}"));
Assert.assertEquals("/foo/*",
- Util.getServletMappingPath("/foo/{bar}/"));
+ Util.getServletPath("/foo/{bar}/"));
Assert.assertEquals("/foo/*",
- Util.getServletMappingPath("/foo/x{bar}"));
+ Util.getServletPath("/foo/x{bar}"));
Assert.assertEquals("/foo/*",
- Util.getServletMappingPath("/foo/x{bar}/"));
+ Util.getServletPath("/foo/x{bar}/"));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org