You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/10/26 11:21:04 UTC
svn commit: r588579 - in /mina/trunk:
core/src/main/java/org/apache/mina/common/
core/src/main/java/org/apache/mina/filter/ssl/
core/src/main/java/org/apache/mina/filter/stream/
core/src/main/java/org/apache/mina/transport/vmpipe/ core/src/test/java/or...
Author: trustin
Date: Fri Oct 26 02:21:01 2007
New Revision: 588579
URL: http://svn.apache.org/viewvc?rev=588579&view=rev
Log:
* Generified IoFutureListener - no need to down cast IoFuture anymore!
* Fixed some compiler warnings
* Resolved issue: DIRMINA-432 (IoService method for writing Object to all the managed IoSession)
** Added CompositeIoFuture
** Added MessageBroadcaster
** NOTE: I found returning Map<IoSession, WriteFuture> is not necessary because the caller already knows which session is associated with which WriteFuture.
Added:
mina/trunk/core/src/main/java/org/apache/mina/common/CompositeIoFuture.java (with props)
mina/trunk/core/src/main/java/org/apache/mina/common/MessageBroadcaster.java (with props)
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/CloseFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultCloseFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoFutureListener.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java
mina/trunk/core/src/main/java/org/apache/mina/common/WriteFuture.java
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/stream/StreamWriteFilter.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
mina/trunk/core/src/test/java/org/apache/mina/common/FutureTest.java
mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java
mina/trunk/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/CommandSyntaxException.java
mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java
mina/trunk/example/src/main/java/org/apache/mina/example/udp/client/MemMonClient.java
mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/DefaultIoFilterChainBuilderFactoryBeanTest.java
mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/IoFilterMappingTest.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndCallException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndContinueException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndGotoException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndReturnException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/NoSuchStateException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachine.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineCreationException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/UnhandledEventException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/AmbiguousMethodException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodInvocationException.java
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/NoSuchMethodException.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java Fri Oct 26 02:21:01 2007
@@ -105,10 +105,9 @@
// In case that ConnectFuture.cancel() is invoked before
// setSession() is invoked, add a listener that closes the
// connection immediately on cancellation.
- future.addListener(new IoFutureListener() {
- public void operationComplete(IoFuture future) {
- ConnectFuture f = (ConnectFuture) future;
- if (f.isCanceled()) {
+ future.addListener(new IoFutureListener<ConnectFuture>() {
+ public void operationComplete(ConnectFuture future) {
+ if (future.isCanceled()) {
session.close();
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java Fri Oct 26 02:21:01 2007
@@ -19,6 +19,9 @@
*/
package org.apache.mina.common;
+import java.util.AbstractSet;
+import java.util.Iterator;
+import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
@@ -190,6 +193,25 @@
protected void increaseWrittenMessages() {
writtenMessages.incrementAndGet();
scheduledWriteMessages.decrementAndGet();
+ }
+
+ public Set<WriteFuture> broadcast(Object message) {
+ // Convert to Set. We do not return a List here because only the
+ // direct caller of MessageBroadcaster knows the order of write
+ // operations.
+ final List<WriteFuture> futures = MessageBroadcaster.broadcast(
+ message, getManagedSessions());
+ return new AbstractSet<WriteFuture>() {
+ @Override
+ public Iterator<WriteFuture> iterator() {
+ return futures.iterator();
+ }
+
+ @Override
+ public int size() {
+ return futures.size();
+ }
+ };
}
protected static class ServiceOperationFuture extends DefaultIoFuture {
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java Fri Oct 26 02:21:01 2007
@@ -44,9 +44,9 @@
*/
public abstract class AbstractIoSession implements IoSession {
- private static final IoFutureListener SCHEDULED_COUNTER_RESETTER =
- new IoFutureListener() {
- public void operationComplete(IoFuture future) {
+ private static final IoFutureListener<CloseFuture> SCHEDULED_COUNTER_RESETTER =
+ new IoFutureListener<CloseFuture>() {
+ public void operationComplete(CloseFuture future) {
AbstractIoSession s = (AbstractIoSession) future.getSession();
s.scheduledWriteBytes.set(0);
s.scheduledWriteMessages.set(0);
@@ -245,8 +245,8 @@
if (message instanceof File) {
final FileChannel finalChannel = channel;
- future.addListener(new IoFutureListener() {
- public void operationComplete(IoFuture future) {
+ future.addListener(new IoFutureListener<WriteFuture>() {
+ public void operationComplete(WriteFuture future) {
try {
finalChannel.close();
} catch (IOException e) {
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/CloseFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/CloseFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/CloseFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/CloseFuture.java Fri Oct 26 02:21:01 2007
@@ -52,7 +52,7 @@
CloseFuture awaitUninterruptibly();
- CloseFuture addListener(IoFutureListener listener);
+ CloseFuture addListener(IoFutureListener<?> listener);
- CloseFuture removeListener(IoFutureListener listener);
+ CloseFuture removeListener(IoFutureListener<?> listener);
}
Added: mina/trunk/core/src/main/java/org/apache/mina/common/CompositeIoFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/CompositeIoFuture.java?rev=588579&view=auto
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/CompositeIoFuture.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/CompositeIoFuture.java Fri Oct 26 02:21:01 2007
@@ -0,0 +1,41 @@
+package org.apache.mina.common;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * An {@link IoFuture} of {@link IoFuture}s. It is useful when you want to
+ * get notified when all {@link IoFuture}s are complete.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ *
+ * @param <E> the type of the child futures.
+ */
+public class CompositeIoFuture<E extends IoFuture> extends DefaultIoFuture {
+
+ private final NotifyingListener listener = new NotifyingListener();
+ private final AtomicInteger unnotified = new AtomicInteger();
+ private volatile boolean constructionFinished;
+
+ public CompositeIoFuture(Iterable<E> children) {
+ super(null);
+
+ for (E f: children) {
+ f.addListener(listener);
+ unnotified.incrementAndGet();
+ }
+
+ constructionFinished = true;
+ if (unnotified.get() == 0) {
+ setValue(true);
+ }
+ }
+
+ private class NotifyingListener implements IoFutureListener<IoFuture> {
+ public void operationComplete(IoFuture future) {
+ if (unnotified.decrementAndGet() == 0 && constructionFinished) {
+ setValue(true);
+ }
+ }
+ }
+}
Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/CompositeIoFuture.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/CompositeIoFuture.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java Fri Oct 26 02:21:01 2007
@@ -86,7 +86,7 @@
ConnectFuture awaitUninterruptibly();
- ConnectFuture addListener(IoFutureListener listener);
+ ConnectFuture addListener(IoFutureListener<?> listener);
- ConnectFuture removeListener(IoFutureListener listener);
+ ConnectFuture removeListener(IoFutureListener<?> listener);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultCloseFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultCloseFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultCloseFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultCloseFuture.java Fri Oct 26 02:21:01 2007
@@ -57,12 +57,12 @@
}
@Override
- public CloseFuture addListener(IoFutureListener listener) {
+ public CloseFuture addListener(IoFutureListener<?> listener) {
return (CloseFuture) super.addListener(listener);
}
@Override
- public CloseFuture removeListener(IoFutureListener listener) {
+ public CloseFuture removeListener(IoFutureListener<?> listener) {
return (CloseFuture) super.removeListener(listener);
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java Fri Oct 26 02:21:01 2007
@@ -102,12 +102,12 @@
}
@Override
- public ConnectFuture addListener(IoFutureListener listener) {
+ public ConnectFuture addListener(IoFutureListener<?> listener) {
return (ConnectFuture) super.addListener(listener);
}
@Override
- public ConnectFuture removeListener(IoFutureListener listener) {
+ public ConnectFuture removeListener(IoFutureListener<?> listener) {
return (ConnectFuture) super.removeListener(listener);
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java Fri Oct 26 02:21:01 2007
@@ -36,8 +36,8 @@
private final IoSession session;
private final Object lock;
- private IoFutureListener firstListener;
- private List<IoFutureListener> otherListeners;
+ private IoFutureListener<?> firstListener;
+ private List<IoFutureListener<?>> otherListeners;
private Object result;
private boolean ready;
private int waiters;
@@ -224,7 +224,7 @@
}
}
- public IoFuture addListener(IoFutureListener listener) {
+ public IoFuture addListener(IoFutureListener<?> listener) {
if (listener == null) {
throw new NullPointerException("listener");
}
@@ -238,7 +238,7 @@
firstListener = listener;
} else {
if (otherListeners == null) {
- otherListeners = new ArrayList<IoFutureListener>(1);
+ otherListeners = new ArrayList<IoFutureListener<?>>(1);
}
otherListeners.add(listener);
}
@@ -251,7 +251,7 @@
return this;
}
- public IoFuture removeListener(IoFutureListener listener) {
+ public IoFuture removeListener(IoFutureListener<?> listener) {
if (listener == null) {
throw new NullPointerException("listener");
}
@@ -282,7 +282,7 @@
firstListener = null;
if (otherListeners != null) {
- for (IoFutureListener l : otherListeners) {
+ for (IoFutureListener<?> l : otherListeners) {
notifyListener(l);
}
otherListeners = null;
@@ -290,6 +290,7 @@
}
}
+ @SuppressWarnings("unchecked")
private void notifyListener(IoFutureListener l) {
try {
l.operationComplete(this);
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteFuture.java Fri Oct 26 02:21:01 2007
@@ -74,12 +74,12 @@
}
@Override
- public WriteFuture addListener(IoFutureListener listener) {
+ public WriteFuture addListener(IoFutureListener<?> listener) {
return (WriteFuture) super.addListener(listener);
}
@Override
- public WriteFuture removeListener(IoFutureListener listener) {
+ public WriteFuture removeListener(IoFutureListener<?> listener) {
return (WriteFuture) super.removeListener(listener);
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java Fri Oct 26 02:21:01 2007
@@ -52,12 +52,12 @@
return true;
}
- public WriteFuture addListener(IoFutureListener listener) {
+ public WriteFuture addListener(IoFutureListener<?> listener) {
throw new IllegalStateException(
"You can't add a listener to a dummy future.");
}
- public WriteFuture removeListener(IoFutureListener listener) {
+ public WriteFuture removeListener(IoFutureListener<?> listener) {
throw new IllegalStateException(
"You can't add a listener to a dummy future.");
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoFuture.java Fri Oct 26 02:21:01 2007
@@ -94,11 +94,11 @@
* Adds an event <tt>listener</tt> which is notified when
* the state of this future changes.
*/
- IoFuture addListener(IoFutureListener listener);
+ IoFuture addListener(IoFutureListener<?> listener);
/**
* Removes an existing event <tt>listener</tt> which is notified when
* the state of this future changes.
*/
- IoFuture removeListener(IoFutureListener listener);
+ IoFuture removeListener(IoFutureListener<?> listener);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoFutureListener.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoFutureListener.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoFutureListener.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoFutureListener.java Fri Oct 26 02:21:01 2007
@@ -28,12 +28,12 @@
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
-public interface IoFutureListener extends EventListener {
+public interface IoFutureListener<F extends IoFuture> extends EventListener {
/**
* An {@link IoFutureListener} that closes the {@link IoSession} which is
* associated with the specified {@link IoFuture}.
*/
- static IoFutureListener CLOSE = new IoFutureListener() {
+ static IoFutureListener<IoFuture> CLOSE = new IoFutureListener<IoFuture>() {
public void operationComplete(IoFuture future) {
future.getSession().close();
}
@@ -46,5 +46,5 @@
* @param future The source {@link IoFuture} which called this
* callback.
*/
- void operationComplete(IoFuture future);
+ void operationComplete(F future);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java Fri Oct 26 02:21:01 2007
@@ -167,4 +167,10 @@
*/
long getScheduledWriteMessages();
+ /**
+ * Writes the specified {@code message} to all the {@link IoSession}s
+ * managed by this service. This method is a convenience shortcut for
+ * {@link IoSessions#broadcast(Object, java.util.Collection)}.
+ */
+ Set<WriteFuture> broadcast(Object message);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java Fri Oct 26 02:21:01 2007
@@ -200,7 +200,7 @@
}
Object lock = new Object();
- IoFutureListener listener = new LockNotifyingListener(lock);
+ IoFutureListener<IoFuture> listener = new LockNotifyingListener(lock);
for (IoSession s : managedSessions) {
s.close().addListener(listener);
@@ -217,7 +217,7 @@
}
}
- private static class LockNotifyingListener implements IoFutureListener {
+ private static class LockNotifyingListener implements IoFutureListener<IoFuture> {
private final Object lock;
public LockNotifyingListener(Object lock) {
Added: mina/trunk/core/src/main/java/org/apache/mina/common/MessageBroadcaster.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/MessageBroadcaster.java?rev=588579&view=auto
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/MessageBroadcaster.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/MessageBroadcaster.java Fri Oct 26 02:21:01 2007
@@ -0,0 +1,110 @@
+/*
+ * 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 org.apache.mina.common;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * A utility class that provides various convenience methods related with
+ * {@link IoSession} and {@link IoFuture}.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ */
+public class MessageBroadcaster {
+
+ private static final IoSession[] EMPTY_SESSIONS = new IoSession[0];
+
+ /**
+ * Writes the specified {@code message} to the specified {@code sessions}.
+ * If the specified {@code message} is an {@link IoBuffer}, the buffer is
+ * automatically duplicated using {@link IoBuffer#duplicate()}.
+ */
+ public static List<WriteFuture> broadcast(Object message, Collection<IoSession> sessions) {
+ List<WriteFuture> answer = new ArrayList<WriteFuture>(sessions.size());
+ broadcast(message, sessions.iterator(), answer);
+ return answer;
+ }
+
+ /**
+ * Writes the specified {@code message} to the specified {@code sessions}.
+ * If the specified {@code message} is an {@link IoBuffer}, the buffer is
+ * automatically duplicated using {@link IoBuffer#duplicate()}.
+ */
+ public static List<WriteFuture> broadcast(Object message, Iterable<IoSession> sessions) {
+ List<WriteFuture> answer = new ArrayList<WriteFuture>();
+ broadcast(message, sessions.iterator(), answer);
+ return answer;
+ }
+
+ /**
+ * Writes the specified {@code message} to the specified {@code sessions}.
+ * If the specified {@code message} is an {@link IoBuffer}, the buffer is
+ * automatically duplicated using {@link IoBuffer#duplicate()}.
+ */
+ public static List<WriteFuture> broadcast(Object message, Iterator<IoSession> sessions) {
+ List<WriteFuture> answer = new ArrayList<WriteFuture>();
+ broadcast(message, sessions, answer);
+ return answer;
+ }
+
+ /**
+ * Writes the specified {@code message} to the specified {@code sessions}.
+ * If the specified {@code message} is an {@link IoBuffer}, the buffer is
+ * automatically duplicated using {@link IoBuffer#duplicate()}.
+ */
+ public static List<WriteFuture> broadcast(Object message, IoSession... sessions) {
+ if (sessions == null) {
+ sessions = EMPTY_SESSIONS;
+ }
+
+ List<WriteFuture> answer = new ArrayList<WriteFuture>(sessions.length);
+ if (message instanceof IoBuffer) {
+ for (IoSession s: sessions) {
+ answer.add(s.write(((IoBuffer) message).duplicate()));
+ }
+ } else {
+ for (IoSession s: sessions) {
+ answer.add(s.write(message));
+ }
+ }
+ return answer;
+ }
+
+ private static void broadcast(Object message, Iterator<IoSession> sessions, Collection<WriteFuture> answer) {
+ if (message instanceof IoBuffer) {
+ while (sessions.hasNext()) {
+ IoSession s = sessions.next();
+ answer.add(s.write(((IoBuffer) message).duplicate()));
+ }
+ } else {
+ while (sessions.hasNext()) {
+ IoSession s = sessions.next();
+ answer.add(s.write(message));
+ }
+ }
+ }
+
+ private MessageBroadcaster() {
+ }
+}
Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/MessageBroadcaster.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: mina/trunk/core/src/main/java/org/apache/mina/common/MessageBroadcaster.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/WriteFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/WriteFuture.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/WriteFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/WriteFuture.java Fri Oct 26 02:21:01 2007
@@ -59,7 +59,7 @@
WriteFuture awaitUninterruptibly();
- WriteFuture addListener(IoFutureListener listener);
+ WriteFuture addListener(IoFutureListener<?> listener);
- WriteFuture removeListener(IoFutureListener listener);
+ WriteFuture removeListener(IoFutureListener<?> listener);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java Fri Oct 26 02:21:01 2007
@@ -552,7 +552,7 @@
synchronized (handler) {
if (isSslStarted(session)) {
future = initiateClosure(nextFilter, session);
- future.addListener(new IoFutureListener() {
+ future.addListener(new IoFutureListener<IoFuture>() {
public void operationComplete(IoFuture future) {
nextFilter.filterClose(session);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/stream/StreamWriteFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/stream/StreamWriteFilter.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/stream/StreamWriteFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/stream/StreamWriteFilter.java Fri Oct 26 02:21:01 2007
@@ -31,7 +31,6 @@
import org.apache.mina.common.IoFilterChain;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.WriteRequest;
-import org.apache.mina.common.IoFilter.NextFilter;
/**
* Filter implementation which makes it possible to write {@link InputStream}
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Fri Oct 26 02:21:01 2007
@@ -127,7 +127,7 @@
private static int nextLocalPort = -1;
- private static final IoFutureListener LOCAL_ADDRESS_RECLAIMER = new LocalAddressReclaimer();
+ private static final IoFutureListener<IoFuture> LOCAL_ADDRESS_RECLAIMER = new LocalAddressReclaimer();
private static VmPipeAddress nextLocalAddress() throws IOException {
synchronized (TAKEN_LOCAL_ADDRESSES) {
@@ -146,7 +146,7 @@
throw new IOException("Can't assign a local VM pipe port.");
}
- private static class LocalAddressReclaimer implements IoFutureListener {
+ private static class LocalAddressReclaimer implements IoFutureListener<IoFuture> {
public void operationComplete(IoFuture future) {
synchronized (TAKEN_LOCAL_ADDRESSES) {
TAKEN_LOCAL_ADDRESSES.remove(future.getSession()
Modified: mina/trunk/core/src/test/java/org/apache/mina/common/FutureTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/common/FutureTest.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/common/FutureTest.java (original)
+++ mina/trunk/core/src/test/java/org/apache/mina/common/FutureTest.java Fri Oct 26 02:21:01 2007
@@ -222,7 +222,7 @@
}
}
- private static class TestListener implements IoFutureListener {
+ private static class TestListener implements IoFutureListener<IoFuture> {
private IoFuture notifiedFuture;
public void operationComplete(IoFuture future) {
Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java (original)
+++ mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java Fri Oct 26 02:21:01 2007
@@ -558,11 +558,11 @@
return true;
}
- public WriteFuture addListener(IoFutureListener listener) {
+ public WriteFuture addListener(IoFutureListener<?> listener) {
return this;
}
- public WriteFuture removeListener(IoFutureListener listener) {
+ public WriteFuture removeListener(IoFutureListener<?> listener) {
return this;
}
Modified: mina/trunk/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java Fri Oct 26 02:21:01 2007
@@ -23,7 +23,6 @@
import org.apache.mina.common.ConnectFuture;
import org.apache.mina.common.IoConnector;
-import org.apache.mina.common.IoFuture;
import org.apache.mina.common.IoFutureListener;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.RuntimeIoException;
@@ -53,9 +52,8 @@
@Override
public void sessionOpened(final IoSession session) throws Exception {
- connector.connect(remoteAddress).addListener(new IoFutureListener() {
- public void operationComplete(IoFuture f) {
- ConnectFuture future = (ConnectFuture) f;
+ connector.connect(remoteAddress).addListener(new IoFutureListener<ConnectFuture>() {
+ public void operationComplete(ConnectFuture future) {
try {
future.getSession().setAttachment(session);
session.setAttachment(future.getSession());
Modified: mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/CommandSyntaxException.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/CommandSyntaxException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/CommandSyntaxException.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/CommandSyntaxException.java Fri Oct 26 02:21:01 2007
@@ -29,6 +29,8 @@
* @version $Rev$, $Date$
*/
public class CommandSyntaxException extends ProtocolDecoderException {
+ private static final long serialVersionUID = 4903547501059093765L;
+
private final String message;
public CommandSyntaxException(String message) {
Modified: mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java Fri Oct 26 02:21:01 2007
@@ -21,7 +21,6 @@
import static org.apache.mina.statemachine.mina.Events.*;
-import org.apache.mina.common.IoFuture;
import org.apache.mina.common.IoFutureListener;
import org.apache.mina.common.IoSession;
import org.apache.mina.statemachine.StateControl;
@@ -121,11 +120,7 @@
@Handler(on = MESSAGE_RECEIVED, in = ROOT)
public void quit(TapeDeckContext context, IoSession session, QuitCommand cmd) {
- session.write("+ Bye! Please come back!").addListener(new IoFutureListener() {
- public void operationComplete(IoFuture future) {
- future.getSession().close();
- }
- });
+ session.write("+ Bye! Please come back!").addListener(IoFutureListener.CLOSE);
}
@Handler(on = MESSAGE_RECEIVED, in = ROOT, weight = 10)
Modified: mina/trunk/example/src/main/java/org/apache/mina/example/udp/client/MemMonClient.java
URL: http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/udp/client/MemMonClient.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/udp/client/MemMonClient.java (original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/udp/client/MemMonClient.java Fri Oct 26 02:21:01 2007
@@ -21,11 +21,10 @@
import java.net.InetSocketAddress;
-import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.ConnectFuture;
import org.apache.mina.common.IdleStatus;
+import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.IoConnector;
-import org.apache.mina.common.IoFuture;
import org.apache.mina.common.IoFutureListener;
import org.apache.mina.common.IoHandlerAdapter;
import org.apache.mina.common.IoSession;
@@ -68,10 +67,9 @@
connFuture.awaitUninterruptibly();
log.debug("Adding a future listener.");
- connFuture.addListener(new IoFutureListener() {
- public void operationComplete(IoFuture future) {
- ConnectFuture connFuture = (ConnectFuture) future;
- if (connFuture.isConnected()) {
+ connFuture.addListener(new IoFutureListener<ConnectFuture>() {
+ public void operationComplete(ConnectFuture future) {
+ if (future.isConnected()) {
log.debug("...connected");
session = future.getSession();
try {
Modified: mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/DefaultIoFilterChainBuilderFactoryBeanTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/DefaultIoFilterChainBuilderFactoryBeanTest.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/DefaultIoFilterChainBuilderFactoryBeanTest.java (original)
+++ mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/DefaultIoFilterChainBuilderFactoryBeanTest.java Fri Oct 26 02:21:01 2007
@@ -49,9 +49,9 @@
mockChain = MockControl.createControl(IoFilterChain.class);
chain = (IoFilterChain) mockChain.getMock();
filters = new IoFilter[] {
- (IoFilter) MockControl.createControl(IoFilter.class).getMock(),
- (IoFilter) MockControl.createControl(IoFilter.class).getMock(),
- (IoFilter) MockControl.createControl(IoFilter.class).getMock() };
+ MockControl.createControl(IoFilter.class).getMock(),
+ MockControl.createControl(IoFilter.class).getMock(),
+ MockControl.createControl(IoFilter.class).getMock() };
}
public void testUnnamedFilters() throws Exception {
Modified: mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/IoFilterMappingTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/IoFilterMappingTest.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/IoFilterMappingTest.java (original)
+++ mina/trunk/integration-spring/src/test/java/org/apache/mina/integration/spring/IoFilterMappingTest.java Fri Oct 26 02:21:01 2007
@@ -32,8 +32,7 @@
*/
public class IoFilterMappingTest extends TestCase {
public void testConstructor() throws Exception {
- IoFilter filter = (IoFilter) MockControl.createControl(IoFilter.class)
- .getMock();
+ IoFilter filter = MockControl.createControl(IoFilter.class).getMock();
try {
new IoFilterMapping(null, filter);
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndCallException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndCallException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndCallException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndCallException.java Fri Oct 26 02:21:01 2007
@@ -26,6 +26,8 @@
* @version $Rev$, $Date$
*/
class BreakAndCallException extends BreakException {
+ private static final long serialVersionUID = -5973306926764652458L;
+
private final String stateId;
private final String returnToStateId;
private final boolean now;
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndContinueException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndContinueException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndContinueException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndContinueException.java Fri Oct 26 02:21:01 2007
@@ -26,4 +26,5 @@
* @version $Rev$, $Date$
*/
class BreakAndContinueException extends BreakException {
+ private static final long serialVersionUID = -6166471981111377775L;
}
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndGotoException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndGotoException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndGotoException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndGotoException.java Fri Oct 26 02:21:01 2007
@@ -26,6 +26,8 @@
* @version $Rev$, $Date$
*/
class BreakAndGotoException extends BreakException {
+ private static final long serialVersionUID = 711671882187950113L;
+
private final String stateId;
private final boolean now;
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndReturnException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndReturnException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndReturnException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakAndReturnException.java Fri Oct 26 02:21:01 2007
@@ -26,6 +26,8 @@
* @version $Rev$, $Date$
*/
class BreakAndReturnException extends BreakException {
+ private static final long serialVersionUID = -2662100444922292796L;
+
private final boolean now;
public BreakAndReturnException(boolean now) {
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/BreakException.java Fri Oct 26 02:21:01 2007
@@ -29,6 +29,8 @@
* @version $Rev$, $Date$
*/
public class BreakException extends RuntimeException {
+ private static final long serialVersionUID = -1898782004087949199L;
+
protected BreakException() {
}
}
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/NoSuchStateException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/NoSuchStateException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/NoSuchStateException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/NoSuchStateException.java Fri Oct 26 02:21:01 2007
@@ -27,6 +27,7 @@
* @version $Rev$, $Date$
*/
public class NoSuchStateException extends RuntimeException {
+ private static final long serialVersionUID = -886869696039996478L;
/**
* Creates a new instance.
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachine.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachine.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachine.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachine.java Fri Oct 26 02:21:01 2007
@@ -156,7 +156,7 @@
private void processEvents(LinkedList<Event> eventQueue) {
while (!eventQueue.isEmpty()) {
- Event event = (Event) eventQueue.removeFirst();
+ Event event = eventQueue.removeFirst();
StateContext context = event.getContext();
handle(context.getCurrentState(), event);
}
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineCreationException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineCreationException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineCreationException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineCreationException.java Fri Oct 26 02:21:01 2007
@@ -28,6 +28,7 @@
*/
public class StateMachineCreationException extends RuntimeException {
+ private static final long serialVersionUID = 4103502727376992746L;
/**
* Creates a new instance.
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/UnhandledEventException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/UnhandledEventException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/UnhandledEventException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/UnhandledEventException.java Fri Oct 26 02:21:01 2007
@@ -26,6 +26,8 @@
* @version $Rev$, $Date$
*/
public class UnhandledEventException extends RuntimeException {
+ private static final long serialVersionUID = -717373229954175430L;
+
private final Event event;
public UnhandledEventException(Event event) {
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/AmbiguousMethodException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/AmbiguousMethodException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/AmbiguousMethodException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/AmbiguousMethodException.java Fri Oct 26 02:21:01 2007
@@ -28,6 +28,8 @@
*/
public class AmbiguousMethodException extends RuntimeException {
+ private static final long serialVersionUID = -3926582218186692464L;
+
/**
* Creates a new instance using the specified method name as message.
*
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodInvocationException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodInvocationException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodInvocationException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodInvocationException.java Fri Oct 26 02:21:01 2007
@@ -29,6 +29,7 @@
* @version $Rev$, $Date$
*/
public class MethodInvocationException extends RuntimeException {
+ private static final long serialVersionUID = 4288548621384649704L;
/**
* Creates a new instance for the specified {@link Method} and
Modified: mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/NoSuchMethodException.java
URL: http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/NoSuchMethodException.java?rev=588579&r1=588578&r2=588579&view=diff
==============================================================================
--- mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/NoSuchMethodException.java (original)
+++ mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/NoSuchMethodException.java Fri Oct 26 02:21:01 2007
@@ -28,6 +28,7 @@
* @version $Rev$, $Date$
*/
public class NoSuchMethodException extends RuntimeException {
+ private static final long serialVersionUID = -8877979996892420479L;
/**
* Creates a new instance using the specified method name as message.