[Tomcat Wiki] Update of "FAQ/Monitoring" by DmytroMrachkovskyi
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "FAQ/Monitoring" page has been changed by DmytroMrachkovskyi: http://wiki.apache.org/tomcat/FAQ/Monitoring?action=diff&rev1=13&rev2=14 Another way to watch a Tomcat application is to use an external monitoring tool. - [[http://moskito.anotheria.net/|MoSKito]], an open-source solution by [[http://anotheria.net/home.html|Anotheria]], uses the JMXProxyServlet interaction for getting JMX beans. It is a multi-purpose, non-invasive, interval-based monitoring system kit that collects, stores and provides instant analysis of a Tomcat application’s performance and behavior data. + [[http://moskito.anotheria.net/|MoSKito]], an open-source solution by [[http://anotheria.net/home.html|Anotheria]], is a multi-purpose, non-invasive, interval-based monitoring system kit that collects, stores and provides instant analysis of a Tomcat application’s performance and behavior data. - Other Plug-in-based monitoring software like Nagios or Icinga may need some help interacting with Tomcat's JMXProxyServlet. [[tools/check_jmxproxy.pl]] is a Perl script that can be used with these tools to monitor Tomcat via the JMXProxyServlet. + Other plug-in-based monitoring software like Nagios or Icinga may need some help interacting with Tomcat's JMXProxyServlet. [[tools/check_jmxproxy.pl]] is a Perl script that can be used with these tools to monitor Tomcat via the JMXProxyServlet. [[CategoryFAQ]] - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1453842 - in /tomcat/trunk/java/javax/websocket/server: HandshakeRequest.java PathParam.java ServerApplicationConfig.java ServerContainer.java ServerContainerProvider.java
Author: markt Date: Thu Mar 7 13:03:58 2013 New Revision: 1453842 URL: http://svn.apache.org/r1453842 Log: Javadoc updates Modified: tomcat/trunk/java/javax/websocket/server/HandshakeRequest.java tomcat/trunk/java/javax/websocket/server/PathParam.java tomcat/trunk/java/javax/websocket/server/ServerApplicationConfig.java tomcat/trunk/java/javax/websocket/server/ServerContainer.java tomcat/trunk/java/javax/websocket/server/ServerContainerProvider.java Modified: tomcat/trunk/java/javax/websocket/server/HandshakeRequest.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/HandshakeRequest.java?rev=1453842&r1=1453841&r2=1453842&view=diff == --- tomcat/trunk/java/javax/websocket/server/HandshakeRequest.java (original) +++ tomcat/trunk/java/javax/websocket/server/HandshakeRequest.java Thu Mar 7 13:03:58 2013 @@ -21,6 +21,9 @@ import java.security.Principal; import java.util.List; import java.util.Map; +/** + * Represents the HTTP request that asked to be upgraded to WebSocket. + */ public interface HandshakeRequest { static final String SEC_WEBSOCKET_KEY = "Sec-WebSocket-Key"; Modified: tomcat/trunk/java/javax/websocket/server/PathParam.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/PathParam.java?rev=1453842&r1=1453841&r2=1453842&view=diff == --- tomcat/trunk/java/javax/websocket/server/PathParam.java (original) +++ tomcat/trunk/java/javax/websocket/server/PathParam.java Thu Mar 7 13:03:58 2013 @@ -21,6 +21,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** + * Used to annotate method parameters on POJO endpoints the the {@link + * ServerEndpoint} has been defined with a {@link ServerEndpoint#value()} that + * uses a URI template. + */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) public @interface PathParam { Modified: tomcat/trunk/java/javax/websocket/server/ServerApplicationConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/ServerApplicationConfig.java?rev=1453842&r1=1453841&r2=1453842&view=diff == --- tomcat/trunk/java/javax/websocket/server/ServerApplicationConfig.java (original) +++ tomcat/trunk/java/javax/websocket/server/ServerApplicationConfig.java Thu Mar 7 13:03:58 2013 @@ -20,10 +20,32 @@ import java.util.Set; import javax.websocket.Endpoint; +/** + * Applications may provide an implementation of this interface to filter the + * discovered WebSocket endpoints that are deployed. Implementations of this + * class will be discovered via an ServletContainerInitializer scan. + */ public interface ServerApplicationConfig { +/** + * Enables applications to filter the discovered implementations of + * {@link ServerEndpointConfig}. + * + * @param scanned The {@link Endpoint} implementations found in the + * application + * @return The set of configurations for the endpoint the application + * wishes to deploy + */ Set getEndpointConfigs( Set> scanned); +/** + * Enables applications to filter the discovered classes annotated with + * {@link ServerEndpoint}. + * + * @param scanned The POJOs annotated with {@link ServerEndpoint} found in + * the application + * @return The set of POJOs the application wishes to deploy + */ Set> getAnnotatedEndpointClasses(Set> scanned); } Modified: tomcat/trunk/java/javax/websocket/server/ServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/ServerContainer.java?rev=1453842&r1=1453841&r2=1453842&view=diff == --- tomcat/trunk/java/javax/websocket/server/ServerContainer.java (original) +++ tomcat/trunk/java/javax/websocket/server/ServerContainer.java Thu Mar 7 13:03:58 2013 @@ -19,6 +19,9 @@ package javax.websocket.server; import javax.websocket.DeploymentException; import javax.websocket.WebSocketContainer; +/** + * Provides the ability to deploy endpoints programmatically. + */ public interface ServerContainer extends WebSocketContainer { public abstract void addEndpoint(Class clazz) throws DeploymentException; Modified: tomcat/trunk/java/javax/websocket/server/ServerContainerProvider.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/ServerContainerProvider.java?rev=1453842&r1=1453841&r2=1453842&view=diff == --- tomcat/trunk/java/javax/websocket/server/ServerContainerProvider.java (original) +++ tomcat/trunk/java/ja
svn commit: r1453843 - in /tomcat/trunk/java/org/apache/tomcat/websocket/server: WsSci.java WsServerContainer.java WsServerContainerProvider.java
Author: markt Date: Thu Mar 7 13:04:18 2013 New Revision: 1453843 URL: http://svn.apache.org/r1453843 Log: Align implementation with spec Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainerProvider.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java?rev=1453843&r1=1453842&r2=1453843&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java Thu Mar 7 13:04:18 2013 @@ -16,6 +16,7 @@ */ package org.apache.tomcat.websocket.server; +import java.util.HashSet; import java.util.Set; import javax.servlet.ServletContainerInitializer; @@ -23,14 +24,18 @@ import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.HandlesTypes; import javax.websocket.DeploymentException; +import javax.websocket.Endpoint; +import javax.websocket.server.ServerApplicationConfig; import javax.websocket.server.ServerEndpoint; +import javax.websocket.server.ServerEndpointConfig; /** * Registers an interest in any class that is annotated with * {@link ServerEndpoint} so that Endpoint can be published via the WebSocket * server. */ -@HandlesTypes({ServerEndpoint.class}) +@HandlesTypes({ServerEndpoint.class, ServerEndpointConfig.class, +ServerApplicationConfig.class}) public class WsSci implements ServletContainerInitializer { @Override @@ -43,14 +48,62 @@ public class WsSci implements ServletCon return; } +// Group the discovered classes by type +Set serverApplicationConfigs = new HashSet<>(); +Set scannedEndpointConfigs = new HashSet<>(); +Set> scannedEndpointClazzes = new HashSet<>(); +Set> scannedPojoEndpoints = new HashSet<>(); + +try { +for (Class clazz : clazzes) { +if (ServerApplicationConfig.class.isAssignableFrom(clazz)) { +serverApplicationConfigs.add( +(ServerApplicationConfig) clazz.newInstance()); +} +if (ServerEndpointConfig.class.isAssignableFrom(clazz)) { +@SuppressWarnings("unchecked") +Class configClazz = +(Class) clazz; +ServerEndpointConfig config = configClazz.newInstance(); +scannedEndpointConfigs.add(config); +scannedEndpointClazzes.add( +(Class) config.getEndpointClass()); +} +if (clazz.isAnnotationPresent(ServerEndpoint.class)) { +scannedPojoEndpoints.add(clazz); +} +} +} catch (InstantiationException | IllegalAccessException e) { +throw new ServletException(e); +} + +// Filter the results +Set filteredEndpointConfigs = new HashSet<>(); +Set> filteredPojoEndpoints = new HashSet<>(); + +if (serverApplicationConfigs.isEmpty()) { +filteredEndpointConfigs.addAll(scannedEndpointConfigs); +filteredPojoEndpoints.addAll(scannedPojoEndpoints); +} else { +for (ServerApplicationConfig config : serverApplicationConfigs) { +filteredEndpointConfigs.addAll( +config.getEndpointConfigs(scannedEndpointClazzes)); +} +} + WsServerContainer sc = WsServerContainer.getServerContainer(); sc.setServletContext(ctx); -for (Class clazz : clazzes) { -try { +try { +// Deploy endpoints +for (ServerEndpointConfig config : filteredEndpointConfigs) { +sc.addEndpoint(config); +} +// Deploy POJOs +for (Class clazz : filteredPojoEndpoints) { sc.addEndpoint(clazz); -} catch (DeploymentException e) { -throw new ServletException(e); } +} catch (DeploymentException e) { +throw new ServletException(e); } } } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1453843&r1=1453842&r2=1453843&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Thu Mar 7 13:
svn commit: r1453845 - /tomcat/trunk/java/javax/websocket/DeploymentException.java
Author: markt Date: Thu Mar 7 13:06:46 2013 New Revision: 1453845 URL: http://svn.apache.org/r1453845 Log: Remove unnecessary TODOs Modified: tomcat/trunk/java/javax/websocket/DeploymentException.java Modified: tomcat/trunk/java/javax/websocket/DeploymentException.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/DeploymentException.java?rev=1453845&r1=1453844&r2=1453845&view=diff == --- tomcat/trunk/java/javax/websocket/DeploymentException.java (original) +++ tomcat/trunk/java/javax/websocket/DeploymentException.java Thu Mar 7 13:06:46 2013 @@ -1,32 +1,30 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * 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 javax.websocket; - -public class DeploymentException extends Exception { - -private static final long serialVersionUID = 1L; - -public DeploymentException(String message) { -super(message); -// TODO Auto-generated constructor stub -} - -public DeploymentException(String message, Throwable cause) { -super(message, cause); -// TODO Auto-generated constructor stub -} -} +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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 javax.websocket; + +public class DeploymentException extends Exception { + +private static final long serialVersionUID = 1L; + +public DeploymentException(String message) { +super(message); +} + +public DeploymentException(String message, Throwable cause) { +super(message, cause); +} +} - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1453857 - in /tomcat/trunk/java: javax/websocket/ org/apache/tomcat/websocket/
Author: markt Date: Thu Mar 7 13:21:30 2013 New Revision: 1453857 URL: http://svn.apache.org/r1453857 Log: Address some low hanging TODOs Modified: tomcat/trunk/java/javax/websocket/Session.java tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Modified: tomcat/trunk/java/javax/websocket/Session.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/Session.java?rev=1453857&r1=1453856&r2=1453857&view=diff == --- tomcat/trunk/java/javax/websocket/Session.java (original) +++ tomcat/trunk/java/javax/websocket/Session.java Thu Mar 7 13:21:30 2013 @@ -84,6 +84,10 @@ public interface Session extends Closeab RemoteEndpoint.Basic getBasicRemote(); +/** + * Provides a unique identifier for the session. This identifier should not + * be relied upon to be generated from a secure random source. + */ String getId(); /** Modified: tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java?rev=1453857&r1=1453856&r2=1453857&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java Thu Mar 7 13:21:30 2013 @@ -19,7 +19,10 @@ package org.apache.tomcat.websocket; import java.util.HashSet; import java.util.Set; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; +import org.apache.tomcat.util.res.StringManager; /** * Provides a background processing mechanism that triggers roughly once a @@ -28,6 +31,10 @@ import org.apache.tomcat.util.ExceptionU */ public class BackgroundProcessManager { +private static final Log log = +LogFactory.getLog(BackgroundProcessManager.class); +private static final StringManager sm = +StringManager.getManager(Constants.PACKAGE_NAME); private static final BackgroundProcessManager instance; @@ -82,8 +89,8 @@ public class BackgroundProcessManager { process.backgroundProcess(); } catch (Throwable t) { ExceptionUtils.handleThrowable(t); -// Ignore anything else -// TODO Log this +log.error(sm.getString( +"backgroundProcessManager.processFailed"), t); } } } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1453857&r1=1453856&r2=1453857&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Thu Mar 7 13:21:30 2013 @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +backgroundProcessManager.processFailed=A background process failed + # Note the wsFrame.* messages are used as close reasons in WebSocket control # frames and therefore must be 123 bytes (not characters) or less in length. # Messages are encoded using UTF-8 where a single character may be encoded in Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java?rev=1453857&r1=1453856&r2=1453857&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsFrameBase.java Thu Mar 7 13:21:30 2013 @@ -60,7 +60,6 @@ public abstract class WsFrameBase { onUnmappableCharacter(CodingErrorAction.REPORT); private boolean continuationExpected = false; private boolean textMessage = false; -// TODO: May need a new ByteBuffer per message private ByteBuffer messageBufferBinary; private CharBuffer messageBufferText; Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1453857&r1=1453856&r2=1453857&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original) +++ tomcat
svn commit: r1453868 - in /tomcat/trunk/java/org/apache/tomcat/websocket: LocalStrings.properties WsWebSocketContainer.java pojo/PojoMessageHandlerBase.java
Author: markt Date: Thu Mar 7 13:53:18 2013 New Revision: 1453868 URL: http://svn.apache.org/r1453868 Log: More low-hanging TODO fruit Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1453868&r1=1453867&r2=1453868&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Thu Mar 7 13:53:18 2013 @@ -56,6 +56,7 @@ wsSession.removeHandlerFailed=Unable to wsSession.unknownHandler=Unable to add the message handler [{0}] as it was for the unrecognised type [{1}] wsWebSocketContainer.httpRequestFailed=The HTTP request to initiate the WebSocket conenction failed +wsWebSocketContainer.invalidHeader=Unable to parse HTTP header as no colon is present to delimit header name and header value in [{0}]. The header has been skipped. wsWebSocketContainer.invalidStatus=The HTTP response from the server [{0}] did not permit the HTTP upgrade to WebSocket wsWebSocketContainer.invalidSubProtocol=The WebSocket server returned multiple values for the Sec-WebSocket-Protocol header wsWebSocketContainer.maxBuffer=This implementation limits the maximum size of a buffer to Integer.MAX_VALUE Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1453868&r1=1453867&r2=1453868&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Thu Mar 7 13:53:18 2013 @@ -46,6 +46,8 @@ import javax.websocket.Session; import javax.websocket.WebSocketContainer; import javax.xml.bind.DatatypeConverter; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.res.StringManager; public class WsWebSocketContainer @@ -57,6 +59,7 @@ public class WsWebSocketContainer private static final Charset iso88591 = Charset.forName("ISO-8859-1"); private static final byte[] crlf = new byte[] {13, 10}; +private final Log log = LogFactory.getLog(WsWebSocketContainer.class); private final Map, Set> endpointSessionMap = new HashMap<>(); private final Map sessions = new ConcurrentHashMap<>(); @@ -404,7 +407,7 @@ public class WsWebSocketContainer int index = line.indexOf(':'); if (index == -1) { -// TODO Log invalid header +log.warn(sm.getString("wsWebSocketContainer.invalidHeader", line)); return; } String headerName = line.substring(0, index).trim().toLowerCase(); Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java?rev=1453868&r1=1453867&r2=1453868&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java Thu Mar 7 13:53:18 2013 @@ -59,11 +59,6 @@ public abstract class PojoMessageHandler } RemoteEndpoint.Basic remoteEndpoint = session.getBasicRemote(); -// TODO: Remove this once sendXxx is implemented? -if (remoteEndpoint == null) { -return; -} - try { if (result instanceof String) { remoteEndpoint.sendText((String) result); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1453881 - /tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java
Author: markt Date: Thu Mar 7 14:15:05 2013 New Revision: 1453881 URL: http://svn.apache.org/r1453881 Log: Don't always create a new POJO instance for a Server endpoint. Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java?rev=1453881&r1=1453880&r2=1453881&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java Thu Mar 7 14:15:05 2013 @@ -44,15 +44,14 @@ public class PojoEndpoint extends Endpoi @Override -public void onOpen(Session session, -EndpointConfig endpointConfiguration) { +public void onOpen(Session session, EndpointConfig endpointConfig) { -ServerEndpointConfig sec = -(ServerEndpointConfig) endpointConfiguration; +ServerEndpointConfig sec = (ServerEndpointConfig) endpointConfig; try { -pojo = sec.getEndpointClass().newInstance(); -} catch (InstantiationException | IllegalAccessException e) { +pojo = sec.getConfigurator().getEndpointInstance( +sec.getEndpointClass()); +} catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1453885 - /tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
Author: markt Date: Thu Mar 7 14:18:58 2013 New Revision: 1453885 URL: http://svn.apache.org/r1453885 Log: More low-hanging TODO fruit Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1453885&r1=1453884&r2=1453885&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Thu Mar 7 14:18:58 2013 @@ -85,8 +85,17 @@ public class WsWebSocketContainer @Override public Session connectToServer(Class annotatedEndpointClass, URI path) throws DeploymentException { -// TODO Auto-generated method stub -return null; + +Object pojo; +try { +pojo = annotatedEndpointClass.newInstance(); +} catch (InstantiationException | IllegalAccessException e) { +throw new DeploymentException(sm.getString( +"wsWebSocketContainer.endpointCreateFail", +annotatedEndpointClass.getName()), e); +} + +return connectToServer(pojo, path); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/4045 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1453885 Blamelist: markt BUILD FAILED: failed compile_1 sincerely, -The Buildbot
svn commit: r1453911 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java
Author: markt Date: Thu Mar 7 15:13:38 2013 New Revision: 1453911 URL: http://svn.apache.org/r1453911 Log: Fix infinite loop Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java?rev=1453911&r1=1453910&r2=1453911&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/DefaultServerEndpointConfigurator.java Thu Mar 7 15:13:38 2013 @@ -30,6 +30,19 @@ public class DefaultServerEndpointConfig extends ServerEndpointConfig.Configurator { @Override +public T getEndpointInstance(Class clazz) +throws InstantiationException { +try { +return clazz.newInstance(); +} catch (IllegalAccessException e) { +InstantiationException ie = new InstantiationException(); +ie.initCause(e); +throw ie; +} +} + + +@Override public String getNegotiatedSubprotocol(List supported, List requested) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1453931 - /tomcat/trunk/java/javax/websocket/ClientEndpoint.java
Author: markt Date: Thu Mar 7 15:52:54 2013 New Revision: 1453931 URL: http://svn.apache.org/r1453931 Log: Add missing defaults Modified: tomcat/trunk/java/javax/websocket/ClientEndpoint.java Modified: tomcat/trunk/java/javax/websocket/ClientEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/ClientEndpoint.java?rev=1453931&r1=1453930&r2=1453931&view=diff == --- tomcat/trunk/java/javax/websocket/ClientEndpoint.java (original) +++ tomcat/trunk/java/javax/websocket/ClientEndpoint.java Thu Mar 7 15:52:54 2013 @@ -26,9 +26,9 @@ import javax.websocket.ClientEndpointCon @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface ClientEndpoint { -String[] subprotocols(); -Class[] decoders(); -Class[] encoders(); +String[] subprotocols() default {}; +Class[] decoders() default {}; +Class[] encoders() default {}; public Class configurator() default Configurator.class; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot success in ASF Buildbot on tomcat-trunk
The Buildbot has detected a restored build on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/4046 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1453911 Blamelist: markt Build succeeded! sincerely, -The Buildbot
Teste de Ausencia
Estarei ausente do escritório a partir de Qui, 11/08/2011 e não retornarei antes de Ter, 13/08/2030. Este e-mail sera desativado. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1454011 - in /tomcat/tc7.0.x/tags/TOMCAT_7_0_38: ./ build.properties.default
Author: markt Date: Thu Mar 7 19:13:24 2013 New Revision: 1454011 URL: http://svn.apache.org/r1454011 Log: Tag 7.0.38 Added: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ (props changed) - copied from r1454009, tomcat/tc7.0.x/trunk/ Modified: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/build.properties.default Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- bugtraq:append = false Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- bugtraq:label = Bugzilla ID (optional) Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- --- bugtraq:message (added) +++ bugtraq:message Thu Mar 7 19:13:24 2013 @@ -0,0 +1 @@ +Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=%BUGID% Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- bugtraq:number = true Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- bugtraq:url = https://issues.apache.org/bugzilla/show_bug.cgi?id=%BUGID% Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- bugtraq:warnifnoissue = false Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- --- svn:ignore (added) +++ svn:ignore Thu Mar 7 19:13:24 2013 @@ -0,0 +1,7 @@ +.* +build.properties +logs +nbproject +output +work +*.iml Propchange: tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Thu Mar 7 19:13:24 2013 @@ -0,0 +1 @@ +/tomcat/trunk:1156115-1157160,1157162-1157859,1157862-1157942,1157945-1160347,1160349-1163716,1163718-1166689,1166691-1174340,1174342-1175596,1175598-1175611,1175613-1175932,1175934-1177783,1177785-1177980,1178006-1180720,1180722-1183094,1183096-1187753,1187755,1187775,1187801,1187806,1187809,1187826-1188312,1188314-1188401,1188646-1188840,1188842-1190176,1190178-1195223,1195225-1195953,1195955,1195957-1201238,1201240-1203345,1203347-1206623,1206625-1208046,1208073,1208096,1208114,1208145,1208772,1209194-1212125,1212127-1220291,1220293,1220295-1221321,1221323-1222328,1222332-1222401,1222405-1222795,1222850-1222950,1222969-1225326,1225328-1225463,1225465,1225627,1225629-1226534,1226536-1228908,1228911-1228923,1228927-1229532,1229534-1230766,1230768-1231625,1231627-1233414,1233419-1235207,1235209-1237425,1237427,1237429-1237977,1237981,1237985,1237995,1238070,1238073,1239024-1239048,1239050-1239062,1239135,1239256,1239258-1239485,1239785-1240046,1240101,1240106,1240109,1240112 ,1240114,1240116,1240118,1240121,1240329,1240474-1240850,1240857,1241087,1241160,1241408-1241822,1241908-1241909,1241912-1242110,1242371-1292130,1292134-1292458,1292464-1292670,1292672-1292776,1292780-1293392,1293397-1297017,1297019-1297963,1297965-1299820,1300108,1300111-1300460,1300520-1300948,1300997,1301006,1301280,1302332,1302348,1302608-1302610,1302649,1302837,1303138,1303163,1303338,1303521,1303587,1303698,1303803,1303852,1304011,1304035,1304037,1304135,1304249,1304253,1304260,1304271,1304275,1304468,1304895,1304930-1304932,1305194,1305943,1305965,1306556,1306579-1306580,1307084,1307310,1307511-1307512,1307579,1307591,1307597,1310636,1310639-1310640,1310642,1310701,1311212,1311995,1327617,1327670,1331766,1333161,1333173,1333827,1334787,1335026,1335257,1335547,1335692,1335711,1335731,1336515,1336813,1336864,1336868,1336884,1337419,1337426,1337546,1337572,1337591-1337595,1337643,1337707,1337719,1337734,1337741,1337745,1338151-1338154,1338178,1342027,1342029,1342315,1342 320,1342476,1342498,1342503,1342717,1342795,1342805,1343044-1343046,1343335,1343394,1343400,1343629,1343708,1343718,1343895,1344063,1344068,1344250,1344266,1344515,1344528,1344612,1344629,1344725,1344868,1344890,1344893,1344896,1344901,1345020,1345029,1345039,1345287-1345290,1345294,1345309,1345325,1345357,1345367,1345579-1345580,1345582,1345688,1345699,1345704,1345731-1345732,1345737,1345744,1345752,1345754,1345779,1345781,1345846,1346107,1346376,1346404,1346510,1346514,1346519,1346581,1346635,1346644,1346683,1346794,1346885,1346932,1347034,1347047,1347087,1347108-1347109,1347583,1347737,1348105,1348357,1348398,1348425,1348461-1348495,1348498,1348752,1348762,1348772,1348776,1348859,1348968,1348973,1348989,1349007,1349237,1349298,1349317,1349410,1349473,1349539,1349879,1349887,1349893,1349922,1349984,1350124,1350241,1350243,1350294-1350295,1350299,1350864,1350900,1351010,1351054,1351056,1351068,1351134-1351135,1351148,1351259,1351604,1351636-1351640,1351991,1351993,1352011,1 352056,1352059,1352661,1352663,1352788,1352799,1353087,1353125,1353240,1353261,1353414,1353468,1353501,1353581,13537
svn commit: r1454012 - in /tomcat/tc7.0.x/trunk: build.properties.default res/maven/mvn.properties.default
Author: markt Date: Thu Mar 7 19:14:18 2013 New Revision: 1454012 URL: http://svn.apache.org/r1454012 Log: Update Tomcat version Modified: tomcat/tc7.0.x/trunk/build.properties.default tomcat/tc7.0.x/trunk/res/maven/mvn.properties.default Modified: tomcat/tc7.0.x/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/build.properties.default?rev=1454012&r1=1454011&r2=1454012&view=diff == --- tomcat/tc7.0.x/trunk/build.properties.default (original) +++ tomcat/tc7.0.x/trunk/build.properties.default Thu Mar 7 19:14:18 2013 @@ -27,7 +27,7 @@ # - Version Control Flags - version.major=7 version.minor=0 -version.build=38 +version.build=39 version.patch=0 version.suffix=-dev Modified: tomcat/tc7.0.x/trunk/res/maven/mvn.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/res/maven/mvn.properties.default?rev=1454012&r1=1454011&r2=1454012&view=diff == --- tomcat/tc7.0.x/trunk/res/maven/mvn.properties.default (original) +++ tomcat/tc7.0.x/trunk/res/maven/mvn.properties.default Thu Mar 7 19:14:18 2013 @@ -35,7 +35,7 @@ maven.asf.release.repo.url=https://repos maven.asf.release.repo.repositoryId=apache.releases # Release version info -maven.asf.release.deploy.version=7.0.38 +maven.asf.release.deploy.version=7.0.39 #Where do we load the libraries from tomcat.lib.path=../../output/build/lib - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Created] (MTOMCAT-214) Default attachArtifactClassifierType for AbstractStandaloneWarMojo should be war
Tim Astle created MTOMCAT-214: - Summary: Default attachArtifactClassifierType for AbstractStandaloneWarMojo should be war Key: MTOMCAT-214 URL: https://issues.apache.org/jira/browse/MTOMCAT-214 Project: Apache Tomcat Maven Plugin Issue Type: Bug Components: tomcat7 Affects Versions: 2.1 Reporter: Tim Astle Assignee: Olivier Lamy (*$^¨%`£) Priority: Minor This problem can be worked around by explicitly defining "war" for the attachArtifactClassifierType, but it should be war by default. This behaviour was discovered when deploying. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Updated] (MTOMCAT-214) Default attachArtifactClassifierType for AbstractStandaloneWarMojo should be war
[ https://issues.apache.org/jira/browse/MTOMCAT-214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tim Astle updated MTOMCAT-214: -- Attachment: AbstractStandaloneWarMojo.java.patch I think this is all needs to be changed. Running a local build now and stepping out, will add another note when confirmed. > Default attachArtifactClassifierType for AbstractStandaloneWarMojo should be > war > > > Key: MTOMCAT-214 > URL: https://issues.apache.org/jira/browse/MTOMCAT-214 > Project: Apache Tomcat Maven Plugin > Issue Type: Bug > Components: tomcat7 >Affects Versions: 2.1 >Reporter: Tim Astle >Assignee: Olivier Lamy (*$^¨%`£) >Priority: Minor > Attachments: AbstractStandaloneWarMojo.java.patch > > > This problem can be worked around by explicitly defining "war" for the > attachArtifactClassifierType, but it should be war by default. > This behaviour was discovered when deploying. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1454125 - in /tomcat/trunk: java/org/apache/tomcat/websocket/ java/org/apache/tomcat/websocket/pojo/ java/org/apache/tomcat/websocket/server/ test/org/apache/tomcat/websocket/
Author: markt Date: Thu Mar 7 22:09:15 2013 New Revision: 1454125 URL: http://svn.apache.org/r1454125 Log: Client side POJO support with a simple test case Added: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/Constants.java (with props) tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java (with props) tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointClient.java (with props) tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java - copied, changed from r1453881, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java Removed: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/LocalStrings.properties tomcat/trunk/java/org/apache/tomcat/websocket/server/LocalStrings.properties tomcat/trunk/java/org/apache/tomcat/websocket/server/UriTemplate.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServlet.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java tomcat/trunk/test/org/apache/tomcat/websocket/TesterSingleMessageClient.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties?rev=1454125&r1=1454124&r2=1454125&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/LocalStrings.properties Thu Mar 7 22:09:15 2013 @@ -55,11 +55,12 @@ wsSession.invalidHandlerTypePong=A pong wsSession.removeHandlerFailed=Unable to remove the handler [{0}] as it was not registered with this session wsSession.unknownHandler=Unable to add the message handler [{0}] as it was for the unrecognised type [{1}] +wsWebSocketContainer.defaultConfiguratorFaill=Failed to create the default configurator +wsWebSocketContainer.endpointCreateFail=Failed to create a local endpoint of type [{0}] wsWebSocketContainer.httpRequestFailed=The HTTP request to initiate the WebSocket conenction failed wsWebSocketContainer.invalidHeader=Unable to parse HTTP header as no colon is present to delimit header name and header value in [{0}]. The header has been skipped. wsWebSocketContainer.invalidStatus=The HTTP response from the server [{0}] did not permit the HTTP upgrade to WebSocket wsWebSocketContainer.invalidSubProtocol=The WebSocket server returned multiple values for the Sec-WebSocket-Protocol header wsWebSocketContainer.maxBuffer=This implementation limits the maximum size of a buffer to Integer.MAX_VALUE wsWebSocketContainer.pathNoHost=No host was specified in URI -wsWebSocketContainer.pathWrongScheme=The scheme [{0}] is not supported -wsWebSocketContainer.endpointCreateFail=Failed to create a local endpoint of type [{0}] \ No newline at end of file +wsWebSocketContainer.pathWrongScheme=The scheme [{0}] is not supported \ No newline at end of file Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1454125&r1=1454124&r2=1454125&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Thu Mar 7 22:09:15 2013 @@ -37,6 +37,7 @@ import java.util.concurrent.ConcurrentHa import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; +import javax.websocket.ClientEndpoint; import javax.websocket.ClientEndpointConfig; import javax.websocket.DeploymentException; import javax.websocket.Endpoint; @@ -49,6 +50,7 @@ import javax.xml.bind.DatatypeConverter; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.res.StringManager; +import org.apache.tomcat.websocket.pojo.PojoEndpointClient; public class WsWebSocketContainer implements WebSocketContainer, BackgroundProcess { @@ -77,8 +79,28 @@ public class WsWebSocketContainer @Override public Session connectToServer(Object pojo, URI path) throws DeploymentException { -// TODO Auto-generated method stub -return null; + +Endpoint ep = new PojoEndpointClient(pojo); + +Class configuratorClazz = +pojo.getClass().getAnnotation( +Clien
svn commit: r1454145 - /tomcat/trunk/java/org/apache/tomcat/websocket/pojo/
Author: markt Date: Thu Mar 7 22:46:49 2013 New Revision: 1454145 URL: http://svn.apache.org/r1454145 Log: Align pojo package with async->partial and basic->whole renaming in API Added: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java - copied, changed from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBase.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBinary.java - copied, changed from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBinary.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialString.java - copied, changed from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncString.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java - copied, changed from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicBase.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java - copied, changed from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicBinary.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholePong.java - copied, changed from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicPong.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeString.java - copied, changed from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicString.java Removed: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBase.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBinary.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncString.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicBase.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicBinary.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicPong.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBasicString.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java Copied: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java (from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBase.java) URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java?p2=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java&p1=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBase.java&r1=1453502&r2=1454145&rev=1454145&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java Thu Mar 7 22:46:49 2013 @@ -24,17 +24,17 @@ import javax.websocket.MessageHandler; import javax.websocket.Session; /** - * Common implementation code for the POJO asynchronous message handlers. All + * Common implementation code for the POJO partial message handlers. All * the real work is done in this class and in the superclass. * * @paramThe type of message to handle */ -public abstract class PojoMessageHandlerAsyncBase +public abstract class PojoMessageHandlerPartialBase extends PojoMessageHandlerBase implements MessageHandler.Partial { private final int indexBoolean; -public PojoMessageHandlerAsyncBase(Object pojo, Method method, +public PojoMessageHandlerPartialBase(Object pojo, Method method, Session session, Object[] params, int indexPayload, boolean unwrap, int indexBoolean, int indexSession) { super(pojo, method, session, params, indexPayload, unwrap, Copied: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBinary.java (from r1453502, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBinary.java) URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBinary.java?p2=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBinary.java&p1=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBinary.java&r1=1453502&r2=1454145&rev=1454145&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerAsyncBinary.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandl
[VOTE] Release Apache Tomcat 7.0.38
The proposed Apache Tomcat 7.0.38 release is now available for voting. It can be obtained from: https://dist.apache.org/repos/dist/dev/tomcat/tomcat-7/v7.0.38/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-002/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_38/ The proposed 7.0.38 release is: [ ] Broken - do not release [ ] Stable - go ahead and release as 7.0.38 Stable Cheers, Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1454150 - in /tomcat/trunk/java/org/apache/tomcat/websocket/pojo: PojoMessageHandlerPartialString.java PojoMessageHandlerPartialText.java PojoMessageHandlerWholeString.java PojoMessageHan
Author: markt Date: Thu Mar 7 22:51:52 2013 New Revision: 1454150 URL: http://svn.apache.org/r1454150 Log: Align pojo package with String->Text renaming in API Added: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialText.java - copied, changed from r1454145, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialString.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java - copied, changed from r1454145, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeString.java Removed: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialString.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeString.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java Copied: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialText.java (from r1454145, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialString.java) URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialText.java?p2=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialText.java&p1=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialString.java&r1=1454145&r2=1454150&rev=1454150&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialString.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialText.java Thu Mar 7 22:51:52 2013 @@ -21,12 +21,12 @@ import java.lang.reflect.Method; import javax.websocket.Session; /** - * String specific concrete partial implementation. + * Text specific concrete partial implementation. */ -public class PojoMessageHandlerPartialString +public class PojoMessageHandlerPartialText extends PojoMessageHandlerPartialBase{ -public PojoMessageHandlerPartialString(Object pojo, Method method, +public PojoMessageHandlerPartialText(Object pojo, Method method, Session session, Object[] params, int indexPayload, boolean unwrap, int indexBoolean, int indexSession) { super(pojo, method, session, params, indexPayload, unwrap, indexBoolean, Copied: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java (from r1454145, tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeString.java) URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java?p2=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java&p1=tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeString.java&r1=1454145&r2=1454150&rev=1454150&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeString.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java Thu Mar 7 22:51:52 2013 @@ -21,12 +21,12 @@ import java.lang.reflect.Method; import javax.websocket.Session; /** - * String specific concrete whole message implementation. + * Text specific concrete whole message implementation. */ -public class PojoMessageHandlerWholeString +public class PojoMessageHandlerWholeText extends PojoMessageHandlerWholeBase { -public PojoMessageHandlerWholeString(Object pojo, Method method, +public PojoMessageHandlerWholeText(Object pojo, Method method, Session session, Object[] params, int indexPayload, boolean unwrap, int indexSession) { super(pojo, method, session, params, indexPayload, unwrap, Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java?rev=1454150&r1=1454149&r2=1454150&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java Thu Mar 7 22:51:52 2013 @@ -348,7 +348,7 @@ public class PojoMethodMapping { if (indexBoolean == -1) { // Basic if (indexString != -1) { -mh = new PojoMessageHandlerWholeString(pojo, m, session, +mh = new PojoMessageHandlerWholeText(pojo, m, session, params, indexString, false, indexSession); } else if (indexByteArray != -1) { mh = new PojoMessageHandlerWholeBinary(pojo, m, session, @@ -363,7 +363,7 @@ public class
svn commit: r1454166 - in /tomcat/trunk/java/org/apache/tomcat/websocket/pojo: PojoMessageHandlerWholeBase.java PojoMessageHandlerWholeBinary.java PojoMessageHandlerWholePong.java PojoMessageHandlerWh
Author: markt Date: Thu Mar 7 23:27:12 2013 New Revision: 1454166 URL: http://svn.apache.org/r1454166 Log: Better unwrapping of messages Start to add plumbing for decoding Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholePong.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java?rev=1454166&r1=1454165&r2=1454166&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java Thu Mar 7 23:27:12 2013 @@ -42,15 +42,29 @@ public abstract class PojoMessageHandler @Override public final void onMessage(T message) { + +// Can this message be decoded? +Object payload = decode(message); + +if (payload == null) { +// Not decoded. Unwrap if required. Unwrap only ever applies to +// ByteBuffers +if (unwrap) { +ByteBuffer bb = (ByteBuffer) message; +byte[] array = new byte[bb.remaining()]; +bb.get(array); +payload = array; +} else { +payload = message; +} +} + Object[] parameters = params.clone(); if (indexSession != -1) { parameters[indexSession] = session; } -if (unwrap) { -parameters[indexPayload] = ((ByteBuffer) message).array(); -} else { -parameters[indexPayload] = message; -} +parameters[indexPayload] = payload; + Object result; try { result = method.invoke(pojo, parameters); @@ -59,4 +73,7 @@ public abstract class PojoMessageHandler } processResult(result); } + + +protected abstract Object decode(T message); } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java?rev=1454166&r1=1454165&r2=1454166&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java Thu Mar 7 23:27:12 2013 @@ -32,4 +32,10 @@ public class PojoMessageHandlerWholeBina int indexSession) { super(pojo, method, session, params, indexPayload, unwrap, indexSession); } + +@Override +protected Object decode(ByteBuffer message) { +// TODO Not implemented +return null; +} } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholePong.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholePong.java?rev=1454166&r1=1454165&r2=1454166&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholePong.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholePong.java Thu Mar 7 23:27:12 2013 @@ -32,4 +32,10 @@ public class PojoMessageHandlerWholePong int indexSession) { super(pojo, method, session, params, indexPayload, unwrap, indexSession); } + +@Override +protected Object decode(PongMessage message) { +// Never decoded +return null; +} } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java?rev=1454166&r1=1454165&r2=1454166&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java Thu Mar 7 23:27:12 2013 @@ -32,4 +32,10 @@ public class PojoMessageHandlerWholeText super(pojo, method, session, params, indexPayload, unwrap, indexSession); } + +@Override +protected Object decode(String message) { +// TODO Auto-generated method stub +return null; +} } ---
WebSocket progress report
The current status of the WebSocket implementation is largely complete. The remaining TODOs are (in roughly the order I intend to tackle them): 1. Implement decoding 2. Figure out why there are failures in Autobahn with WSS and NIO and APR/native 3. Run the TCK (as an EG member I have early access to this until 30th April mainly to test the TCK). 4. Implement WSS for the client 5. Fix all the various places where I didn't get around to / forgot to complete the plumbing 6. Read the spec carefully and check the implementation against it 7. Improve HTTP header parsing for the client As always any help is appreciated. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Commented] (MTOMCAT-214) Default attachArtifactClassifierType for AbstractStandaloneWarMojo should be war
[ https://issues.apache.org/jira/browse/MTOMCAT-214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13596565#comment-13596565 ] Tim Astle commented on MTOMCAT-214: --- Build passed, looks good. If this could be included in the next release (2.2), that'd be great. > Default attachArtifactClassifierType for AbstractStandaloneWarMojo should be > war > > > Key: MTOMCAT-214 > URL: https://issues.apache.org/jira/browse/MTOMCAT-214 > Project: Apache Tomcat Maven Plugin > Issue Type: Bug > Components: tomcat7 >Affects Versions: 2.1 >Reporter: Tim Astle >Assignee: Olivier Lamy (*$^¨%`£) >Priority: Minor > Attachments: AbstractStandaloneWarMojo.java.patch > > > This problem can be worked around by explicitly defining "war" for the > attachArtifactClassifierType, but it should be war by default. > This behaviour was discovered when deploying. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1454181 - /tomcat/trunk/java/org/apache/tomcat/websocket/pojo/
Author: markt Date: Fri Mar 8 00:09:27 2013 New Revision: 1454181 URL: http://svn.apache.org/r1454181 Log: More decoder plumbing Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointClient.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholePong.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java?rev=1454181&r1=1454180&r2=1454181&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java Fri Mar 8 00:09:27 2013 @@ -18,9 +18,11 @@ package org.apache.tomcat.websocket.pojo import java.lang.reflect.InvocationTargetException; import java.util.Map; +import java.util.Set; import javax.websocket.CloseReason; import javax.websocket.Endpoint; +import javax.websocket.EndpointConfig; import javax.websocket.MessageHandler; import javax.websocket.Session; @@ -39,7 +41,7 @@ public abstract class PojoEndpointBase e private PojoMethodMapping methodMapping; -protected final void doOnOpen(Session session) { +protected final void doOnOpen(Session session, EndpointConfig config) { PojoMethodMapping methodMapping = getMethodMapping(); Object pojo = getPojo(); Map pathParameters = getPathParameters(); @@ -55,7 +57,7 @@ public abstract class PojoEndpointBase e } } for (MessageHandler mh : methodMapping.getMessageHandlers(pojo, -pathParameters, session)) { +pathParameters, session, config)) { session.addMessageHandler(mh); } } @@ -74,6 +76,14 @@ public abstract class PojoEndpointBase e pojo.getClass().getName()), e); } } + +// Trigger the destroy method for any associated decoders +Set messageHandlers = session.getMessageHandlers(); +for (MessageHandler messageHandler : messageHandlers) { +if (messageHandler instanceof PojoMessageHandlerWholeBase) { +((PojoMessageHandlerWholeBase) messageHandler).onClose(); +} +} } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointClient.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointClient.java?rev=1454181&r1=1454180&r2=1454181&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointClient.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointClient.java Fri Mar 8 00:09:27 2013 @@ -32,6 +32,6 @@ public class PojoEndpointClient extends @Override public void onOpen(Session session, EndpointConfig config) { -doOnOpen(session); +doOnOpen(session, config); } } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java?rev=1454181&r1=1454180&r2=1454181&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java Fri Mar 8 00:09:27 2013 @@ -66,6 +66,6 @@ public class PojoEndpointServer extends POJO_METHOD_MAPPING_KEY); setMethodMapping(methodMapping); -doOnOpen(session); +doOnOpen(session, endpointConfig); } } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java?rev=1454181&r1=1454180&r2=1454181&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java Fri Mar 8 00:09:27 2013 @@ -76,4 +76,5 @@ public abstract class PojoMessageHandler