Merge branch '3' of ssh://github.com/netty/netty into 3

This commit is contained in:
norman 2012-06-01 09:26:41 +02:00
commit 9d9f96bb5e
224 changed files with 1644 additions and 1579 deletions

View File

@ -0,0 +1,24 @@
/*
* Copyright 2012 The Netty Project
*
* The Netty Project 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.jboss.netty.channel.socket;
/**
* Internet Protocol (IP) families
*/
public enum InternetProtocolFamily {
IPv4,
IPv6;
}

View File

@ -17,18 +17,6 @@ package org.jboss.netty.channel.socket.nio;
import static org.jboss.netty.channel.Channels.*; import static org.jboss.netty.channel.Channels.*;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelException;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.socket.Worker;
import org.jboss.netty.channel.socket.nio.SocketSendBufferPool.SendBuffer;
import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory;
import org.jboss.netty.util.ThreadRenamingRunnable;
import org.jboss.netty.util.internal.DeadLockProofWorker;
import org.jboss.netty.util.internal.QueueFactory;
import java.io.IOException; import java.io.IOException;
import java.nio.channels.AsynchronousCloseException; import java.nio.channels.AsynchronousCloseException;
import java.nio.channels.CancelledKeyException; import java.nio.channels.CancelledKeyException;
@ -47,6 +35,18 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelException;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.socket.Worker;
import org.jboss.netty.channel.socket.nio.SocketSendBufferPool.SendBuffer;
import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory;
import org.jboss.netty.util.ThreadRenamingRunnable;
import org.jboss.netty.util.internal.DeadLockProofWorker;
import org.jboss.netty.util.internal.QueueFactory;
abstract class AbstractNioWorker implements Worker { abstract class AbstractNioWorker implements Worker {
@ -157,7 +157,7 @@ abstract class AbstractNioWorker implements Worker {
if (!started) { if (!started) {
// Open a selector if this worker didn't start yet. // Open a selector if this worker didn't start yet.
try { try {
this.selector = Selector.open(); selector = Selector.open();
} catch (Throwable t) { } catch (Throwable t) {
throw new ChannelException("Failed to create a selector.", t); throw new ChannelException("Failed to create a selector.", t);
} }
@ -175,7 +175,7 @@ abstract class AbstractNioWorker implements Worker {
} catch (Throwable t) { } catch (Throwable t) {
logger.warn("Failed to close a selector.", t); logger.warn("Failed to close a selector.", t);
} }
this.selector = null; selector = null;
// The method will return to the caller at this point. // The method will return to the caller at this point.
} }
} }

View File

@ -16,14 +16,14 @@
package org.jboss.netty.channel.socket.nio; package org.jboss.netty.channel.socket.nio;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicInteger;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.socket.Worker; import org.jboss.netty.channel.socket.Worker;
import org.jboss.netty.util.ExternalResourceReleasable; import org.jboss.netty.util.ExternalResourceReleasable;
import org.jboss.netty.util.internal.ExecutorUtil; import org.jboss.netty.util.internal.ExecutorUtil;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicInteger;
/** /**
* Abstract base class for {@link WorkerPool} implementations that create the {@link Worker}'s up-front and return them in a "fair" fashion when calling * Abstract base class for {@link WorkerPool} implementations that create the {@link Worker}'s up-front and return them in a "fair" fashion when calling
* {@link #nextWorker()} * {@link #nextWorker()}

View File

@ -15,7 +15,7 @@
*/ */
package org.jboss.netty.channel.socket.nio; package org.jboss.netty.channel.socket.nio;
import static org.jboss.netty.channel.Channels.fireChannelOpen; import static org.jboss.netty.channel.Channels.*;
import java.nio.channels.SocketChannel; import java.nio.channels.SocketChannel;

View File

@ -38,6 +38,7 @@ import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelSink; import org.jboss.netty.channel.ChannelSink;
import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.socket.DatagramChannelConfig; import org.jboss.netty.channel.socket.DatagramChannelConfig;
import org.jboss.netty.channel.socket.InternetProtocolFamily;
import org.jboss.netty.util.internal.DetectionUtil; import org.jboss.netty.util.internal.DetectionUtil;
/** /**
@ -46,34 +47,15 @@ import org.jboss.netty.util.internal.DetectionUtil;
public final class NioDatagramChannel extends AbstractNioChannel<DatagramChannel> public final class NioDatagramChannel extends AbstractNioChannel<DatagramChannel>
implements org.jboss.netty.channel.socket.DatagramChannel { implements org.jboss.netty.channel.socket.DatagramChannel {
/**
* The supported ProtocolFamily by UDP
*
*/
public enum ProtocolFamily {
INET,
INET6
}
/** /**
* The {@link DatagramChannelConfig}. * The {@link DatagramChannelConfig}.
*/ */
private final NioDatagramChannelConfig config; private final NioDatagramChannelConfig config;
private Map<InetAddress, List<MembershipKey>> memberships; private Map<InetAddress, List<MembershipKey>> memberships;
/**
* Use {@link #NioDatagramChannel(ChannelFactory, ChannelPipeline, ChannelSink, NioDatagramWorker, ProtocolFamily)}
*/
@Deprecated
NioDatagramChannel(final ChannelFactory factory, NioDatagramChannel(final ChannelFactory factory,
final ChannelPipeline pipeline, final ChannelSink sink, final ChannelPipeline pipeline, final ChannelSink sink,
final NioDatagramWorker worker) { final NioDatagramWorker worker, InternetProtocolFamily family) {
this(factory, pipeline, sink, worker, null);
}
NioDatagramChannel(final ChannelFactory factory,
final ChannelPipeline pipeline, final ChannelSink sink,
final NioDatagramWorker worker, ProtocolFamily family) {
super(null, factory, pipeline, sink, worker, openNonBlockingChannel(family)); super(null, factory, pipeline, sink, worker, openNonBlockingChannel(family));
config = new DefaultNioDatagramChannelConfig(channel); config = new DefaultNioDatagramChannelConfig(channel);
@ -81,7 +63,7 @@ public final class NioDatagramChannel extends AbstractNioChannel<DatagramChannel
} }
private static DatagramChannel openNonBlockingChannel(ProtocolFamily family) { private static DatagramChannel openNonBlockingChannel(InternetProtocolFamily family) {
try { try {
final DatagramChannel channel; final DatagramChannel channel;
@ -95,11 +77,11 @@ public final class NioDatagramChannel extends AbstractNioChannel<DatagramChannel
// //
// See #368 // See #368
switch (family) { switch (family) {
case INET: case IPv4:
channel = DatagramChannel.open(ProtocolFamilyConverter.convert(family)); channel = DatagramChannel.open(ProtocolFamilyConverter.convert(family));
break; break;
case INET6: case IPv6:
channel = DatagramChannel.open(ProtocolFamilyConverter.convert(family)); channel = DatagramChannel.open(ProtocolFamilyConverter.convert(family));
break; break;

View File

@ -24,8 +24,8 @@ import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.group.ChannelGroup; import org.jboss.netty.channel.group.ChannelGroup;
import org.jboss.netty.channel.socket.DatagramChannel; import org.jboss.netty.channel.socket.DatagramChannel;
import org.jboss.netty.channel.socket.DatagramChannelFactory; import org.jboss.netty.channel.socket.DatagramChannelFactory;
import org.jboss.netty.channel.socket.InternetProtocolFamily;
import org.jboss.netty.channel.socket.Worker; import org.jboss.netty.channel.socket.Worker;
import org.jboss.netty.channel.socket.nio.NioDatagramChannel.ProtocolFamily;
import org.jboss.netty.channel.socket.oio.OioDatagramChannelFactory; import org.jboss.netty.channel.socket.oio.OioDatagramChannelFactory;
import org.jboss.netty.util.ExternalResourceReleasable; import org.jboss.netty.util.ExternalResourceReleasable;
@ -80,14 +80,16 @@ public class NioDatagramChannelFactory implements DatagramChannelFactory {
private final NioDatagramPipelineSink sink; private final NioDatagramPipelineSink sink;
private final WorkerPool<NioDatagramWorker> workerPool; private final WorkerPool<NioDatagramWorker> workerPool;
private final NioDatagramChannel.ProtocolFamily family; private final InternetProtocolFamily family;
/** /**
* Create a new {@link NioDatagramChannelFactory} with a {@link Executors#newCachedThreadPool()}. * Create a new {@link NioDatagramChannelFactory} with a {@link Executors#newCachedThreadPool()}
* and without preferred {@link InternetProtocolFamily}. Please note that the {@link InternetProtocolFamily}
* of the channel will be platform (and possibly configuration) dependent and therefore
* unspecified. Use {@link #NioDatagramChannelFactory(InternetProtocolFamily)} if unsure.
* *
* See {@link #NioDatagramChannelFactory(Executor)} * See {@link #NioDatagramChannelFactory(Executor)}
*/ */
@Deprecated
public NioDatagramChannelFactory() { public NioDatagramChannelFactory() {
this(Executors.newCachedThreadPool(), null); this(Executors.newCachedThreadPool(), null);
} }
@ -97,7 +99,7 @@ public class NioDatagramChannelFactory implements DatagramChannelFactory {
* *
* See {@link #NioDatagramChannelFactory(Executor)} * See {@link #NioDatagramChannelFactory(Executor)}
*/ */
public NioDatagramChannelFactory(ProtocolFamily family) { public NioDatagramChannelFactory(InternetProtocolFamily family) {
this(Executors.newCachedThreadPool(), family); this(Executors.newCachedThreadPool(), family);
} }
@ -106,35 +108,44 @@ public class NioDatagramChannelFactory implements DatagramChannelFactory {
* {@link #NioDatagramChannelFactory(Executor, int)} with 2 * the number of * {@link #NioDatagramChannelFactory(Executor, int)} with 2 * the number of
* available processors in the machine. The number of available processors * available processors in the machine. The number of available processors
* is obtained by {@link Runtime#availableProcessors()}. * is obtained by {@link Runtime#availableProcessors()}.
* <p>
* Please note that the {@link InternetProtocolFamily} of the channel will be platform (and possibly
* configuration) dependent and therefore unspecified.
* Use {@link #NioDatagramChannelFactory(Executor, InternetProtocolFamily)} if unsure.
* *
* @param workerExecutor * @param workerExecutor
* the {@link Executor} which will execute the I/O worker threads * the {@link Executor} which will execute the I/O worker threads
*/ */
@Deprecated
public NioDatagramChannelFactory(final Executor workerExecutor) { public NioDatagramChannelFactory(final Executor workerExecutor) {
this(workerExecutor, SelectorUtil.DEFAULT_IO_THREADS); this(workerExecutor, SelectorUtil.DEFAULT_IO_THREADS);
} }
/** /**
* Creates a new instance. * Creates a new instance.
* <p>
* Please note that the {@link InternetProtocolFamily} of the channel will be platform (and possibly
* configuration) dependent and therefore unspecified.
* Use {@link #NioDatagramChannelFactory(Executor, int, InternetProtocolFamily)} if unsure.
* *
* @param workerExecutor * @param workerExecutor
* the {@link Executor} which will execute the I/O worker threads * the {@link Executor} which will execute the I/O worker threads
* @param workerCount * @param workerCount
* the maximum number of I/O worker threads * the maximum number of I/O worker threads
*/ */
@Deprecated
public NioDatagramChannelFactory(final Executor workerExecutor, final int workerCount) { public NioDatagramChannelFactory(final Executor workerExecutor, final int workerCount) {
this(new NioDatagramWorkerPool(workerExecutor, workerCount, true)); this(new NioDatagramWorkerPool(workerExecutor, workerCount, true));
} }
/** /**
* Creates a new instance. * Creates a new instance.
* <p>
* Please note that the {@link InternetProtocolFamily} of the channel will be platform (and possibly
* configuration) dependent and therefore unspecified.
* Use {@link #NioDatagramChannelFactory(WorkerPool, InternetProtocolFamily)} if unsure.
* *
* @param workerPool * @param workerPool
* the {@link WorkerPool} which will be used to obtain the {@link NioDatagramWorker} that execute the I/O worker threads * the {@link WorkerPool} which will be used to obtain the {@link NioDatagramWorker} that execute the I/O worker threads
*/ */
@Deprecated
public NioDatagramChannelFactory(WorkerPool<NioDatagramWorker> workerPool) { public NioDatagramChannelFactory(WorkerPool<NioDatagramWorker> workerPool) {
this(workerPool, null); this(workerPool, null);
} }
@ -148,10 +159,10 @@ public class NioDatagramChannelFactory implements DatagramChannelFactory {
* @param workerExecutor * @param workerExecutor
* the {@link Executor} which will execute the I/O worker threads * the {@link Executor} which will execute the I/O worker threads
* @param family * @param family
* the {@link ProtocolFamily} to use. This should be used for UDP multicast. * the {@link InternetProtocolFamily} to use. This should be used for UDP multicast.
* <strong>Be aware that this option is only considered when running on java7+</strong> * <strong>Be aware that this option is only considered when running on java7+</strong>
*/ */
public NioDatagramChannelFactory(final Executor workerExecutor, ProtocolFamily family) { public NioDatagramChannelFactory(final Executor workerExecutor, InternetProtocolFamily family) {
this(workerExecutor, SelectorUtil.DEFAULT_IO_THREADS, family); this(workerExecutor, SelectorUtil.DEFAULT_IO_THREADS, family);
} }
@ -163,11 +174,11 @@ public class NioDatagramChannelFactory implements DatagramChannelFactory {
* @param workerCount * @param workerCount
* the maximum number of I/O worker threads * the maximum number of I/O worker threads
* @param family * @param family
* the {@link ProtocolFamily} to use. This should be used for UDP multicast. * the {@link InternetProtocolFamily} to use. This should be used for UDP multicast.
* <strong>Be aware that this option is only considered when running on java7+</strong> * <strong>Be aware that this option is only considered when running on java7+</strong>
*/ */
public NioDatagramChannelFactory(final Executor workerExecutor, public NioDatagramChannelFactory(final Executor workerExecutor,
final int workerCount, ProtocolFamily family) { final int workerCount, InternetProtocolFamily family) {
this(new NioDatagramWorkerPool(workerExecutor, workerCount, true), family); this(new NioDatagramWorkerPool(workerExecutor, workerCount, true), family);
} }
@ -177,10 +188,10 @@ public class NioDatagramChannelFactory implements DatagramChannelFactory {
* @param workerPool * @param workerPool
* the {@link WorkerPool} which will be used to obtain the {@link Worker} that execute the I/O worker threads * the {@link WorkerPool} which will be used to obtain the {@link Worker} that execute the I/O worker threads
* @param family * @param family
* the {@link ProtocolFamily} to use. This should be used for UDP multicast. * the {@link InternetProtocolFamily} to use. This should be used for UDP multicast.
* <strong>Be aware that this option is only considered when running on java7+</strong> * <strong>Be aware that this option is only considered when running on java7+</strong>
*/ */
public NioDatagramChannelFactory(WorkerPool<NioDatagramWorker> workerPool, ProtocolFamily family) { public NioDatagramChannelFactory(WorkerPool<NioDatagramWorker> workerPool, InternetProtocolFamily family) {
this.workerPool = workerPool; this.workerPool = workerPool;
this.family = family; this.family = family;
sink = new NioDatagramPipelineSink(workerPool); sink = new NioDatagramPipelineSink(workerPool);

View File

@ -15,18 +15,7 @@
*/ */
package org.jboss.netty.channel.socket.nio; package org.jboss.netty.channel.socket.nio;
import static org.jboss.netty.channel.Channels.fireChannelDisconnected; import static org.jboss.netty.channel.Channels.*;
import static org.jboss.netty.channel.Channels.fireChannelDisconnectedLater;
import static org.jboss.netty.channel.Channels.fireExceptionCaught;
import static org.jboss.netty.channel.Channels.fireExceptionCaughtLater;
import static org.jboss.netty.channel.Channels.fireMessageReceived;
import static org.jboss.netty.channel.Channels.succeededFuture;
import org.jboss.netty.buffer.ChannelBufferFactory;
import org.jboss.netty.channel.ChannelException;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.ReceiveBufferSizePredictor;
import java.io.IOException; import java.io.IOException;
import java.net.SocketAddress; import java.net.SocketAddress;
@ -39,6 +28,13 @@ import java.nio.channels.Selector;
import java.util.Queue; import java.util.Queue;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import org.jboss.netty.buffer.ChannelBufferFactory;
import org.jboss.netty.channel.ChannelException;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.ReceiveBufferSizePredictor;
/** /**
* A class responsible for registering channels with {@link Selector}. * A class responsible for registering channels with {@link Selector}.
* It also implements the {@link Selector} loop. * It also implements the {@link Selector} loop.

View File

@ -15,16 +15,7 @@
*/ */
package org.jboss.netty.channel.socket.nio; package org.jboss.netty.channel.socket.nio;
import static org.jboss.netty.channel.Channels.fireChannelBound; import static org.jboss.netty.channel.Channels.*;
import static org.jboss.netty.channel.Channels.fireChannelConnected;
import static org.jboss.netty.channel.Channels.fireExceptionCaught;
import static org.jboss.netty.channel.Channels.fireMessageReceived;
import static org.jboss.netty.channel.Channels.succeededFuture;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBufferFactory;
import org.jboss.netty.channel.ChannelException;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ReceiveBufferSizePredictor;
import java.io.IOException; import java.io.IOException;
import java.net.SocketAddress; import java.net.SocketAddress;
@ -35,6 +26,12 @@ import java.nio.channels.Selector;
import java.nio.channels.SocketChannel; import java.nio.channels.SocketChannel;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBufferFactory;
import org.jboss.netty.channel.ChannelException;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ReceiveBufferSizePredictor;
public class NioWorker extends AbstractNioWorker { public class NioWorker extends AbstractNioWorker {
private final SocketReceiveBufferPool recvBufferPool = new SocketReceiveBufferPool(); private final SocketReceiveBufferPool recvBufferPool = new SocketReceiveBufferPool();

View File

@ -15,11 +15,12 @@
*/ */
package org.jboss.netty.channel.socket.nio; package org.jboss.netty.channel.socket.nio;
import java.net.ProtocolFamily; import org.jboss.netty.channel.socket.InternetProtocolFamily;
/** /**
* Helper class which convert the {@link ProtocolFamily}. * Helper class which convert the {@link InternetProtocolFamily}.
* *
* *
*/ */
@ -30,14 +31,14 @@ final class ProtocolFamilyConverter {
} }
/** /**
* Convert the {@link NioDatagramChannel.ProtocolFamily}. This MUST only be called on jdk version >= 7. * Convert the {@link InternetProtocolFamily}. This MUST only be called on jdk version >= 7.
*/ */
public static ProtocolFamily convert(NioDatagramChannel.ProtocolFamily family) { public static java.net.ProtocolFamily convert(InternetProtocolFamily family) {
switch (family) { switch (family) {
case INET: case IPv4:
return java.net.StandardProtocolFamily.INET; return java.net.StandardProtocolFamily.INET;
case INET6: case IPv6:
return java.net.StandardProtocolFamily.INET6; return java.net.StandardProtocolFamily.INET6;
default: default:
throw new IllegalArgumentException(); throw new IllegalArgumentException();

View File

@ -267,7 +267,7 @@ final class SocketSendBufferPool {
GatheringSendBuffer(ByteBuffer[] buffers) { GatheringSendBuffer(ByteBuffer[] buffers) {
this.buffers = buffers; this.buffers = buffers;
this.last = buffers.length - 1; last = buffers.length - 1;
int total = 0; int total = 0;
for (ByteBuffer buf: buffers) { for (ByteBuffer buf: buffers) {
total += buf.remaining(); total += buf.remaining();

View File

@ -16,15 +16,16 @@
package org.jboss.netty.channel.socket.oio; package org.jboss.netty.channel.socket.oio;
import static org.jboss.netty.channel.Channels.*; import static org.jboss.netty.channel.Channels.*;
import java.io.IOException;
import java.util.Queue;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelFuture; import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.socket.Worker; import org.jboss.netty.channel.socket.Worker;
import org.jboss.netty.util.internal.QueueFactory; import org.jboss.netty.util.internal.QueueFactory;
import java.io.IOException;
import java.util.Queue;
/** /**
* Abstract base class for Oio-Worker implementations * Abstract base class for Oio-Worker implementations
* *

View File

@ -15,8 +15,7 @@
*/ */
package org.jboss.netty.channel.socket.oio; package org.jboss.netty.channel.socket.oio;
import static org.jboss.netty.channel.Channels.fireChannelBound; import static org.jboss.netty.channel.Channels.*;
import static org.jboss.netty.channel.Channels.fireChannelOpen;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;

View File

@ -28,19 +28,19 @@ import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelFuture; import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
import org.jboss.netty.handler.codec.http.CookieEncoder; import org.jboss.netty.handler.codec.http.CookieEncoder;
import org.jboss.netty.handler.codec.http.DefaultHttpDataFactory;
import org.jboss.netty.handler.codec.http.DefaultHttpRequest; import org.jboss.netty.handler.codec.http.DefaultHttpRequest;
import org.jboss.netty.handler.codec.http.DiskAttribute;
import org.jboss.netty.handler.codec.http.DiskFileUpload;
import org.jboss.netty.handler.codec.http.HttpDataFactory;
import org.jboss.netty.handler.codec.http.HttpHeaders; import org.jboss.netty.handler.codec.http.HttpHeaders;
import org.jboss.netty.handler.codec.http.HttpMethod; import org.jboss.netty.handler.codec.http.HttpMethod;
import org.jboss.netty.handler.codec.http.HttpPostRequestEncoder;
import org.jboss.netty.handler.codec.http.HttpPostRequestEncoder.ErrorDataEncoderException;
import org.jboss.netty.handler.codec.http.HttpRequest; import org.jboss.netty.handler.codec.http.HttpRequest;
import org.jboss.netty.handler.codec.http.HttpVersion; import org.jboss.netty.handler.codec.http.HttpVersion;
import org.jboss.netty.handler.codec.http.InterfaceHttpData;
import org.jboss.netty.handler.codec.http.QueryStringEncoder; import org.jboss.netty.handler.codec.http.QueryStringEncoder;
import org.jboss.netty.handler.codec.http.multipart.DefaultHttpDataFactory;
import org.jboss.netty.handler.codec.http.multipart.DiskAttribute;
import org.jboss.netty.handler.codec.http.multipart.DiskFileUpload;
import org.jboss.netty.handler.codec.http.multipart.HttpDataFactory;
import org.jboss.netty.handler.codec.http.multipart.HttpPostRequestEncoder;
import org.jboss.netty.handler.codec.http.multipart.HttpPostRequestEncoder.ErrorDataEncoderException;
import org.jboss.netty.handler.codec.http.multipart.InterfaceHttpData;
import org.jboss.netty.logging.InternalLogger; import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory; import org.jboss.netty.logging.InternalLoggerFactory;

View File

@ -34,30 +34,30 @@ import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.ExceptionEvent; import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler; import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
import org.jboss.netty.handler.codec.http.Attribute;
import org.jboss.netty.handler.codec.http.Cookie; import org.jboss.netty.handler.codec.http.Cookie;
import org.jboss.netty.handler.codec.http.CookieDecoder; import org.jboss.netty.handler.codec.http.CookieDecoder;
import org.jboss.netty.handler.codec.http.CookieEncoder; import org.jboss.netty.handler.codec.http.CookieEncoder;
import org.jboss.netty.handler.codec.http.DefaultHttpDataFactory;
import org.jboss.netty.handler.codec.http.DefaultHttpResponse; import org.jboss.netty.handler.codec.http.DefaultHttpResponse;
import org.jboss.netty.handler.codec.http.DiskAttribute;
import org.jboss.netty.handler.codec.http.DiskFileUpload;
import org.jboss.netty.handler.codec.http.FileUpload;
import org.jboss.netty.handler.codec.http.HttpChunk; import org.jboss.netty.handler.codec.http.HttpChunk;
import org.jboss.netty.handler.codec.http.HttpDataFactory;
import org.jboss.netty.handler.codec.http.HttpHeaders; import org.jboss.netty.handler.codec.http.HttpHeaders;
import org.jboss.netty.handler.codec.http.HttpPostRequestDecoder;
import org.jboss.netty.handler.codec.http.HttpPostRequestDecoder.EndOfDataDecoderException;
import org.jboss.netty.handler.codec.http.HttpPostRequestDecoder.ErrorDataDecoderException;
import org.jboss.netty.handler.codec.http.HttpPostRequestDecoder.IncompatibleDataDecoderException;
import org.jboss.netty.handler.codec.http.HttpPostRequestDecoder.NotEnoughDataDecoderException;
import org.jboss.netty.handler.codec.http.HttpRequest; import org.jboss.netty.handler.codec.http.HttpRequest;
import org.jboss.netty.handler.codec.http.HttpResponse; import org.jboss.netty.handler.codec.http.HttpResponse;
import org.jboss.netty.handler.codec.http.HttpResponseStatus; import org.jboss.netty.handler.codec.http.HttpResponseStatus;
import org.jboss.netty.handler.codec.http.HttpVersion; import org.jboss.netty.handler.codec.http.HttpVersion;
import org.jboss.netty.handler.codec.http.InterfaceHttpData;
import org.jboss.netty.handler.codec.http.InterfaceHttpData.HttpDataType;
import org.jboss.netty.handler.codec.http.QueryStringDecoder; import org.jboss.netty.handler.codec.http.QueryStringDecoder;
import org.jboss.netty.handler.codec.http.multipart.Attribute;
import org.jboss.netty.handler.codec.http.multipart.DefaultHttpDataFactory;
import org.jboss.netty.handler.codec.http.multipart.DiskAttribute;
import org.jboss.netty.handler.codec.http.multipart.DiskFileUpload;
import org.jboss.netty.handler.codec.http.multipart.FileUpload;
import org.jboss.netty.handler.codec.http.multipart.HttpDataFactory;
import org.jboss.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
import org.jboss.netty.handler.codec.http.multipart.HttpPostRequestDecoder.EndOfDataDecoderException;
import org.jboss.netty.handler.codec.http.multipart.HttpPostRequestDecoder.ErrorDataDecoderException;
import org.jboss.netty.handler.codec.http.multipart.HttpPostRequestDecoder.IncompatibleDataDecoderException;
import org.jboss.netty.handler.codec.http.multipart.HttpPostRequestDecoder.NotEnoughDataDecoderException;
import org.jboss.netty.handler.codec.http.multipart.InterfaceHttpData;
import org.jboss.netty.handler.codec.http.multipart.InterfaceHttpData.HttpDataType;
import org.jboss.netty.logging.InternalLogger; import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory; import org.jboss.netty.logging.InternalLoggerFactory;
import org.jboss.netty.util.CharsetUtil; import org.jboss.netty.util.CharsetUtil;

View File

@ -15,7 +15,7 @@
*/ */
package org.jboss.netty.example.http.upload; package org.jboss.netty.example.http.upload;
import static org.jboss.netty.channel.Channels.pipeline; import static org.jboss.netty.channel.Channels.*;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.ChannelPipelineFactory;

View File

@ -249,7 +249,7 @@ public final class LocalTimeProtocol {
public static final int CONTINENT_FIELD_NUMBER = 1; public static final int CONTINENT_FIELD_NUMBER = 1;
private org.jboss.netty.example.localtime.LocalTimeProtocol.Continent continent_; private org.jboss.netty.example.localtime.LocalTimeProtocol.Continent continent_;
public boolean hasContinent() { public boolean hasContinent() {
return ((bitField0_ & 0x00000001) == 0x00000001); return (bitField0_ & 0x00000001) == 0x00000001;
} }
public org.jboss.netty.example.localtime.LocalTimeProtocol.Continent getContinent() { public org.jboss.netty.example.localtime.LocalTimeProtocol.Continent getContinent() {
return continent_; return continent_;
@ -259,7 +259,7 @@ public final class LocalTimeProtocol {
public static final int CITY_FIELD_NUMBER = 2; public static final int CITY_FIELD_NUMBER = 2;
private java.lang.Object city_; private java.lang.Object city_;
public boolean hasCity() { public boolean hasCity() {
return ((bitField0_ & 0x00000002) == 0x00000002); return (bitField0_ & 0x00000002) == 0x00000002;
} }
public String getCity() { public String getCity() {
java.lang.Object ref = city_; java.lang.Object ref = city_;
@ -294,7 +294,9 @@ public final class LocalTimeProtocol {
private byte memoizedIsInitialized = -1; private byte memoizedIsInitialized = -1;
public final boolean isInitialized() { public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized; byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1; if (isInitialized != -1) {
return isInitialized == 1;
}
if (!hasContinent()) { if (!hasContinent()) {
memoizedIsInitialized = 0; memoizedIsInitialized = 0;
@ -311,10 +313,10 @@ public final class LocalTimeProtocol {
public void writeTo(com.google.protobuf.CodedOutputStream output) public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException { throws java.io.IOException {
getSerializedSize(); getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) { if ((bitField0_ & 0x00000001) == 0x00000001) {
output.writeEnum(1, continent_.getNumber()); output.writeEnum(1, continent_.getNumber());
} }
if (((bitField0_ & 0x00000002) == 0x00000002)) { if ((bitField0_ & 0x00000002) == 0x00000002) {
output.writeBytes(2, getCityBytes()); output.writeBytes(2, getCityBytes());
} }
getUnknownFields().writeTo(output); getUnknownFields().writeTo(output);
@ -323,14 +325,16 @@ public final class LocalTimeProtocol {
private int memoizedSerializedSize = -1; private int memoizedSerializedSize = -1;
public int getSerializedSize() { public int getSerializedSize() {
int size = memoizedSerializedSize; int size = memoizedSerializedSize;
if (size != -1) return size; if (size != -1) {
return size;
}
size = 0; size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) { if ((bitField0_ & 0x00000001) == 0x00000001) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeEnumSize(1, continent_.getNumber()); .computeEnumSize(1, continent_.getNumber());
} }
if (((bitField0_ & 0x00000002) == 0x00000002)) { if ((bitField0_ & 0x00000002) == 0x00000002) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeBytesSize(2, getCityBytes()); .computeBytesSize(2, getCityBytes());
} }
@ -459,9 +463,9 @@ public final class LocalTimeProtocol {
public Builder clear() { public Builder clear() {
super.clear(); super.clear();
continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA; continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA;
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
city_ = ""; city_ = "";
bitField0_ = (bitField0_ & ~0x00000002); bitField0_ = bitField0_ & ~0x00000002;
return this; return this;
} }
@ -500,11 +504,11 @@ public final class LocalTimeProtocol {
org.jboss.netty.example.localtime.LocalTimeProtocol.Location result = new org.jboss.netty.example.localtime.LocalTimeProtocol.Location(this); org.jboss.netty.example.localtime.LocalTimeProtocol.Location result = new org.jboss.netty.example.localtime.LocalTimeProtocol.Location(this);
int from_bitField0_ = bitField0_; int from_bitField0_ = bitField0_;
int to_bitField0_ = 0; int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) { if ((from_bitField0_ & 0x00000001) == 0x00000001) {
to_bitField0_ |= 0x00000001; to_bitField0_ |= 0x00000001;
} }
result.continent_ = continent_; result.continent_ = continent_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) { if ((from_bitField0_ & 0x00000002) == 0x00000002) {
to_bitField0_ |= 0x00000002; to_bitField0_ |= 0x00000002;
} }
result.city_ = city_; result.city_ = city_;
@ -523,14 +527,16 @@ public final class LocalTimeProtocol {
} }
public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.Location other) { public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.Location other) {
if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.Location.getDefaultInstance()) return this; if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.Location.getDefaultInstance()) {
return this;
}
if (other.hasContinent()) { if (other.hasContinent()) {
setContinent(other.getContinent()); setContinent(other.getContinent());
} }
if (other.hasCity()) { if (other.hasCity()) {
setCity(other.getCity()); setCity(other.getCity());
} }
this.mergeUnknownFields(other.getUnknownFields()); mergeUnknownFields(other.getUnknownFields());
return this; return this;
} }
@ -552,18 +558,18 @@ public final class LocalTimeProtocol {
throws java.io.IOException { throws java.io.IOException {
com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder( com.google.protobuf.UnknownFieldSet.newBuilder(
this.getUnknownFields()); getUnknownFields());
while (true) { while (true) {
int tag = input.readTag(); int tag = input.readTag();
switch (tag) { switch (tag) {
case 0: case 0:
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
default: { default: {
if (!parseUnknownField(input, unknownFields, if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) { extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
} }
@ -594,7 +600,7 @@ public final class LocalTimeProtocol {
// required .org.jboss.netty.example.localtime.Continent continent = 1; // required .org.jboss.netty.example.localtime.Continent continent = 1;
private org.jboss.netty.example.localtime.LocalTimeProtocol.Continent continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA; private org.jboss.netty.example.localtime.LocalTimeProtocol.Continent continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA;
public boolean hasContinent() { public boolean hasContinent() {
return ((bitField0_ & 0x00000001) == 0x00000001); return (bitField0_ & 0x00000001) == 0x00000001;
} }
public org.jboss.netty.example.localtime.LocalTimeProtocol.Continent getContinent() { public org.jboss.netty.example.localtime.LocalTimeProtocol.Continent getContinent() {
return continent_; return continent_;
@ -609,7 +615,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearContinent() { public Builder clearContinent() {
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA; continent_ = org.jboss.netty.example.localtime.LocalTimeProtocol.Continent.AFRICA;
onChanged(); onChanged();
return this; return this;
@ -618,7 +624,7 @@ public final class LocalTimeProtocol {
// required string city = 2; // required string city = 2;
private java.lang.Object city_ = ""; private java.lang.Object city_ = "";
public boolean hasCity() { public boolean hasCity() {
return ((bitField0_ & 0x00000002) == 0x00000002); return (bitField0_ & 0x00000002) == 0x00000002;
} }
public String getCity() { public String getCity() {
java.lang.Object ref = city_; java.lang.Object ref = city_;
@ -640,7 +646,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearCity() { public Builder clearCity() {
bitField0_ = (bitField0_ & ~0x00000002); bitField0_ = bitField0_ & ~0x00000002;
city_ = getDefaultInstance().getCity(); city_ = getDefaultInstance().getCity();
onChanged(); onChanged();
return this; return this;
@ -730,7 +736,9 @@ public final class LocalTimeProtocol {
private byte memoizedIsInitialized = -1; private byte memoizedIsInitialized = -1;
public final boolean isInitialized() { public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized; byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1; if (isInitialized != -1) {
return isInitialized == 1;
}
for (int i = 0; i < getLocationCount(); i++) { for (int i = 0; i < getLocationCount(); i++) {
if (!getLocation(i).isInitialized()) { if (!getLocation(i).isInitialized()) {
@ -754,7 +762,9 @@ public final class LocalTimeProtocol {
private int memoizedSerializedSize = -1; private int memoizedSerializedSize = -1;
public int getSerializedSize() { public int getSerializedSize() {
int size = memoizedSerializedSize; int size = memoizedSerializedSize;
if (size != -1) return size; if (size != -1) {
return size;
}
size = 0; size = 0;
for (int i = 0; i < location_.size(); i++) { for (int i = 0; i < location_.size(); i++) {
@ -888,7 +898,7 @@ public final class LocalTimeProtocol {
super.clear(); super.clear();
if (locationBuilder_ == null) { if (locationBuilder_ == null) {
location_ = java.util.Collections.emptyList(); location_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
} else { } else {
locationBuilder_.clear(); locationBuilder_.clear();
} }
@ -930,9 +940,9 @@ public final class LocalTimeProtocol {
org.jboss.netty.example.localtime.LocalTimeProtocol.Locations result = new org.jboss.netty.example.localtime.LocalTimeProtocol.Locations(this); org.jboss.netty.example.localtime.LocalTimeProtocol.Locations result = new org.jboss.netty.example.localtime.LocalTimeProtocol.Locations(this);
int from_bitField0_ = bitField0_; int from_bitField0_ = bitField0_;
if (locationBuilder_ == null) { if (locationBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) { if ((bitField0_ & 0x00000001) == 0x00000001) {
location_ = java.util.Collections.unmodifiableList(location_); location_ = java.util.Collections.unmodifiableList(location_);
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
} }
result.location_ = location_; result.location_ = location_;
} else { } else {
@ -952,12 +962,14 @@ public final class LocalTimeProtocol {
} }
public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.Locations other) { public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.Locations other) {
if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.getDefaultInstance()) return this; if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.Locations.getDefaultInstance()) {
return this;
}
if (locationBuilder_ == null) { if (locationBuilder_ == null) {
if (!other.location_.isEmpty()) { if (!other.location_.isEmpty()) {
if (location_.isEmpty()) { if (location_.isEmpty()) {
location_ = other.location_; location_ = other.location_;
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
} else { } else {
ensureLocationIsMutable(); ensureLocationIsMutable();
location_.addAll(other.location_); location_.addAll(other.location_);
@ -970,7 +982,7 @@ public final class LocalTimeProtocol {
locationBuilder_.dispose(); locationBuilder_.dispose();
locationBuilder_ = null; locationBuilder_ = null;
location_ = other.location_; location_ = other.location_;
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
locationBuilder_ = locationBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getLocationFieldBuilder() : null; getLocationFieldBuilder() : null;
@ -979,7 +991,7 @@ public final class LocalTimeProtocol {
} }
} }
} }
this.mergeUnknownFields(other.getUnknownFields()); mergeUnknownFields(other.getUnknownFields());
return this; return this;
} }
@ -999,18 +1011,18 @@ public final class LocalTimeProtocol {
throws java.io.IOException { throws java.io.IOException {
com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder( com.google.protobuf.UnknownFieldSet.newBuilder(
this.getUnknownFields()); getUnknownFields());
while (true) { while (true) {
int tag = input.readTag(); int tag = input.readTag();
switch (tag) { switch (tag) {
case 0: case 0:
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
default: { default: {
if (!parseUnknownField(input, unknownFields, if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) { extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
} }
@ -1150,7 +1162,7 @@ public final class LocalTimeProtocol {
public Builder clearLocation() { public Builder clearLocation() {
if (locationBuilder_ == null) { if (locationBuilder_ == null) {
location_ = java.util.Collections.emptyList(); location_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
onChanged(); onChanged();
} else { } else {
locationBuilder_.clear(); locationBuilder_.clear();
@ -1206,7 +1218,7 @@ public final class LocalTimeProtocol {
locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
org.jboss.netty.example.localtime.LocalTimeProtocol.Location, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder>( org.jboss.netty.example.localtime.LocalTimeProtocol.Location, org.jboss.netty.example.localtime.LocalTimeProtocol.Location.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocationOrBuilder>(
location_, location_,
((bitField0_ & 0x00000001) == 0x00000001), (bitField0_ & 0x00000001) == 0x00000001,
getParentForChildren(), getParentForChildren(),
isClean()); isClean());
location_ = null; location_ = null;
@ -1289,7 +1301,7 @@ public final class LocalTimeProtocol {
public static final int YEAR_FIELD_NUMBER = 1; public static final int YEAR_FIELD_NUMBER = 1;
private int year_; private int year_;
public boolean hasYear() { public boolean hasYear() {
return ((bitField0_ & 0x00000001) == 0x00000001); return (bitField0_ & 0x00000001) == 0x00000001;
} }
public int getYear() { public int getYear() {
return year_; return year_;
@ -1299,7 +1311,7 @@ public final class LocalTimeProtocol {
public static final int MONTH_FIELD_NUMBER = 2; public static final int MONTH_FIELD_NUMBER = 2;
private int month_; private int month_;
public boolean hasMonth() { public boolean hasMonth() {
return ((bitField0_ & 0x00000002) == 0x00000002); return (bitField0_ & 0x00000002) == 0x00000002;
} }
public int getMonth() { public int getMonth() {
return month_; return month_;
@ -1309,7 +1321,7 @@ public final class LocalTimeProtocol {
public static final int DAYOFMONTH_FIELD_NUMBER = 4; public static final int DAYOFMONTH_FIELD_NUMBER = 4;
private int dayOfMonth_; private int dayOfMonth_;
public boolean hasDayOfMonth() { public boolean hasDayOfMonth() {
return ((bitField0_ & 0x00000004) == 0x00000004); return (bitField0_ & 0x00000004) == 0x00000004;
} }
public int getDayOfMonth() { public int getDayOfMonth() {
return dayOfMonth_; return dayOfMonth_;
@ -1319,7 +1331,7 @@ public final class LocalTimeProtocol {
public static final int DAYOFWEEK_FIELD_NUMBER = 5; public static final int DAYOFWEEK_FIELD_NUMBER = 5;
private org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek dayOfWeek_; private org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek dayOfWeek_;
public boolean hasDayOfWeek() { public boolean hasDayOfWeek() {
return ((bitField0_ & 0x00000008) == 0x00000008); return (bitField0_ & 0x00000008) == 0x00000008;
} }
public org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek getDayOfWeek() { public org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek getDayOfWeek() {
return dayOfWeek_; return dayOfWeek_;
@ -1329,7 +1341,7 @@ public final class LocalTimeProtocol {
public static final int HOUR_FIELD_NUMBER = 6; public static final int HOUR_FIELD_NUMBER = 6;
private int hour_; private int hour_;
public boolean hasHour() { public boolean hasHour() {
return ((bitField0_ & 0x00000010) == 0x00000010); return (bitField0_ & 0x00000010) == 0x00000010;
} }
public int getHour() { public int getHour() {
return hour_; return hour_;
@ -1339,7 +1351,7 @@ public final class LocalTimeProtocol {
public static final int MINUTE_FIELD_NUMBER = 7; public static final int MINUTE_FIELD_NUMBER = 7;
private int minute_; private int minute_;
public boolean hasMinute() { public boolean hasMinute() {
return ((bitField0_ & 0x00000020) == 0x00000020); return (bitField0_ & 0x00000020) == 0x00000020;
} }
public int getMinute() { public int getMinute() {
return minute_; return minute_;
@ -1349,7 +1361,7 @@ public final class LocalTimeProtocol {
public static final int SECOND_FIELD_NUMBER = 8; public static final int SECOND_FIELD_NUMBER = 8;
private int second_; private int second_;
public boolean hasSecond() { public boolean hasSecond() {
return ((bitField0_ & 0x00000040) == 0x00000040); return (bitField0_ & 0x00000040) == 0x00000040;
} }
public int getSecond() { public int getSecond() {
return second_; return second_;
@ -1367,7 +1379,9 @@ public final class LocalTimeProtocol {
private byte memoizedIsInitialized = -1; private byte memoizedIsInitialized = -1;
public final boolean isInitialized() { public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized; byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1; if (isInitialized != -1) {
return isInitialized == 1;
}
if (!hasYear()) { if (!hasYear()) {
memoizedIsInitialized = 0; memoizedIsInitialized = 0;
@ -1404,25 +1418,25 @@ public final class LocalTimeProtocol {
public void writeTo(com.google.protobuf.CodedOutputStream output) public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException { throws java.io.IOException {
getSerializedSize(); getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) { if ((bitField0_ & 0x00000001) == 0x00000001) {
output.writeUInt32(1, year_); output.writeUInt32(1, year_);
} }
if (((bitField0_ & 0x00000002) == 0x00000002)) { if ((bitField0_ & 0x00000002) == 0x00000002) {
output.writeUInt32(2, month_); output.writeUInt32(2, month_);
} }
if (((bitField0_ & 0x00000004) == 0x00000004)) { if ((bitField0_ & 0x00000004) == 0x00000004) {
output.writeUInt32(4, dayOfMonth_); output.writeUInt32(4, dayOfMonth_);
} }
if (((bitField0_ & 0x00000008) == 0x00000008)) { if ((bitField0_ & 0x00000008) == 0x00000008) {
output.writeEnum(5, dayOfWeek_.getNumber()); output.writeEnum(5, dayOfWeek_.getNumber());
} }
if (((bitField0_ & 0x00000010) == 0x00000010)) { if ((bitField0_ & 0x00000010) == 0x00000010) {
output.writeUInt32(6, hour_); output.writeUInt32(6, hour_);
} }
if (((bitField0_ & 0x00000020) == 0x00000020)) { if ((bitField0_ & 0x00000020) == 0x00000020) {
output.writeUInt32(7, minute_); output.writeUInt32(7, minute_);
} }
if (((bitField0_ & 0x00000040) == 0x00000040)) { if ((bitField0_ & 0x00000040) == 0x00000040) {
output.writeUInt32(8, second_); output.writeUInt32(8, second_);
} }
getUnknownFields().writeTo(output); getUnknownFields().writeTo(output);
@ -1431,34 +1445,36 @@ public final class LocalTimeProtocol {
private int memoizedSerializedSize = -1; private int memoizedSerializedSize = -1;
public int getSerializedSize() { public int getSerializedSize() {
int size = memoizedSerializedSize; int size = memoizedSerializedSize;
if (size != -1) return size; if (size != -1) {
return size;
}
size = 0; size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) { if ((bitField0_ & 0x00000001) == 0x00000001) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(1, year_); .computeUInt32Size(1, year_);
} }
if (((bitField0_ & 0x00000002) == 0x00000002)) { if ((bitField0_ & 0x00000002) == 0x00000002) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(2, month_); .computeUInt32Size(2, month_);
} }
if (((bitField0_ & 0x00000004) == 0x00000004)) { if ((bitField0_ & 0x00000004) == 0x00000004) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(4, dayOfMonth_); .computeUInt32Size(4, dayOfMonth_);
} }
if (((bitField0_ & 0x00000008) == 0x00000008)) { if ((bitField0_ & 0x00000008) == 0x00000008) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeEnumSize(5, dayOfWeek_.getNumber()); .computeEnumSize(5, dayOfWeek_.getNumber());
} }
if (((bitField0_ & 0x00000010) == 0x00000010)) { if ((bitField0_ & 0x00000010) == 0x00000010) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(6, hour_); .computeUInt32Size(6, hour_);
} }
if (((bitField0_ & 0x00000020) == 0x00000020)) { if ((bitField0_ & 0x00000020) == 0x00000020) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(7, minute_); .computeUInt32Size(7, minute_);
} }
if (((bitField0_ & 0x00000040) == 0x00000040)) { if ((bitField0_ & 0x00000040) == 0x00000040) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(8, second_); .computeUInt32Size(8, second_);
} }
@ -1587,19 +1603,19 @@ public final class LocalTimeProtocol {
public Builder clear() { public Builder clear() {
super.clear(); super.clear();
year_ = 0; year_ = 0;
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
month_ = 0; month_ = 0;
bitField0_ = (bitField0_ & ~0x00000002); bitField0_ = bitField0_ & ~0x00000002;
dayOfMonth_ = 0; dayOfMonth_ = 0;
bitField0_ = (bitField0_ & ~0x00000004); bitField0_ = bitField0_ & ~0x00000004;
dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY; dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY;
bitField0_ = (bitField0_ & ~0x00000008); bitField0_ = bitField0_ & ~0x00000008;
hour_ = 0; hour_ = 0;
bitField0_ = (bitField0_ & ~0x00000010); bitField0_ = bitField0_ & ~0x00000010;
minute_ = 0; minute_ = 0;
bitField0_ = (bitField0_ & ~0x00000020); bitField0_ = bitField0_ & ~0x00000020;
second_ = 0; second_ = 0;
bitField0_ = (bitField0_ & ~0x00000040); bitField0_ = bitField0_ & ~0x00000040;
return this; return this;
} }
@ -1638,31 +1654,31 @@ public final class LocalTimeProtocol {
org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime result = new org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime(this); org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime result = new org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime(this);
int from_bitField0_ = bitField0_; int from_bitField0_ = bitField0_;
int to_bitField0_ = 0; int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) { if ((from_bitField0_ & 0x00000001) == 0x00000001) {
to_bitField0_ |= 0x00000001; to_bitField0_ |= 0x00000001;
} }
result.year_ = year_; result.year_ = year_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) { if ((from_bitField0_ & 0x00000002) == 0x00000002) {
to_bitField0_ |= 0x00000002; to_bitField0_ |= 0x00000002;
} }
result.month_ = month_; result.month_ = month_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) { if ((from_bitField0_ & 0x00000004) == 0x00000004) {
to_bitField0_ |= 0x00000004; to_bitField0_ |= 0x00000004;
} }
result.dayOfMonth_ = dayOfMonth_; result.dayOfMonth_ = dayOfMonth_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) { if ((from_bitField0_ & 0x00000008) == 0x00000008) {
to_bitField0_ |= 0x00000008; to_bitField0_ |= 0x00000008;
} }
result.dayOfWeek_ = dayOfWeek_; result.dayOfWeek_ = dayOfWeek_;
if (((from_bitField0_ & 0x00000010) == 0x00000010)) { if ((from_bitField0_ & 0x00000010) == 0x00000010) {
to_bitField0_ |= 0x00000010; to_bitField0_ |= 0x00000010;
} }
result.hour_ = hour_; result.hour_ = hour_;
if (((from_bitField0_ & 0x00000020) == 0x00000020)) { if ((from_bitField0_ & 0x00000020) == 0x00000020) {
to_bitField0_ |= 0x00000020; to_bitField0_ |= 0x00000020;
} }
result.minute_ = minute_; result.minute_ = minute_;
if (((from_bitField0_ & 0x00000040) == 0x00000040)) { if ((from_bitField0_ & 0x00000040) == 0x00000040) {
to_bitField0_ |= 0x00000040; to_bitField0_ |= 0x00000040;
} }
result.second_ = second_; result.second_ = second_;
@ -1681,7 +1697,9 @@ public final class LocalTimeProtocol {
} }
public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime other) { public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime other) {
if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.getDefaultInstance()) return this; if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.getDefaultInstance()) {
return this;
}
if (other.hasYear()) { if (other.hasYear()) {
setYear(other.getYear()); setYear(other.getYear());
} }
@ -1703,7 +1721,7 @@ public final class LocalTimeProtocol {
if (other.hasSecond()) { if (other.hasSecond()) {
setSecond(other.getSecond()); setSecond(other.getSecond());
} }
this.mergeUnknownFields(other.getUnknownFields()); mergeUnknownFields(other.getUnknownFields());
return this; return this;
} }
@ -1745,18 +1763,18 @@ public final class LocalTimeProtocol {
throws java.io.IOException { throws java.io.IOException {
com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder( com.google.protobuf.UnknownFieldSet.newBuilder(
this.getUnknownFields()); getUnknownFields());
while (true) { while (true) {
int tag = input.readTag(); int tag = input.readTag();
switch (tag) { switch (tag) {
case 0: case 0:
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
default: { default: {
if (!parseUnknownField(input, unknownFields, if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) { extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
} }
@ -1812,7 +1830,7 @@ public final class LocalTimeProtocol {
// required uint32 year = 1; // required uint32 year = 1;
private int year_ ; private int year_ ;
public boolean hasYear() { public boolean hasYear() {
return ((bitField0_ & 0x00000001) == 0x00000001); return (bitField0_ & 0x00000001) == 0x00000001;
} }
public int getYear() { public int getYear() {
return year_; return year_;
@ -1824,7 +1842,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearYear() { public Builder clearYear() {
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
year_ = 0; year_ = 0;
onChanged(); onChanged();
return this; return this;
@ -1833,7 +1851,7 @@ public final class LocalTimeProtocol {
// required uint32 month = 2; // required uint32 month = 2;
private int month_ ; private int month_ ;
public boolean hasMonth() { public boolean hasMonth() {
return ((bitField0_ & 0x00000002) == 0x00000002); return (bitField0_ & 0x00000002) == 0x00000002;
} }
public int getMonth() { public int getMonth() {
return month_; return month_;
@ -1845,7 +1863,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearMonth() { public Builder clearMonth() {
bitField0_ = (bitField0_ & ~0x00000002); bitField0_ = bitField0_ & ~0x00000002;
month_ = 0; month_ = 0;
onChanged(); onChanged();
return this; return this;
@ -1854,7 +1872,7 @@ public final class LocalTimeProtocol {
// required uint32 dayOfMonth = 4; // required uint32 dayOfMonth = 4;
private int dayOfMonth_ ; private int dayOfMonth_ ;
public boolean hasDayOfMonth() { public boolean hasDayOfMonth() {
return ((bitField0_ & 0x00000004) == 0x00000004); return (bitField0_ & 0x00000004) == 0x00000004;
} }
public int getDayOfMonth() { public int getDayOfMonth() {
return dayOfMonth_; return dayOfMonth_;
@ -1866,7 +1884,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearDayOfMonth() { public Builder clearDayOfMonth() {
bitField0_ = (bitField0_ & ~0x00000004); bitField0_ = bitField0_ & ~0x00000004;
dayOfMonth_ = 0; dayOfMonth_ = 0;
onChanged(); onChanged();
return this; return this;
@ -1875,7 +1893,7 @@ public final class LocalTimeProtocol {
// required .org.jboss.netty.example.localtime.DayOfWeek dayOfWeek = 5; // required .org.jboss.netty.example.localtime.DayOfWeek dayOfWeek = 5;
private org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY; private org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY;
public boolean hasDayOfWeek() { public boolean hasDayOfWeek() {
return ((bitField0_ & 0x00000008) == 0x00000008); return (bitField0_ & 0x00000008) == 0x00000008;
} }
public org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek getDayOfWeek() { public org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek getDayOfWeek() {
return dayOfWeek_; return dayOfWeek_;
@ -1890,7 +1908,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearDayOfWeek() { public Builder clearDayOfWeek() {
bitField0_ = (bitField0_ & ~0x00000008); bitField0_ = bitField0_ & ~0x00000008;
dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY; dayOfWeek_ = org.jboss.netty.example.localtime.LocalTimeProtocol.DayOfWeek.SUNDAY;
onChanged(); onChanged();
return this; return this;
@ -1899,7 +1917,7 @@ public final class LocalTimeProtocol {
// required uint32 hour = 6; // required uint32 hour = 6;
private int hour_ ; private int hour_ ;
public boolean hasHour() { public boolean hasHour() {
return ((bitField0_ & 0x00000010) == 0x00000010); return (bitField0_ & 0x00000010) == 0x00000010;
} }
public int getHour() { public int getHour() {
return hour_; return hour_;
@ -1911,7 +1929,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearHour() { public Builder clearHour() {
bitField0_ = (bitField0_ & ~0x00000010); bitField0_ = bitField0_ & ~0x00000010;
hour_ = 0; hour_ = 0;
onChanged(); onChanged();
return this; return this;
@ -1920,7 +1938,7 @@ public final class LocalTimeProtocol {
// required uint32 minute = 7; // required uint32 minute = 7;
private int minute_ ; private int minute_ ;
public boolean hasMinute() { public boolean hasMinute() {
return ((bitField0_ & 0x00000020) == 0x00000020); return (bitField0_ & 0x00000020) == 0x00000020;
} }
public int getMinute() { public int getMinute() {
return minute_; return minute_;
@ -1932,7 +1950,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearMinute() { public Builder clearMinute() {
bitField0_ = (bitField0_ & ~0x00000020); bitField0_ = bitField0_ & ~0x00000020;
minute_ = 0; minute_ = 0;
onChanged(); onChanged();
return this; return this;
@ -1941,7 +1959,7 @@ public final class LocalTimeProtocol {
// required uint32 second = 8; // required uint32 second = 8;
private int second_ ; private int second_ ;
public boolean hasSecond() { public boolean hasSecond() {
return ((bitField0_ & 0x00000040) == 0x00000040); return (bitField0_ & 0x00000040) == 0x00000040;
} }
public int getSecond() { public int getSecond() {
return second_; return second_;
@ -1953,7 +1971,7 @@ public final class LocalTimeProtocol {
return this; return this;
} }
public Builder clearSecond() { public Builder clearSecond() {
bitField0_ = (bitField0_ & ~0x00000040); bitField0_ = bitField0_ & ~0x00000040;
second_ = 0; second_ = 0;
onChanged(); onChanged();
return this; return this;
@ -2038,7 +2056,9 @@ public final class LocalTimeProtocol {
private byte memoizedIsInitialized = -1; private byte memoizedIsInitialized = -1;
public final boolean isInitialized() { public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized; byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1; if (isInitialized != -1) {
return isInitialized == 1;
}
for (int i = 0; i < getLocalTimeCount(); i++) { for (int i = 0; i < getLocalTimeCount(); i++) {
if (!getLocalTime(i).isInitialized()) { if (!getLocalTime(i).isInitialized()) {
@ -2062,7 +2082,9 @@ public final class LocalTimeProtocol {
private int memoizedSerializedSize = -1; private int memoizedSerializedSize = -1;
public int getSerializedSize() { public int getSerializedSize() {
int size = memoizedSerializedSize; int size = memoizedSerializedSize;
if (size != -1) return size; if (size != -1) {
return size;
}
size = 0; size = 0;
for (int i = 0; i < localTime_.size(); i++) { for (int i = 0; i < localTime_.size(); i++) {
@ -2196,7 +2218,7 @@ public final class LocalTimeProtocol {
super.clear(); super.clear();
if (localTimeBuilder_ == null) { if (localTimeBuilder_ == null) {
localTime_ = java.util.Collections.emptyList(); localTime_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
} else { } else {
localTimeBuilder_.clear(); localTimeBuilder_.clear();
} }
@ -2238,9 +2260,9 @@ public final class LocalTimeProtocol {
org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes result = new org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes(this); org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes result = new org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes(this);
int from_bitField0_ = bitField0_; int from_bitField0_ = bitField0_;
if (localTimeBuilder_ == null) { if (localTimeBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) { if ((bitField0_ & 0x00000001) == 0x00000001) {
localTime_ = java.util.Collections.unmodifiableList(localTime_); localTime_ = java.util.Collections.unmodifiableList(localTime_);
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
} }
result.localTime_ = localTime_; result.localTime_ = localTime_;
} else { } else {
@ -2260,12 +2282,14 @@ public final class LocalTimeProtocol {
} }
public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes other) { public Builder mergeFrom(org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes other) {
if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.getDefaultInstance()) return this; if (other == org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimes.getDefaultInstance()) {
return this;
}
if (localTimeBuilder_ == null) { if (localTimeBuilder_ == null) {
if (!other.localTime_.isEmpty()) { if (!other.localTime_.isEmpty()) {
if (localTime_.isEmpty()) { if (localTime_.isEmpty()) {
localTime_ = other.localTime_; localTime_ = other.localTime_;
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
} else { } else {
ensureLocalTimeIsMutable(); ensureLocalTimeIsMutable();
localTime_.addAll(other.localTime_); localTime_.addAll(other.localTime_);
@ -2278,7 +2302,7 @@ public final class LocalTimeProtocol {
localTimeBuilder_.dispose(); localTimeBuilder_.dispose();
localTimeBuilder_ = null; localTimeBuilder_ = null;
localTime_ = other.localTime_; localTime_ = other.localTime_;
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
localTimeBuilder_ = localTimeBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getLocalTimeFieldBuilder() : null; getLocalTimeFieldBuilder() : null;
@ -2287,7 +2311,7 @@ public final class LocalTimeProtocol {
} }
} }
} }
this.mergeUnknownFields(other.getUnknownFields()); mergeUnknownFields(other.getUnknownFields());
return this; return this;
} }
@ -2307,18 +2331,18 @@ public final class LocalTimeProtocol {
throws java.io.IOException { throws java.io.IOException {
com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder( com.google.protobuf.UnknownFieldSet.newBuilder(
this.getUnknownFields()); getUnknownFields());
while (true) { while (true) {
int tag = input.readTag(); int tag = input.readTag();
switch (tag) { switch (tag) {
case 0: case 0:
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
default: { default: {
if (!parseUnknownField(input, unknownFields, if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) { extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build()); setUnknownFields(unknownFields.build());
onChanged(); onChanged();
return this; return this;
} }
@ -2458,7 +2482,7 @@ public final class LocalTimeProtocol {
public Builder clearLocalTime() { public Builder clearLocalTime() {
if (localTimeBuilder_ == null) { if (localTimeBuilder_ == null) {
localTime_ = java.util.Collections.emptyList(); localTime_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = bitField0_ & ~0x00000001;
onChanged(); onChanged();
} else { } else {
localTimeBuilder_.clear(); localTimeBuilder_.clear();
@ -2514,7 +2538,7 @@ public final class LocalTimeProtocol {
localTimeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< localTimeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder>( org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTime.Builder, org.jboss.netty.example.localtime.LocalTimeProtocol.LocalTimeOrBuilder>(
localTime_, localTime_,
((bitField0_ & 0x00000001) == 0x00000001), (bitField0_ & 0x00000001) == 0x00000001,
getParentForChildren(), getParentForChildren(),
isClean()); isClean());
localTime_ = null; localTime_ = null;

View File

@ -16,7 +16,6 @@
package org.jboss.netty.example.qotm; package org.jboss.netty.example.qotm;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import org.jboss.netty.bootstrap.ConnectionlessBootstrap; import org.jboss.netty.bootstrap.ConnectionlessBootstrap;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
@ -44,9 +43,7 @@ public class QuoteOfTheMomentServer {
} }
public void run() { public void run() {
DatagramChannelFactory f = DatagramChannelFactory f = new NioDatagramChannelFactory();
new NioDatagramChannelFactory(Executors.newCachedThreadPool());
ConnectionlessBootstrap b = new ConnectionlessBootstrap(f); ConnectionlessBootstrap b = new ConnectionlessBootstrap(f);
// Configure the pipeline factory. // Configure the pipeline factory.

View File

@ -18,9 +18,9 @@ package org.jboss.netty.handler.codec.base64;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder; import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
import org.jboss.netty.handler.codec.frame.Delimiters; import org.jboss.netty.handler.codec.frame.Delimiters;
import org.jboss.netty.handler.codec.frame.FrameDecoder; import org.jboss.netty.handler.codec.frame.FrameDecoder;

View File

@ -17,9 +17,9 @@ package org.jboss.netty.handler.codec.base64;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder; import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
import org.jboss.netty.handler.codec.frame.Delimiters; import org.jboss.netty.handler.codec.frame.Delimiters;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;

View File

@ -31,6 +31,7 @@ import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.LifeCycleAwareChannelHandler; import org.jboss.netty.channel.LifeCycleAwareChannelHandler;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler; import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
import org.jboss.netty.handler.codec.replay.ReplayingDecoder;
/** /**
* Decodes the received {@link ChannelBuffer}s into a meaningful frame object. * Decodes the received {@link ChannelBuffer}s into a meaningful frame object.
@ -452,7 +453,7 @@ public abstract class FrameDecoder extends SimpleChannelUpstreamHandler implemen
* Use it only when you must use it at your own risk. * Use it only when you must use it at your own risk.
*/ */
protected ChannelBuffer internalBuffer() { protected ChannelBuffer internalBuffer() {
ChannelBuffer buf = this.cumulation; ChannelBuffer buf = cumulation;
if (buf == null) { if (buf == null) {
return ChannelBuffers.EMPTY_BUFFER; return ChannelBuffers.EMPTY_BUFFER;
} }
@ -465,17 +466,14 @@ public abstract class FrameDecoder extends SimpleChannelUpstreamHandler implemen
public void afterAdd(ChannelHandlerContext ctx) throws Exception { public void afterAdd(ChannelHandlerContext ctx) throws Exception {
// Nothing to do.. // Nothing to do..
} }
public void beforeRemove(ChannelHandlerContext ctx) throws Exception { public void beforeRemove(ChannelHandlerContext ctx) throws Exception {
// Nothing to do.. // Nothing to do..
} }
public void afterRemove(ChannelHandlerContext ctx) throws Exception { public void afterRemove(ChannelHandlerContext ctx) throws Exception {
// Nothing to do.. // Nothing to do..
} }
} }

View File

@ -402,14 +402,14 @@ public class LengthFieldBasedFrameDecoder extends FrameDecoder {
long tooLongFrameLength = this.tooLongFrameLength; long tooLongFrameLength = this.tooLongFrameLength;
this.tooLongFrameLength = 0; this.tooLongFrameLength = 0;
discardingTooLongFrame = false; discardingTooLongFrame = false;
if ((!failFast) || if (!failFast ||
(failFast && firstDetectionOfTooLongFrame)) { failFast && firstDetectionOfTooLongFrame) {
fail(ctx, tooLongFrameLength); fail(ctx, tooLongFrameLength);
} }
} else { } else {
// Keep discarding and notify handlers if necessary. // Keep discarding and notify handlers if necessary.
if (failFast && firstDetectionOfTooLongFrame) { if (failFast && firstDetectionOfTooLongFrame) {
fail(ctx, this.tooLongFrameLength); fail(ctx, tooLongFrameLength);
} }
} }

View File

@ -22,8 +22,8 @@ import java.nio.ByteOrder;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBufferFactory; import org.jboss.netty.buffer.ChannelBufferFactory;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
/** /**

View File

@ -130,11 +130,11 @@ public class CookieEncoder {
} }
if (cookie.isSecure()) { if (cookie.isSecure()) {
sb.append(CookieHeaderNames.SECURE); sb.append(CookieHeaderNames.SECURE);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
if (cookie.isHttpOnly()) { if (cookie.isHttpOnly()) {
sb.append(CookieHeaderNames.HTTPONLY); sb.append(CookieHeaderNames.HTTPONLY);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
if (cookie.getVersion() >= 1) { if (cookie.getVersion() >= 1) {
if (cookie.getComment() != null) { if (cookie.getComment() != null) {
@ -149,18 +149,18 @@ public class CookieEncoder {
if (!cookie.getPorts().isEmpty()) { if (!cookie.getPorts().isEmpty()) {
sb.append(CookieHeaderNames.PORT); sb.append(CookieHeaderNames.PORT);
sb.append((char) HttpCodecUtil.EQUALS); sb.append((char) HttpConstants.EQUALS);
sb.append((char) HttpCodecUtil.DOUBLE_QUOTE); sb.append((char) HttpConstants.DOUBLE_QUOTE);
for (int port: cookie.getPorts()) { for (int port: cookie.getPorts()) {
sb.append(port); sb.append(port);
sb.append((char) HttpCodecUtil.COMMA); sb.append((char) HttpConstants.COMMA);
} }
sb.setCharAt(sb.length() - 1, (char) HttpCodecUtil.DOUBLE_QUOTE); sb.setCharAt(sb.length() - 1, (char) HttpConstants.DOUBLE_QUOTE);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
if (cookie.isDiscard()) { if (cookie.isDiscard()) {
sb.append(CookieHeaderNames.DISCARD); sb.append(CookieHeaderNames.DISCARD);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
} }
} }
@ -194,14 +194,14 @@ public class CookieEncoder {
if (!cookie.getPorts().isEmpty()) { if (!cookie.getPorts().isEmpty()) {
sb.append('$'); sb.append('$');
sb.append(CookieHeaderNames.PORT); sb.append(CookieHeaderNames.PORT);
sb.append((char) HttpCodecUtil.EQUALS); sb.append((char) HttpConstants.EQUALS);
sb.append((char) HttpCodecUtil.DOUBLE_QUOTE); sb.append((char) HttpConstants.DOUBLE_QUOTE);
for (int port: cookie.getPorts()) { for (int port: cookie.getPorts()) {
sb.append(port); sb.append(port);
sb.append((char) HttpCodecUtil.COMMA); sb.append((char) HttpConstants.COMMA);
} }
sb.setCharAt(sb.length() - 1, (char) HttpCodecUtil.DOUBLE_QUOTE); sb.setCharAt(sb.length() - 1, (char) HttpConstants.DOUBLE_QUOTE);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
} }
} }
@ -235,9 +235,9 @@ public class CookieEncoder {
private static void addUnquoted(StringBuilder sb, String name, String val) { private static void addUnquoted(StringBuilder sb, String name, String val) {
sb.append(name); sb.append(name);
sb.append((char) HttpCodecUtil.EQUALS); sb.append((char) HttpConstants.EQUALS);
sb.append(val); sb.append(val);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
private static void addQuoted(StringBuilder sb, String name, String val) { private static void addQuoted(StringBuilder sb, String name, String val) {
@ -246,17 +246,17 @@ public class CookieEncoder {
} }
sb.append(name); sb.append(name);
sb.append((char) HttpCodecUtil.EQUALS); sb.append((char) HttpConstants.EQUALS);
sb.append((char) HttpCodecUtil.DOUBLE_QUOTE); sb.append((char) HttpConstants.DOUBLE_QUOTE);
sb.append(val.replace("\\", "\\\\").replace("\"", "\\\"")); sb.append(val.replace("\\", "\\\\").replace("\"", "\\\""));
sb.append((char) HttpCodecUtil.DOUBLE_QUOTE); sb.append((char) HttpConstants.DOUBLE_QUOTE);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
private static void add(StringBuilder sb, String name, int val) { private static void add(StringBuilder sb, String name, int val) {
sb.append(name); sb.append(name);
sb.append((char) HttpCodecUtil.EQUALS); sb.append((char) HttpConstants.EQUALS);
sb.append(val); sb.append(val);
sb.append((char) HttpCodecUtil.SEMICOLON); sb.append((char) HttpConstants.SEMICOLON);
} }
} }

View File

@ -19,6 +19,8 @@ import java.util.Collections;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import org.jboss.netty.util.internal.CaseIgnoringComparator;
/** /**

View File

@ -15,60 +15,9 @@
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http;
import java.nio.charset.Charset;
import java.util.List; import java.util.List;
import org.jboss.netty.util.CharsetUtil;
final class HttpCodecUtil { final class HttpCodecUtil {
//space ' '
static final byte SP = 32;
//tab ' '
static final byte HT = 9;
/**
* Carriage return
*/
static final byte CR = 13;
/**
* Equals '='
*/
static final byte EQUALS = 61;
/**
* Line feed character
*/
static final byte LF = 10;
/**
* carriage return line feed
*/
static final byte[] CRLF = new byte[] { CR, LF };
/**
* Colon ':'
*/
static final byte COLON = 58;
/**
* Semicolon ';'
*/
static final byte SEMICOLON = 59;
/**
* comma ','
*/
static final byte COMMA = 44;
static final byte DOUBLE_QUOTE = '"';
static final Charset DEFAULT_CHARSET = CharsetUtil.UTF_8;
private HttpCodecUtil() {
super();
}
static void validateHeaderName(String name) { static void validateHeaderName(String name) {
if (name == null) { if (name == null) {
@ -168,4 +117,8 @@ final class HttpCodecUtil {
} }
return false; return false;
} }
private HttpCodecUtil() {
super();
}
} }

View File

@ -0,0 +1,77 @@
/*
* Copyright 2012 The Netty Project
*
* The Netty Project 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.jboss.netty.handler.codec.http;
import java.nio.charset.Charset;
import org.jboss.netty.util.CharsetUtil;
public final class HttpConstants {
/**
* Horizontal space
*/
public static final byte SP = 32;
/**
* Horizontal tab
*/
public static final byte HT = 9;
/**
* Carriage return
*/
public static final byte CR = 13;
/**
* Equals '='
*/
public static final byte EQUALS = 61;
/**
* Line feed character
*/
public static final byte LF = 10;
/**
* Colon ':'
*/
public static final byte COLON = 58;
/**
* Semicolon ';'
*/
public static final byte SEMICOLON = 59;
/**
* Comma ','
*/
public static final byte COMMA = 44;
/**
* Double quote '"'
*/
public static final byte DOUBLE_QUOTE = '"';
/**
* Default character set (UTF-8)
*/
public static final Charset DEFAULT_CHARSET = CharsetUtil.UTF_8;
private HttpConstants() {
// Unused
}
}

View File

@ -21,6 +21,8 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import org.jboss.netty.util.internal.CaseIgnoringComparator;
/** /**
* Provides the constants for the standard HTTP header names and values and * Provides the constants for the standard HTTP header names and values and
@ -321,7 +323,7 @@ public class HttpHeaders {
/** /**
* {@code "boundary"} * {@code "boundary"}
*/ */
static final String BOUNDARY = "boundary"; public static final String BOUNDARY = "boundary";
/** /**
* {@code "bytes"} * {@code "bytes"}
*/ */
@ -377,7 +379,7 @@ public class HttpHeaders {
/** /**
* {@code "multipart/form-data"} * {@code "multipart/form-data"}
*/ */
static final String MULTIPART_FORM_DATA = "multipart/form-data"; public static final String MULTIPART_FORM_DATA = "multipart/form-data";
/** /**
* {@code "must-revalidate"} * {@code "must-revalidate"}
*/ */

View File

@ -335,12 +335,12 @@ public abstract class HttpMessageDecoder extends ReplayingDecoder<HttpMessageDec
case READ_CHUNK_DELIMITER: { case READ_CHUNK_DELIMITER: {
for (;;) { for (;;) {
byte next = buffer.readByte(); byte next = buffer.readByte();
if (next == HttpCodecUtil.CR) { if (next == HttpConstants.CR) {
if (buffer.readByte() == HttpCodecUtil.LF) { if (buffer.readByte() == HttpConstants.LF) {
checkpoint(State.READ_CHUNK_SIZE); checkpoint(State.READ_CHUNK_SIZE);
return null; return null;
} }
} else if (next == HttpCodecUtil.LF) { } else if (next == HttpConstants.LF) {
checkpoint(State.READ_CHUNK_SIZE); checkpoint(State.READ_CHUNK_SIZE);
return null; return null;
} }
@ -524,14 +524,14 @@ public abstract class HttpMessageDecoder extends ReplayingDecoder<HttpMessageDec
headerSize ++; headerSize ++;
switch (nextByte) { switch (nextByte) {
case HttpCodecUtil.CR: case HttpConstants.CR:
nextByte = (char) buffer.readByte(); nextByte = (char) buffer.readByte();
headerSize ++; headerSize ++;
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
break loop; break loop;
} }
break; break;
case HttpCodecUtil.LF: case HttpConstants.LF:
break loop; break loop;
} }
@ -575,12 +575,12 @@ public abstract class HttpMessageDecoder extends ReplayingDecoder<HttpMessageDec
int lineLength = 0; int lineLength = 0;
while (true) { while (true) {
byte nextByte = buffer.readByte(); byte nextByte = buffer.readByte();
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
nextByte = buffer.readByte(); nextByte = buffer.readByte();
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
return sb.toString(); return sb.toString();
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
return sb.toString(); return sb.toString();
} else { } else {
if (lineLength >= maxLineLength) { if (lineLength >= maxLineLength) {

View File

@ -16,7 +16,7 @@
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http;
import static org.jboss.netty.buffer.ChannelBuffers.*; import static org.jboss.netty.buffer.ChannelBuffers.*;
import static org.jboss.netty.handler.codec.http.HttpCodecUtil.*; import static org.jboss.netty.handler.codec.http.HttpConstants.*;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Map; import java.util.Map;
@ -46,6 +46,7 @@ import org.jboss.netty.util.CharsetUtil;
*/ */
public abstract class HttpMessageEncoder extends OneToOneEncoder { public abstract class HttpMessageEncoder extends OneToOneEncoder {
private static final byte[] CRLF = new byte[] { CR, LF };
private static final ChannelBuffer LAST_CHUNK = private static final ChannelBuffer LAST_CHUNK =
copiedBuffer("0\r\n\r\n", CharsetUtil.US_ASCII); copiedBuffer("0\r\n\r\n", CharsetUtil.US_ASCII);

View File

@ -15,7 +15,7 @@
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http;
import static org.jboss.netty.handler.codec.http.HttpCodecUtil.*; import static org.jboss.netty.handler.codec.http.HttpConstants.*;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;

View File

@ -15,7 +15,7 @@
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http;
import static org.jboss.netty.handler.codec.http.HttpCodecUtil.*; import static org.jboss.netty.handler.codec.http.HttpConstants.*;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;

View File

@ -74,7 +74,7 @@ public class QueryStringDecoder {
* assume that the query string is encoded in UTF-8. * assume that the query string is encoded in UTF-8.
*/ */
public QueryStringDecoder(String uri) { public QueryStringDecoder(String uri) {
this(uri, HttpCodecUtil.DEFAULT_CHARSET); this(uri, HttpConstants.DEFAULT_CHARSET);
} }
/** /**
@ -82,7 +82,7 @@ public class QueryStringDecoder {
* specified charset. * specified charset.
*/ */
public QueryStringDecoder(String uri, boolean hasPath) { public QueryStringDecoder(String uri, boolean hasPath) {
this(uri, HttpCodecUtil.DEFAULT_CHARSET, hasPath); this(uri, HttpConstants.DEFAULT_CHARSET, hasPath);
} }
/** /**
@ -137,7 +137,7 @@ public class QueryStringDecoder {
* assume that the query string is encoded in UTF-8. * assume that the query string is encoded in UTF-8.
*/ */
public QueryStringDecoder(URI uri) { public QueryStringDecoder(URI uri) {
this(uri, HttpCodecUtil.DEFAULT_CHARSET); this(uri, HttpConstants.DEFAULT_CHARSET);
} }
/** /**
@ -305,7 +305,7 @@ public class QueryStringDecoder {
* escape sequence. * escape sequence.
*/ */
public static String decodeComponent(final String s) { public static String decodeComponent(final String s) {
return decodeComponent(s, HttpCodecUtil.DEFAULT_CHARSET); return decodeComponent(s, HttpConstants.DEFAULT_CHARSET);
} }
/** /**

View File

@ -49,7 +49,7 @@ public class QueryStringEncoder {
* path string. The encoder will encode the URI in UTF-8. * path string. The encoder will encode the URI in UTF-8.
*/ */
public QueryStringEncoder(String uri) { public QueryStringEncoder(String uri) {
this(uri, HttpCodecUtil.DEFAULT_CHARSET); this(uri, HttpConstants.DEFAULT_CHARSET);
} }
/** /**

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@ -26,6 +26,7 @@ import java.nio.charset.Charset;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.handler.codec.http.HttpConstants;
/** /**
* Abstract Disk HttpData implementation * Abstract Disk HttpData implementation
@ -259,7 +260,7 @@ public abstract class AbstractDiskHttpData extends AbstractHttpData {
} }
public String getString() throws IOException { public String getString() throws IOException {
return getString(HttpCodecUtil.DEFAULT_CHARSET); return getString(HttpConstants.DEFAULT_CHARSET);
} }
public String getString(Charset encoding) throws IOException { public String getString(Charset encoding) throws IOException {
@ -268,7 +269,7 @@ public abstract class AbstractDiskHttpData extends AbstractHttpData {
} }
if (encoding == null) { if (encoding == null) {
byte[] array = readFrom(file); byte[] array = readFrom(file);
return new String(array, HttpCodecUtil.DEFAULT_CHARSET.name()); return new String(array, HttpConstants.DEFAULT_CHARSET.name());
} }
byte[] array = readFrom(file); byte[] array = readFrom(file);
return new String(array, encoding.name()); return new String(array, encoding.name());

View File

@ -13,10 +13,12 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import org.jboss.netty.handler.codec.http.HttpConstants;
/** /**
* Abstract HttpData implementation * Abstract HttpData implementation
*/ */
@ -25,7 +27,7 @@ public abstract class AbstractHttpData implements HttpData {
protected final String name; protected final String name;
protected long definedSize; protected long definedSize;
protected long size; protected long size;
protected Charset charset = HttpCodecUtil.DEFAULT_CHARSET; protected Charset charset = HttpConstants.DEFAULT_CHARSET;
protected boolean completed; protected boolean completed;
public AbstractHttpData(String name, Charset charset, long size) { public AbstractHttpData(String name, Charset charset, long size) {

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@ -26,6 +26,7 @@ import java.nio.charset.Charset;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.handler.codec.http.HttpConstants;
/** /**
* Abstract Memory HttpData implementation * Abstract Memory HttpData implementation
@ -138,7 +139,7 @@ public abstract class AbstractMemoryHttpData extends AbstractHttpData {
} }
public String getString() { public String getString() {
return getString(HttpCodecUtil.DEFAULT_CHARSET); return getString(HttpConstants.DEFAULT_CHARSET);
} }
public String getString(Charset encoding) { public String getString(Charset encoding) {
@ -146,7 +147,7 @@ public abstract class AbstractMemoryHttpData extends AbstractHttpData {
return ""; return "";
} }
if (encoding == null) { if (encoding == null) {
return getString(HttpCodecUtil.DEFAULT_CHARSET); return getString(HttpConstants.DEFAULT_CHARSET);
} }
return channelBuffer.toString(encoding); return channelBuffer.toString(encoding);
} }

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.IOException; import java.io.IOException;

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.Charset;
@ -21,6 +21,8 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import org.jboss.netty.handler.codec.http.HttpRequest;
/** /**
* Default factory giving Attribute and FileUpload according to constructor * Default factory giving Attribute and FileUpload according to constructor
* *
@ -35,9 +37,9 @@ public class DefaultHttpDataFactory implements HttpDataFactory {
*/ */
public static long MINSIZE = 0x4000; public static long MINSIZE = 0x4000;
private boolean useDisk; private final boolean useDisk;
private boolean checkSize; private final boolean checkSize;
private long minSize; private long minSize;
@ -53,7 +55,7 @@ public class DefaultHttpDataFactory implements HttpDataFactory {
public DefaultHttpDataFactory() { public DefaultHttpDataFactory() {
useDisk = false; useDisk = false;
checkSize = true; checkSize = true;
this.minSize = MINSIZE; minSize = MINSIZE;
} }
/** /**

View File

@ -13,12 +13,13 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.IOException; import java.io.IOException;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.handler.codec.http.HttpConstants;
/** /**
* Disk implementation of Attributes * Disk implementation of Attributes
@ -37,7 +38,7 @@ public class DiskAttribute extends AbstractDiskHttpData implements Attribute {
* @param name * @param name
*/ */
public DiskAttribute(String name) { public DiskAttribute(String name) {
super(name, HttpCodecUtil.DEFAULT_CHARSET, 0); super(name, HttpConstants.DEFAULT_CHARSET, 0);
} }
/** /**
* *
@ -48,7 +49,7 @@ public class DiskAttribute extends AbstractDiskHttpData implements Attribute {
* @throws IOException * @throws IOException
*/ */
public DiskAttribute(String name, String value) throws IOException { public DiskAttribute(String name, String value) throws IOException {
super(name, HttpCodecUtil.DEFAULT_CHARSET, 0); // Attribute have no default size super(name, HttpConstants.DEFAULT_CHARSET, 0); // Attribute have no default size
setValue(value); setValue(value);
} }

View File

@ -13,11 +13,13 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.File; import java.io.File;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import org.jboss.netty.handler.codec.http.HttpHeaders;
/** /**
* Disk FileUpload implementation that stores file into real files * Disk FileUpload implementation that stores file into real files
*/ */

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
/** /**
* FileUpload interface that could be in memory, on temporary file or any other implementations. * FileUpload interface that could be in memory, on temporary file or any other implementations.

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;

View File

@ -13,10 +13,12 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import org.jboss.netty.handler.codec.http.HttpRequest;
/** /**
* Interface to enable creation of InterfaceHttpData objects * Interface to enable creation of InterfaceHttpData objects
*/ */

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.nio.charset.Charset; import java.nio.charset.Charset;
@ -147,9 +147,9 @@ final class HttpPostBodyUtil {
throw new SeekAheadNoBackArrayException(); throw new SeekAheadNoBackArrayException();
} }
this.buffer = buffer; this.buffer = buffer;
this.bytes = buffer.array(); bytes = buffer.array();
this.pos = this.readerIndex = buffer.readerIndex(); pos = readerIndex = buffer.readerIndex();
this.limit = buffer.writerIndex(); limit = buffer.writerIndex();
} }
/** /**
@ -164,11 +164,11 @@ final class HttpPostBodyUtil {
} }
void clear() { void clear() {
this.buffer = null; buffer = null;
this.bytes = null; bytes = null;
this.limit = 0; limit = 0;
this.pos = 0; pos = 0;
this.readerIndex = 0; readerIndex = 0;
} }
} }

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
@ -26,9 +26,15 @@ import java.util.TreeMap;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.handler.codec.http.HttpPostBodyUtil.SeekAheadNoBackArrayException; import org.jboss.netty.handler.codec.http.HttpChunk;
import org.jboss.netty.handler.codec.http.HttpPostBodyUtil.SeekAheadOptimize; import org.jboss.netty.handler.codec.http.HttpConstants;
import org.jboss.netty.handler.codec.http.HttpPostBodyUtil.TransferEncodingMechanism; import org.jboss.netty.handler.codec.http.HttpHeaders;
import org.jboss.netty.handler.codec.http.HttpMethod;
import org.jboss.netty.handler.codec.http.HttpRequest;
import org.jboss.netty.handler.codec.http.multipart.HttpPostBodyUtil.SeekAheadNoBackArrayException;
import org.jboss.netty.handler.codec.http.multipart.HttpPostBodyUtil.SeekAheadOptimize;
import org.jboss.netty.handler.codec.http.multipart.HttpPostBodyUtil.TransferEncodingMechanism;
import org.jboss.netty.util.internal.CaseIgnoringComparator;
/** /**
* This decoder will decode Body and can handle POST BODY. * This decoder will decode Body and can handle POST BODY.
@ -126,7 +132,7 @@ public class HttpPostRequestDecoder {
public HttpPostRequestDecoder(HttpRequest request) public HttpPostRequestDecoder(HttpRequest request)
throws ErrorDataDecoderException, IncompatibleDataDecoderException { throws ErrorDataDecoderException, IncompatibleDataDecoderException {
this(new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE), this(new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE),
request, HttpCodecUtil.DEFAULT_CHARSET); request, HttpConstants.DEFAULT_CHARSET);
} }
/** /**
@ -139,7 +145,7 @@ public class HttpPostRequestDecoder {
*/ */
public HttpPostRequestDecoder(HttpDataFactory factory, HttpRequest request) public HttpPostRequestDecoder(HttpDataFactory factory, HttpRequest request)
throws ErrorDataDecoderException, IncompatibleDataDecoderException { throws ErrorDataDecoderException, IncompatibleDataDecoderException {
this(factory, request, HttpCodecUtil.DEFAULT_CHARSET); this(factory, request, HttpConstants.DEFAULT_CHARSET);
} }
/** /**
@ -471,11 +477,11 @@ public class HttpPostRequestDecoder {
setFinalBuffer(undecodedChunk.slice(firstpos, ampersandpos - firstpos)); setFinalBuffer(undecodedChunk.slice(firstpos, ampersandpos - firstpos));
firstpos = currentpos; firstpos = currentpos;
contRead = true; contRead = true;
} else if (read == HttpCodecUtil.CR) { } else if (read == HttpConstants.CR) {
if (undecodedChunk.readable()) { if (undecodedChunk.readable()) {
read = (char) undecodedChunk.readUnsignedByte(); read = (char) undecodedChunk.readUnsignedByte();
currentpos++; currentpos++;
if (read == HttpCodecUtil.LF) { if (read == HttpConstants.LF) {
currentStatus = MultiPartStatus.PREEPILOGUE; currentStatus = MultiPartStatus.PREEPILOGUE;
ampersandpos = currentpos - 2; ampersandpos = currentpos - 2;
setFinalBuffer( setFinalBuffer(
@ -490,7 +496,7 @@ public class HttpPostRequestDecoder {
} else { } else {
currentpos--; currentpos--;
} }
} else if (read == HttpCodecUtil.LF) { } else if (read == HttpConstants.LF) {
currentStatus = MultiPartStatus.PREEPILOGUE; currentStatus = MultiPartStatus.PREEPILOGUE;
ampersandpos = currentpos - 1; ampersandpos = currentpos - 1;
setFinalBuffer( setFinalBuffer(
@ -597,11 +603,11 @@ public class HttpPostRequestDecoder {
setFinalBuffer(undecodedChunk.slice(firstpos, ampersandpos - firstpos)); setFinalBuffer(undecodedChunk.slice(firstpos, ampersandpos - firstpos));
firstpos = currentpos; firstpos = currentpos;
contRead = true; contRead = true;
} else if (read == HttpCodecUtil.CR) { } else if (read == HttpConstants.CR) {
if (sao.pos < sao.limit) { if (sao.pos < sao.limit) {
read = (char) (sao.bytes[sao.pos ++] & 0xFF); read = (char) (sao.bytes[sao.pos ++] & 0xFF);
currentpos++; currentpos++;
if (read == HttpCodecUtil.LF) { if (read == HttpConstants.LF) {
currentStatus = MultiPartStatus.PREEPILOGUE; currentStatus = MultiPartStatus.PREEPILOGUE;
ampersandpos = currentpos - 2; ampersandpos = currentpos - 2;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -621,7 +627,7 @@ public class HttpPostRequestDecoder {
currentpos --; currentpos --;
} }
} }
} else if (read == HttpCodecUtil.LF) { } else if (read == HttpConstants.LF) {
currentStatus = MultiPartStatus.PREEPILOGUE; currentStatus = MultiPartStatus.PREEPILOGUE;
ampersandpos = currentpos - 1; ampersandpos = currentpos - 1;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1212,12 +1218,12 @@ public class HttpPostRequestDecoder {
StringBuilder sb = new StringBuilder(64); StringBuilder sb = new StringBuilder(64);
while (undecodedChunk.readable()) { while (undecodedChunk.readable()) {
byte nextByte = undecodedChunk.readByte(); byte nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
nextByte = undecodedChunk.readByte(); nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
return sb.toString(); return sb.toString();
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
return sb.toString(); return sb.toString();
} else { } else {
sb.append((char) nextByte); sb.append((char) nextByte);
@ -1248,17 +1254,17 @@ public class HttpPostRequestDecoder {
StringBuilder sb = new StringBuilder(64); StringBuilder sb = new StringBuilder(64);
while (sao.pos < sao.limit) { while (sao.pos < sao.limit) {
byte nextByte = sao.bytes[sao.pos ++]; byte nextByte = sao.bytes[sao.pos ++];
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (sao.pos < sao.limit) { if (sao.pos < sao.limit) {
nextByte = sao.bytes[sao.pos ++]; nextByte = sao.bytes[sao.pos ++];
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
sao.setReadPosition(0); sao.setReadPosition(0);
return sb.toString(); return sb.toString();
} }
} else { } else {
sb.append((char) nextByte); sb.append((char) nextByte);
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
sao.setReadPosition(0); sao.setReadPosition(0);
return sb.toString(); return sb.toString();
} else { } else {
@ -1304,16 +1310,16 @@ public class HttpPostRequestDecoder {
newLine = false; newLine = false;
index = 0; index = 0;
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (undecodedChunk.readable()) { if (undecodedChunk.readable()) {
nextByte = undecodedChunk.readByte(); nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 2; lastPosition = undecodedChunk.readerIndex() - 2;
} }
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 1; lastPosition = undecodedChunk.readerIndex() - 1;
@ -1324,16 +1330,16 @@ public class HttpPostRequestDecoder {
} }
} else { } else {
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (undecodedChunk.readable()) { if (undecodedChunk.readable()) {
nextByte = undecodedChunk.readByte(); nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 2; lastPosition = undecodedChunk.readerIndex() - 2;
} }
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 1; lastPosition = undecodedChunk.readerIndex() - 1;
@ -1407,10 +1413,10 @@ public class HttpPostRequestDecoder {
newLine = false; newLine = false;
index = 0; index = 0;
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (sao.pos < sao.limit) { if (sao.pos < sao.limit) {
nextByte = sao.bytes[sao.pos ++]; nextByte = sao.bytes[sao.pos ++];
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1421,7 +1427,7 @@ public class HttpPostRequestDecoder {
sao.setReadPosition(0); sao.setReadPosition(0);
lastPosition = undecodedChunk.readerIndex(); lastPosition = undecodedChunk.readerIndex();
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1434,10 +1440,10 @@ public class HttpPostRequestDecoder {
} }
} else { } else {
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (sao.pos < sao.limit) { if (sao.pos < sao.limit) {
nextByte = sao.bytes[sao.pos ++]; nextByte = sao.bytes[sao.pos ++];
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1448,7 +1454,7 @@ public class HttpPostRequestDecoder {
sao.setReadPosition(0); sao.setReadPosition(0);
lastPosition = undecodedChunk.readerIndex(); lastPosition = undecodedChunk.readerIndex();
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1512,16 +1518,16 @@ public class HttpPostRequestDecoder {
newLine = false; newLine = false;
index = 0; index = 0;
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (undecodedChunk.readable()) { if (undecodedChunk.readable()) {
nextByte = undecodedChunk.readByte(); nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 2; lastPosition = undecodedChunk.readerIndex() - 2;
} }
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 1; lastPosition = undecodedChunk.readerIndex() - 1;
@ -1531,16 +1537,16 @@ public class HttpPostRequestDecoder {
} }
} else { } else {
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (undecodedChunk.readable()) { if (undecodedChunk.readable()) {
nextByte = undecodedChunk.readByte(); nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 2; lastPosition = undecodedChunk.readerIndex() - 2;
} }
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
lastPosition = undecodedChunk.readerIndex() - 1; lastPosition = undecodedChunk.readerIndex() - 1;
@ -1616,10 +1622,10 @@ public class HttpPostRequestDecoder {
newLine = false; newLine = false;
index = 0; index = 0;
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (sao.pos < sao.limit) { if (sao.pos < sao.limit) {
nextByte = sao.bytes[sao.pos ++]; nextByte = sao.bytes[sao.pos ++];
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1629,7 +1635,7 @@ public class HttpPostRequestDecoder {
sao.setReadPosition(0); sao.setReadPosition(0);
lastPosition = undecodedChunk.readerIndex(); lastPosition = undecodedChunk.readerIndex();
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1641,10 +1647,10 @@ public class HttpPostRequestDecoder {
} }
} else { } else {
// continue until end of line // continue until end of line
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (sao.pos < sao.limit) { if (sao.pos < sao.limit) {
nextByte = sao.bytes[sao.pos ++]; nextByte = sao.bytes[sao.pos ++];
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1654,7 +1660,7 @@ public class HttpPostRequestDecoder {
sao.setReadPosition(0); sao.setReadPosition(0);
lastPosition = undecodedChunk.readerIndex(); lastPosition = undecodedChunk.readerIndex();
} }
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
newLine = true; newLine = true;
index = 0; index = 0;
sao.setReadPosition(0); sao.setReadPosition(0);
@ -1701,17 +1707,17 @@ public class HttpPostRequestDecoder {
int i = 0; int i = 0;
for (i = 0; i < field.length(); i ++) { for (i = 0; i < field.length(); i ++) {
char nextChar = field.charAt(i); char nextChar = field.charAt(i);
if (nextChar == HttpCodecUtil.COLON) { if (nextChar == HttpConstants.COLON) {
sb.append(HttpCodecUtil.SP); sb.append(HttpConstants.SP);
} else if (nextChar == HttpCodecUtil.COMMA) { } else if (nextChar == HttpConstants.COMMA) {
sb.append(HttpCodecUtil.SP); sb.append(HttpConstants.SP);
} else if (nextChar == HttpCodecUtil.EQUALS) { } else if (nextChar == HttpConstants.EQUALS) {
sb.append(HttpCodecUtil.SP); sb.append(HttpConstants.SP);
} else if (nextChar == HttpCodecUtil.SEMICOLON) { } else if (nextChar == HttpConstants.SEMICOLON) {
sb.append(HttpCodecUtil.SP); sb.append(HttpConstants.SP);
} else if (nextChar == HttpCodecUtil.HT) { } else if (nextChar == HttpConstants.HT) {
sb.append(HttpCodecUtil.SP); sb.append(HttpConstants.SP);
} else if (nextChar == HttpCodecUtil.DOUBLE_QUOTE) { } else if (nextChar == HttpConstants.DOUBLE_QUOTE) {
// nothing added, just removes it // nothing added, just removes it
} else { } else {
sb.append(nextChar); sb.append(nextChar);
@ -1729,18 +1735,18 @@ public class HttpPostRequestDecoder {
return false; return false;
} }
byte nextByte = undecodedChunk.readByte(); byte nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.CR) { if (nextByte == HttpConstants.CR) {
if (!undecodedChunk.readable()) { if (!undecodedChunk.readable()) {
undecodedChunk.readerIndex(undecodedChunk.readerIndex() - 1); undecodedChunk.readerIndex(undecodedChunk.readerIndex() - 1);
return false; return false;
} }
nextByte = undecodedChunk.readByte(); nextByte = undecodedChunk.readByte();
if (nextByte == HttpCodecUtil.LF) { if (nextByte == HttpConstants.LF) {
return true; return true;
} }
undecodedChunk.readerIndex(undecodedChunk.readerIndex() - 2); undecodedChunk.readerIndex(undecodedChunk.readerIndex() - 2);
return false; return false;
} else if (nextByte == HttpCodecUtil.LF) { } else if (nextByte == HttpConstants.LF) {
return true; return true;
} }
undecodedChunk.readerIndex(undecodedChunk.readerIndex() - 1); undecodedChunk.readerIndex(undecodedChunk.readerIndex() - 1);

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -27,6 +27,12 @@ import java.util.Random;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.handler.codec.http.DefaultHttpChunk;
import org.jboss.netty.handler.codec.http.HttpChunk;
import org.jboss.netty.handler.codec.http.HttpConstants;
import org.jboss.netty.handler.codec.http.HttpHeaders;
import org.jboss.netty.handler.codec.http.HttpMethod;
import org.jboss.netty.handler.codec.http.HttpRequest;
import org.jboss.netty.handler.stream.ChunkedInput; import org.jboss.netty.handler.stream.ChunkedInput;
/** /**
@ -92,7 +98,7 @@ public class HttpPostRequestEncoder implements ChunkedInput {
public HttpPostRequestEncoder(HttpRequest request, boolean multipart) public HttpPostRequestEncoder(HttpRequest request, boolean multipart)
throws ErrorDataEncoderException { throws ErrorDataEncoderException {
this(new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE), this(new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE),
request, multipart, HttpCodecUtil.DEFAULT_CHARSET); request, multipart, HttpConstants.DEFAULT_CHARSET);
} }
/** /**
@ -105,7 +111,7 @@ public class HttpPostRequestEncoder implements ChunkedInput {
*/ */
public HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart) public HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart)
throws ErrorDataEncoderException { throws ErrorDataEncoderException {
this(factory, request, multipart, HttpCodecUtil.DEFAULT_CHARSET); this(factory, request, multipart, HttpConstants.DEFAULT_CHARSET);
} }
/** /**

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
/** /**
* Interface for all Objects that could be encoded/decoded using HttpPostRequestEncoder/Decoder * Interface for all Objects that could be encoded/decoded using HttpPostRequestEncoder/Decoder

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -13,12 +13,13 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.IOException; import java.io.IOException;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.handler.codec.http.HttpConstants;
/** /**
* Memory implementation of Attributes * Memory implementation of Attributes
@ -26,7 +27,7 @@ import org.jboss.netty.buffer.ChannelBuffers;
public class MemoryAttribute extends AbstractMemoryHttpData implements Attribute { public class MemoryAttribute extends AbstractMemoryHttpData implements Attribute {
public MemoryAttribute(String name) { public MemoryAttribute(String name) {
super(name, HttpCodecUtil.DEFAULT_CHARSET, 0); super(name, HttpConstants.DEFAULT_CHARSET, 0);
} }
/** /**
* *
@ -37,7 +38,7 @@ public class MemoryAttribute extends AbstractMemoryHttpData implements Attribute
* @throws IOException * @throws IOException
*/ */
public MemoryAttribute(String name, String value) throws IOException { public MemoryAttribute(String name, String value) throws IOException {
super(name, HttpCodecUtil.DEFAULT_CHARSET, 0); // Attribute have no default size super(name, HttpConstants.DEFAULT_CHARSET, 0); // Attribute have no default size
setValue(value); setValue(value);
} }

View File

@ -13,10 +13,12 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import org.jboss.netty.handler.codec.http.HttpHeaders;
/** /**
* Default FileUpload implementation that stores file into memory.<br><br> * Default FileUpload implementation that stores file into memory.<br><br>
* *

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -28,7 +28,7 @@ import org.jboss.netty.buffer.ChannelBuffer;
public class MixedAttribute implements Attribute { public class MixedAttribute implements Attribute {
private Attribute attribute; private Attribute attribute;
private long limitSize; private final long limitSize;
public MixedAttribute(String name, long limitSize) { public MixedAttribute(String name, long limitSize) {
this.limitSize = limitSize; this.limitSize = limitSize;

View File

@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.handler.codec.http.multipart;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -28,9 +28,9 @@ import org.jboss.netty.buffer.ChannelBuffer;
public class MixedFileUpload implements FileUpload { public class MixedFileUpload implements FileUpload {
private FileUpload fileUpload; private FileUpload fileUpload;
private long limitSize; private final long limitSize;
private long definedSize; private final long definedSize;
public MixedFileUpload(String name, String filename, String contentType, public MixedFileUpload(String name, String filename, String contentType,
String contentTransferEncoding, Charset charset, long size, String contentTransferEncoding, Charset charset, long size,

View File

@ -0,0 +1,20 @@
/*
* Copyright 2011 The Netty Project
*
* The Netty Project 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.
*/
/**
* HTTP multipart support.
*/
package org.jboss.netty.handler.codec.http.multipart;

View File

@ -119,7 +119,7 @@ public class CloseWebSocketFrame extends WebSocketFrame {
* a status code is set, -1 is returned. * a status code is set, -1 is returned.
*/ */
public int getStatusCode() { public int getStatusCode() {
ChannelBuffer binaryData = this.getBinaryData(); ChannelBuffer binaryData = getBinaryData();
if (binaryData == null || binaryData.capacity() == 0) { if (binaryData == null || binaryData.capacity() == 0) {
return -1; return -1;
} }
@ -136,7 +136,7 @@ public class CloseWebSocketFrame extends WebSocketFrame {
* text is not supplied, an empty string is returned. * text is not supplied, an empty string is returned.
*/ */
public String getReasonText() { public String getReasonText() {
ChannelBuffer binaryData = this.getBinaryData(); ChannelBuffer binaryData = getBinaryData();
if (binaryData == null || binaryData.capacity() <= 2) { if (binaryData == null || binaryData.capacity() <= 2) {
return ""; return "";
} }

View File

@ -17,8 +17,8 @@ package org.jboss.netty.handler.codec.http.websocketx;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
/** /**

View File

@ -78,7 +78,7 @@ public abstract class WebSocketClientHandshaker {
Map<String, String> customHeaders, long maxFramePayloadLength) { Map<String, String> customHeaders, long maxFramePayloadLength) {
this.webSocketUrl = webSocketUrl; this.webSocketUrl = webSocketUrl;
this.version = version; this.version = version;
this.expectedSubprotocol = subprotocol; expectedSubprotocol = subprotocol;
this.customHeaders = customHeaders; this.customHeaders = customHeaders;
this.maxFramePayloadLength = maxFramePayloadLength; this.maxFramePayloadLength = maxFramePayloadLength;
} }

View File

@ -156,7 +156,7 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker {
// See https://github.com/netty/netty/issues/264 // See https://github.com/netty/netty/issues/264
request.addHeader(Names.SEC_WEBSOCKET_ORIGIN, originValue); request.addHeader(Names.SEC_WEBSOCKET_ORIGIN, originValue);
String expectedSubprotocol = this.getExpectedSubprotocol(); String expectedSubprotocol = getExpectedSubprotocol();
if (expectedSubprotocol != null && !expectedSubprotocol.equals("")) { if (expectedSubprotocol != null && !expectedSubprotocol.equals("")) {
request.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, expectedSubprotocol); request.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, expectedSubprotocol);
} }
@ -232,7 +232,7 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker {
setHandshakeComplete(); setHandshakeComplete();
channel.getPipeline().get(HttpResponseDecoder.class).replace("ws-decoder", channel.getPipeline().get(HttpResponseDecoder.class).replace("ws-decoder",
new WebSocket08FrameDecoder(false, allowExtensions, this.getMaxFramePayloadLength())); new WebSocket08FrameDecoder(false, allowExtensions, getMaxFramePayloadLength()));
} }

View File

@ -152,7 +152,7 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker {
} }
request.addHeader(Names.ORIGIN, originValue); request.addHeader(Names.ORIGIN, originValue);
String expectedSubprotocol = this.getExpectedSubprotocol(); String expectedSubprotocol = getExpectedSubprotocol();
if (expectedSubprotocol != null && !expectedSubprotocol.equals("")) { if (expectedSubprotocol != null && !expectedSubprotocol.equals("")) {
request.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, expectedSubprotocol); request.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, expectedSubprotocol);
} }
@ -227,7 +227,7 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker {
setHandshakeComplete(); setHandshakeComplete();
channel.getPipeline().get(HttpResponseDecoder.class).replace("ws-decoder", channel.getPipeline().get(HttpResponseDecoder.class).replace("ws-decoder",
new WebSocket13FrameDecoder(false, allowExtensions, this.getMaxFramePayloadLength())); new WebSocket13FrameDecoder(false, allowExtensions, getMaxFramePayloadLength()));
} }

View File

@ -112,7 +112,7 @@ public abstract class WebSocketServerHandshaker {
*/ */
public Set<String> getSubprotocols() { public Set<String> getSubprotocols() {
Set<String> ret = new LinkedHashSet<String>(); Set<String> ret = new LinkedHashSet<String>();
for (String p : this.subprotocols) { for (String p : subprotocols) {
ret.add(p); ret.add(p);
} }
return ret; return ret;

View File

@ -158,7 +158,7 @@ public class WebSocketServerHandshaker00 extends WebSocketServerHandshaker {
throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols); throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols);
} else { } else {
res.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol); res.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol);
this.setSelectedSubprotocol(selectedSubprotocol); setSelectedSubprotocol(selectedSubprotocol);
} }
} }
@ -190,7 +190,7 @@ public class WebSocketServerHandshaker00 extends WebSocketServerHandshaker {
p.remove(HttpChunkAggregator.class); p.remove(HttpChunkAggregator.class);
} }
p.replace(HttpRequestDecoder.class, "wsdecoder", p.replace(HttpRequestDecoder.class, "wsdecoder",
new WebSocket00FrameDecoder(this.getMaxFramePayloadLength())); new WebSocket00FrameDecoder(getMaxFramePayloadLength()));
ChannelFuture future = channel.write(res); ChannelFuture future = channel.write(res);

View File

@ -163,7 +163,7 @@ public class WebSocketServerHandshaker08 extends WebSocketServerHandshaker {
throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols); throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols);
} else { } else {
res.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol); res.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol);
this.setSelectedSubprotocol(selectedSubprotocol); setSelectedSubprotocol(selectedSubprotocol);
} }
} }
@ -176,7 +176,7 @@ public class WebSocketServerHandshaker08 extends WebSocketServerHandshaker {
} }
p.replace(HttpRequestDecoder.class, "wsdecoder", p.replace(HttpRequestDecoder.class, "wsdecoder",
new WebSocket08FrameDecoder(true, allowExtensions, this.getMaxFramePayloadLength())); new WebSocket08FrameDecoder(true, allowExtensions, getMaxFramePayloadLength()));
p.replace(HttpResponseEncoder.class, "wsencoder", new WebSocket08FrameEncoder(false)); p.replace(HttpResponseEncoder.class, "wsencoder", new WebSocket08FrameEncoder(false));
return future; return future;

View File

@ -15,8 +15,8 @@
*/ */
package org.jboss.netty.handler.codec.http.websocketx; package org.jboss.netty.handler.codec.http.websocketx;
import static org.jboss.netty.handler.codec.http.HttpHeaders.Values.WEBSOCKET; import static org.jboss.netty.handler.codec.http.HttpHeaders.Values.*;
import static org.jboss.netty.handler.codec.http.HttpVersion.HTTP_1_1; import static org.jboss.netty.handler.codec.http.HttpVersion.*;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
@ -25,14 +25,14 @@ import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ChannelFutureListener; import org.jboss.netty.channel.ChannelFutureListener;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.Channels;
import org.jboss.netty.handler.codec.http.HttpChunkAggregator;
import org.jboss.netty.handler.codec.http.DefaultHttpResponse; import org.jboss.netty.handler.codec.http.DefaultHttpResponse;
import org.jboss.netty.handler.codec.http.HttpChunkAggregator;
import org.jboss.netty.handler.codec.http.HttpHeaders.Names;
import org.jboss.netty.handler.codec.http.HttpRequest; import org.jboss.netty.handler.codec.http.HttpRequest;
import org.jboss.netty.handler.codec.http.HttpRequestDecoder; import org.jboss.netty.handler.codec.http.HttpRequestDecoder;
import org.jboss.netty.handler.codec.http.HttpResponse; import org.jboss.netty.handler.codec.http.HttpResponse;
import org.jboss.netty.handler.codec.http.HttpResponseEncoder; import org.jboss.netty.handler.codec.http.HttpResponseEncoder;
import org.jboss.netty.handler.codec.http.HttpResponseStatus; import org.jboss.netty.handler.codec.http.HttpResponseStatus;
import org.jboss.netty.handler.codec.http.HttpHeaders.Names;
import org.jboss.netty.logging.InternalLogger; import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory; import org.jboss.netty.logging.InternalLoggerFactory;
import org.jboss.netty.util.CharsetUtil; import org.jboss.netty.util.CharsetUtil;
@ -170,7 +170,7 @@ public class WebSocketServerHandshaker13 extends WebSocketServerHandshaker {
throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols); throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols);
} else { } else {
res.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol); res.addHeader(Names.SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol);
this.setSelectedSubprotocol(selectedSubprotocol); setSelectedSubprotocol(selectedSubprotocol);
} }
} }
@ -183,7 +183,7 @@ public class WebSocketServerHandshaker13 extends WebSocketServerHandshaker {
} }
p.replace(HttpRequestDecoder.class, "wsdecoder", p.replace(HttpRequestDecoder.class, "wsdecoder",
new WebSocket13FrameDecoder(true, allowExtensions, this.getMaxFramePayloadLength())); new WebSocket13FrameDecoder(true, allowExtensions, getMaxFramePayloadLength()));
p.replace(HttpResponseEncoder.class, "wsencoder", new WebSocket13FrameEncoder(false)); p.replace(HttpResponseEncoder.class, "wsencoder", new WebSocket13FrameEncoder(false));
return future; return future;

View File

@ -17,11 +17,11 @@ package org.jboss.netty.handler.codec.http.websocketx;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.handler.codec.http.DefaultHttpResponse; import org.jboss.netty.handler.codec.http.DefaultHttpResponse;
import org.jboss.netty.handler.codec.http.HttpHeaders.Names;
import org.jboss.netty.handler.codec.http.HttpRequest; import org.jboss.netty.handler.codec.http.HttpRequest;
import org.jboss.netty.handler.codec.http.HttpResponse; import org.jboss.netty.handler.codec.http.HttpResponse;
import org.jboss.netty.handler.codec.http.HttpResponseStatus; import org.jboss.netty.handler.codec.http.HttpResponseStatus;
import org.jboss.netty.handler.codec.http.HttpVersion; import org.jboss.netty.handler.codec.http.HttpVersion;
import org.jboss.netty.handler.codec.http.HttpHeaders.Names;
/** /**
* Instances the appropriate handshake class to use for servers * Instances the appropriate handshake class to use for servers

View File

@ -17,8 +17,8 @@ package org.jboss.netty.handler.codec.marshalling;
import org.jboss.marshalling.Marshaller; import org.jboss.marshalling.Marshaller;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
/** /**

View File

@ -18,8 +18,8 @@ package org.jboss.netty.handler.codec.marshalling;
import org.jboss.marshalling.Marshaller; import org.jboss.marshalling.Marshaller;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
/** /**

View File

@ -19,10 +19,10 @@ import static org.jboss.netty.buffer.ChannelBuffers.*;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder; import org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder;
import org.jboss.netty.handler.codec.frame.LengthFieldPrepender; import org.jboss.netty.handler.codec.frame.LengthFieldPrepender;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;

View File

@ -20,8 +20,8 @@ import static org.jboss.netty.buffer.ChannelBuffers.*;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBufferOutputStream; import org.jboss.netty.buffer.ChannelBufferOutputStream;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
import com.google.protobuf.CodedOutputStream; import com.google.protobuf.CodedOutputStream;

View File

@ -423,7 +423,7 @@ public abstract class ReplayingDecoder<T extends Enum<T>>
if (cumulation == null) { if (cumulation == null) {
// the cumulation buffer is not created yet so just pass the input // the cumulation buffer is not created yet so just pass the input
// to callDecode(...) method // to callDecode(...) method
this.cumulation = input; cumulation = input;
replayable = new ReplayingDecoderBuffer(input); replayable = new ReplayingDecoderBuffer(input);
int oldReaderIndex = input.readerIndex(); int oldReaderIndex = input.readerIndex();
@ -461,7 +461,7 @@ public abstract class ReplayingDecoder<T extends Enum<T>>
} }
replayable = new ReplayingDecoderBuffer(cumulation); replayable = new ReplayingDecoderBuffer(cumulation);
} else { } else {
this.cumulation = null; cumulation = null;
replayable = ReplayingDecoderBuffer.EMPTY_BUFFER; replayable = ReplayingDecoderBuffer.EMPTY_BUFFER;
} }
} }
@ -489,12 +489,12 @@ public abstract class ReplayingDecoder<T extends Enum<T>>
ChannelBuffer buf; ChannelBuffer buf;
if (fit) { if (fit) {
// the input fit in the cumulation buffer so copy it over // the input fit in the cumulation buffer so copy it over
buf = this.cumulation; buf = cumulation;
buf.writeBytes(input); buf.writeBytes(input);
} else { } else {
// wrap the cumulation and input // wrap the cumulation and input
buf = ChannelBuffers.wrappedBuffer(cumulation, input); buf = ChannelBuffers.wrappedBuffer(cumulation, input);
this.cumulation = buf; cumulation = buf;
replayable = new ReplayingDecoderBuffer(cumulation); replayable = new ReplayingDecoderBuffer(cumulation);
} }
@ -506,13 +506,13 @@ public abstract class ReplayingDecoder<T extends Enum<T>>
} finally { } finally {
if (!buf.readable()) { if (!buf.readable()) {
// nothing readable left so reset the state // nothing readable left so reset the state
this.cumulation = null; cumulation = null;
replayable = ReplayingDecoderBuffer.EMPTY_BUFFER; replayable = ReplayingDecoderBuffer.EMPTY_BUFFER;
} else { } else {
// create a new buffer and copy the readable buffer into it // create a new buffer and copy the readable buffer into it
this.cumulation = newCumulationBuffer(ctx, buf.readableBytes()); cumulation = newCumulationBuffer(ctx, buf.readableBytes());
this.cumulation.writeBytes(buf); cumulation.writeBytes(buf);
replayable = new ReplayingDecoderBuffer(this.cumulation); replayable = new ReplayingDecoderBuffer(cumulation);
} }
} }

View File

@ -17,8 +17,8 @@ package org.jboss.netty.handler.codec.rtsp;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.http.HttpMessage; import org.jboss.netty.handler.codec.http.HttpMessage;
import org.jboss.netty.handler.codec.http.HttpMessageEncoder; import org.jboss.netty.handler.codec.http.HttpMessageEncoder;

View File

@ -98,7 +98,7 @@ public class ObjectDecoderInputStream extends InputStream implements
} else { } else {
this.in = new DataInputStream(in); this.in = new DataInputStream(in);
} }
this.classResolver = ClassResolvers.weakCachingResolver(classLoader); classResolver = ClassResolvers.weakCachingResolver(classLoader);
this.maxObjectSize = maxObjectSize; this.maxObjectSize = maxObjectSize;
} }

View File

@ -23,8 +23,8 @@ import java.io.ObjectOutputStream;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBufferOutputStream; import org.jboss.netty.buffer.ChannelBufferOutputStream;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
/** /**

View File

@ -40,7 +40,7 @@ public class DefaultSpdyHeaderBlock implements SpdyHeaderBlock {
} }
public void setInvalid() { public void setInvalid() {
this.invalid = true; invalid = true;
} }
public void addHeader(final String name, final Object value) { public void addHeader(final String name, final Object value) {

View File

@ -410,7 +410,7 @@ public class SpdyFrameDecoder extends FrameDecoder {
return new DefaultSpdyPingFrame(ID); return new DefaultSpdyPingFrame(ID);
case SPDY_GOAWAY_FRAME: case SPDY_GOAWAY_FRAME:
int minLength = (version < 3) ? 4 : 8; int minLength = version < 3 ? 4 : 8;
if (buffer.readableBytes() < minLength) { if (buffer.readableBytes() < minLength) {
return null; return null;
} }
@ -448,7 +448,7 @@ public class SpdyFrameDecoder extends FrameDecoder {
int streamID; int streamID;
switch (type) { switch (type) {
case SPDY_SYN_STREAM_FRAME: case SPDY_SYN_STREAM_FRAME:
minLength = (version < 3) ? 12 : 10; minLength = version < 3 ? 12 : 10;
if (buffer.readableBytes() < minLength) { if (buffer.readableBytes() < minLength) {
return null; return null;
} }
@ -477,7 +477,7 @@ public class SpdyFrameDecoder extends FrameDecoder {
return spdySynStreamFrame; return spdySynStreamFrame;
case SPDY_SYN_REPLY_FRAME: case SPDY_SYN_REPLY_FRAME:
minLength = (version < 3) ? 8 : 4; minLength = version < 3 ? 8 : 4;
if (buffer.readableBytes() < minLength) { if (buffer.readableBytes() < minLength) {
return null; return null;
} }
@ -575,7 +575,7 @@ public class SpdyFrameDecoder extends FrameDecoder {
return; return;
} }
int lengthFieldSize = (version < 3) ? 2 : 4; int lengthFieldSize = version < 3 ? 2 : 4;
if (numHeaders == -1) { if (numHeaders == -1) {
// Read number of Name/Value pairs // Read number of Name/Value pairs
@ -690,10 +690,10 @@ public class SpdyFrameDecoder extends FrameDecoder {
private boolean isValidControlFrameHeader() { private boolean isValidControlFrameHeader() {
switch (type) { switch (type) {
case SPDY_SYN_STREAM_FRAME: case SPDY_SYN_STREAM_FRAME:
return (version < 3) ? length >= 12 : length >= 10; return version < 3 ? length >= 12 : length >= 10;
case SPDY_SYN_REPLY_FRAME: case SPDY_SYN_REPLY_FRAME:
return (version < 3) ? length >= 8 : length >= 4; return version < 3 ? length >= 8 : length >= 4;
case SPDY_RST_STREAM_FRAME: case SPDY_RST_STREAM_FRAME:
return flags == 0 && length == 8; return flags == 0 && length == 8;
@ -708,7 +708,7 @@ public class SpdyFrameDecoder extends FrameDecoder {
return length == 4; return length == 4;
case SPDY_GOAWAY_FRAME: case SPDY_GOAWAY_FRAME:
return (version < 3) ? length == 4 : length == 8; return version < 3 ? length == 4 : length == 8;
case SPDY_HEADERS_FRAME: case SPDY_HEADERS_FRAME:
if (version < 3) { if (version < 3) {

View File

@ -128,7 +128,7 @@ public class SpdyFrameEncoder extends OneToOneEncoder {
int headerBlockLength = data.readableBytes(); int headerBlockLength = data.readableBytes();
int length; int length;
if (version < 3) { if (version < 3) {
length = (headerBlockLength == 0) ? 12 : 10 + headerBlockLength; length = headerBlockLength == 0 ? 12 : 10 + headerBlockLength;
} else { } else {
length = 10 + headerBlockLength; length = 10 + headerBlockLength;
} }
@ -164,7 +164,7 @@ public class SpdyFrameEncoder extends OneToOneEncoder {
int headerBlockLength = data.readableBytes(); int headerBlockLength = data.readableBytes();
int length; int length;
if (version < 3) { if (version < 3) {
length = (headerBlockLength == 0) ? 8 : 6 + headerBlockLength; length = headerBlockLength == 0 ? 8 : 6 + headerBlockLength;
} else { } else {
length = 4 + headerBlockLength; length = 4 + headerBlockLength;
} }
@ -259,7 +259,7 @@ public class SpdyFrameEncoder extends OneToOneEncoder {
} else if (msg instanceof SpdyGoAwayFrame) { } else if (msg instanceof SpdyGoAwayFrame) {
SpdyGoAwayFrame spdyGoAwayFrame = (SpdyGoAwayFrame) msg; SpdyGoAwayFrame spdyGoAwayFrame = (SpdyGoAwayFrame) msg;
int length = (version < 3) ? 4 : 8; int length = version < 3 ? 4 : 8;
ChannelBuffer frame = ChannelBuffers.buffer( ChannelBuffer frame = ChannelBuffers.buffer(
ByteOrder.BIG_ENDIAN, SPDY_HEADER_SIZE + length); ByteOrder.BIG_ENDIAN, SPDY_HEADER_SIZE + length);
frame.writeShort(version | 0x8000); frame.writeShort(version | 0x8000);
@ -280,7 +280,7 @@ public class SpdyFrameEncoder extends OneToOneEncoder {
int headerBlockLength = data.readableBytes(); int headerBlockLength = data.readableBytes();
int length; int length;
if (version < 3) { if (version < 3) {
length = (headerBlockLength == 0) ? 4 : 6 + headerBlockLength; length = headerBlockLength == 0 ? 4 : 6 + headerBlockLength;
} else { } else {
length = 4 + headerBlockLength; length = 4 + headerBlockLength;
} }

View File

@ -15,12 +15,12 @@
*/ */
package org.jboss.netty.handler.codec.spdy; package org.jboss.netty.handler.codec.spdy;
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
import java.util.zip.Deflater; import java.util.zip.Deflater;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
class SpdyHeaderBlockZlibCompressor extends SpdyHeaderBlockCompressor { class SpdyHeaderBlockZlibCompressor extends SpdyHeaderBlockCompressor {
private final byte[] out = new byte[8192]; private final byte[] out = new byte[8192];

View File

@ -15,13 +15,13 @@
*/ */
package org.jboss.netty.handler.codec.spdy; package org.jboss.netty.handler.codec.spdy;
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
import java.util.zip.DataFormatException; import java.util.zip.DataFormatException;
import java.util.zip.Inflater; import java.util.zip.Inflater;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
class SpdyHeaderBlockZlibDecompressor extends SpdyHeaderBlockDecompressor { class SpdyHeaderBlockZlibDecompressor extends SpdyHeaderBlockDecompressor {
private final int version; private final int version;

View File

@ -18,7 +18,6 @@ package org.jboss.netty.handler.codec.spdy;
import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*; import static org.jboss.netty.handler.codec.spdy.SpdyCodecUtil.*;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
@ -104,7 +103,7 @@ public class SpdyHttpDecoder extends OneToOneDecoder {
Channels.write(ctx, Channels.future(channel), spdyRstStreamFrame); Channels.write(ctx, Channels.future(channel), spdyRstStreamFrame);
} }
String URL = SpdyHeaders.getUrl(spdySynStreamFrame); String URL = SpdyHeaders.getUrl(spdyVersion, spdySynStreamFrame);
// If a client receives a SYN_STREAM without a 'url' header // If a client receives a SYN_STREAM without a 'url' header
// it must reply with a RST_STREAM with error code PROTOCOL_ERROR // it must reply with a RST_STREAM with error code PROTOCOL_ERROR

View File

@ -128,12 +128,12 @@ final class SpdySession {
public int getSendWindowSize(int streamID) { public int getSendWindowSize(int streamID) {
StreamState state = activeStreams.get(new Integer(streamID)); StreamState state = activeStreams.get(new Integer(streamID));
return (state != null) ? state.getSendWindowSize() : -1; return state != null ? state.getSendWindowSize() : -1;
} }
public int updateSendWindowSize(int streamID, int deltaWindowSize) { public int updateSendWindowSize(int streamID, int deltaWindowSize) {
StreamState state = activeStreams.get(new Integer(streamID)); StreamState state = activeStreams.get(new Integer(streamID));
return (state != null) ? state.updateSendWindowSize(deltaWindowSize) : -1; return state != null ? state.updateSendWindowSize(deltaWindowSize) : -1;
} }
public int updateReceiveWindowSize(int streamID, int deltaWindowSize) { public int updateReceiveWindowSize(int streamID, int deltaWindowSize) {
@ -141,12 +141,12 @@ final class SpdySession {
if (deltaWindowSize > 0) { if (deltaWindowSize > 0) {
state.setReceiveWindowSizeLowerBound(0); state.setReceiveWindowSizeLowerBound(0);
} }
return (state != null) ? state.updateReceiveWindowSize(deltaWindowSize) : -1; return state != null ? state.updateReceiveWindowSize(deltaWindowSize) : -1;
} }
public int getReceiveWindowSizeLowerBound(int streamID) { public int getReceiveWindowSizeLowerBound(int streamID) {
StreamState state = activeStreams.get(new Integer(streamID)); StreamState state = activeStreams.get(new Integer(streamID));
return (state != null) ? state.getReceiveWindowSizeLowerBound() : 0; return state != null ? state.getReceiveWindowSizeLowerBound() : 0;
} }
public void updateAllReceiveWindowSizes(int deltaWindowSize) { public void updateAllReceiveWindowSizes(int deltaWindowSize) {
@ -165,12 +165,12 @@ final class SpdySession {
public MessageEvent getPendingWrite(int streamID) { public MessageEvent getPendingWrite(int streamID) {
StreamState state = activeStreams.get(new Integer(streamID)); StreamState state = activeStreams.get(new Integer(streamID));
return (state != null) ? state.getPendingWrite() : null; return state != null ? state.getPendingWrite() : null;
} }
public MessageEvent removePendingWrite(int streamID) { public MessageEvent removePendingWrite(int streamID) {
StreamState state = activeStreams.get(new Integer(streamID)); StreamState state = activeStreams.get(new Integer(streamID));
return (state != null) ? state.removePendingWrite() : null; return state != null ? state.removePendingWrite() : null;
} }
private static final class StreamState { private static final class StreamState {
@ -179,10 +179,10 @@ final class SpdySession {
private volatile boolean remoteSideClosed; private volatile boolean remoteSideClosed;
private volatile boolean localSideClosed; private volatile boolean localSideClosed;
private boolean receivedReply; private boolean receivedReply;
private AtomicInteger sendWindowSize; private final AtomicInteger sendWindowSize;
private AtomicInteger receiveWindowSize; private final AtomicInteger receiveWindowSize;
private volatile int receiveWindowSizeLowerBound; private volatile int receiveWindowSizeLowerBound;
private ConcurrentLinkedQueue<MessageEvent> pendingWriteQueue = private final ConcurrentLinkedQueue<MessageEvent> pendingWriteQueue =
new ConcurrentLinkedQueue<MessageEvent>(); new ConcurrentLinkedQueue<MessageEvent>();
public StreamState( public StreamState(

View File

@ -93,7 +93,7 @@ public class SpdySessionHandler extends SimpleChannelUpstreamHandler
"unsupported version: " + version); "unsupported version: " + version);
} }
this.server = server; this.server = server;
this.flowControl = version >= 3; flowControl = version >= 3;
} }
@Override @Override

View File

@ -19,10 +19,10 @@ import java.nio.charset.Charset;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder; import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
import org.jboss.netty.handler.codec.frame.Delimiters; import org.jboss.netty.handler.codec.frame.Delimiters;
import org.jboss.netty.handler.codec.frame.FrameDecoder; import org.jboss.netty.handler.codec.frame.FrameDecoder;

View File

@ -21,10 +21,10 @@ import java.nio.charset.Charset;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder; import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
import org.jboss.netty.handler.codec.frame.Delimiters; import org.jboss.netty.handler.codec.frame.Delimiters;
import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;

View File

@ -15,18 +15,18 @@
*/ */
package org.jboss.netty.handler.execution; package org.jboss.netty.handler.execution;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelEvent;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ChannelFutureListener;
import org.jboss.netty.util.ObjectSizeEstimator;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelEvent;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ChannelFutureListener;
import org.jboss.netty.util.ObjectSizeEstimator;
/** /**
* {@link Executor} which should be used for downstream {@link ChannelEvent}'s. This implementation will take care of preserve the order of the events in a {@link Channel}. * {@link Executor} which should be used for downstream {@link ChannelEvent}'s. This implementation will take care of preserve the order of the events in a {@link Channel}.
* If you don't need to preserve the order just use one of the {@link Executor} implementations provided by the static methods of {@link Executors}. * If you don't need to preserve the order just use one of the {@link Executor} implementations provided by the static methods of {@link Executors}.

View File

@ -141,7 +141,7 @@ public abstract class CIDR implements Comparable<CIDR> {
if (!(arg0 instanceof CIDR)) { if (!(arg0 instanceof CIDR)) {
return false; return false;
} }
return this.compareTo((CIDR) arg0) == 0; return compareTo((CIDR) arg0) == 0;
} }
@Override @Override

View File

@ -53,6 +53,7 @@ public class CIDR6 extends CIDR {
addressEndBigInt = addressBigInt.add(ipv6CidrMaskToBaseAddress(cidrMask)).subtract(BigInteger.ONE); addressEndBigInt = addressBigInt.add(ipv6CidrMaskToBaseAddress(cidrMask)).subtract(BigInteger.ONE);
} }
@Override
public InetAddress getEndAddress() { public InetAddress getEndAddress() {
try { try {
return bigIntToIPv6Address(addressEndBigInt); return bigIntToIPv6Address(addressEndBigInt);

View File

@ -157,7 +157,7 @@ public abstract class IpFilteringHandlerImpl implements ChannelUpstreamHandler,
public void removeIpFilterListener() { public void removeIpFilterListener() {
this.listener = null; listener = null;
} }

View File

@ -15,11 +15,12 @@
*/ */
package org.jboss.netty.handler.ipfilter; package org.jboss.netty.handler.ipfilter;
import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory;
/** /**
* This class allows to check if an IP V4 or V6 Address is contained in a subnet.<BR> * This class allows to check if an IP V4 or V6 Address is contained in a subnet.<BR>
* <p/> * <p/>
@ -59,7 +60,7 @@ public class IpSubnet implements IpSet, Comparable<IpSubnet> {
InternalLoggerFactory.getInstance(IpSubnet.class); InternalLoggerFactory.getInstance(IpSubnet.class);
/** Internal representation */ /** Internal representation */
private CIDR cidr; private final CIDR cidr;
/** Create IpSubnet for ALL (used for ALLOW or DENY ALL) */ /** Create IpSubnet for ALL (used for ALLOW or DENY ALL) */
public IpSubnet() { public IpSubnet() {
@ -141,26 +142,4 @@ public class IpSubnet implements IpSet, Comparable<IpSubnet> {
public int compareTo(IpSubnet o) { public int compareTo(IpSubnet o) {
return cidr.toString().compareTo(o.cidr.toString()); return cidr.toString().compareTo(o.cidr.toString());
} }
/**
* Simple test functions
*
* @param args where args[0] is the netmask (standard or CIDR notation) and optional args[1] is
* the inetAddress to test with this IpSubnet
*/
public static void main(String[] args) throws Exception {
if (args.length != 0) {
IpSubnet ipSubnet = null;
try {
ipSubnet = new IpSubnet(args[0]);
} catch (UnknownHostException e) {
return;
}
logger.debug("IpSubnet: " + ipSubnet.toString() + " from " + ipSubnet.cidr.getBaseAddress() + " to "
+ ipSubnet.cidr.getEndAddress() + " mask " + ipSubnet.cidr.getMask());
if (args.length > 1) {
logger.debug("Is IN: " + args[1] + " " + ipSubnet.contains(args[1]));
}
}
}
} }

View File

@ -15,13 +15,14 @@
*/ */
package org.jboss.netty.handler.ipfilter; package org.jboss.netty.handler.ipfilter;
import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.Vector; import java.util.Vector;
import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory;
/** /**
* This class allows to check if an IP-V4-Address is contained in a subnet.<BR> * This class allows to check if an IP-V4-Address is contained in a subnet.<BR>
* Supported Formats for the Subnets are: 1.1.1.1/255.255.255.255 or 1.1.1.1/32 (CIDR-Notation) * Supported Formats for the Subnets are: 1.1.1.1/255.255.255.255 or 1.1.1.1/32 (CIDR-Notation)
@ -141,7 +142,7 @@ public class IpV4Subnet implements IpSet, Comparable<IpV4Subnet> {
* *
* @return the integer representation * @return the integer representation
*/ */
private int toInt(InetAddress inetAddress1) { private static int toInt(InetAddress inetAddress1) {
byte[] address = inetAddress1.getAddress(); byte[] address = inetAddress1.getAddress();
int net = 0; int net = 0;
for (byte addres : address) { for (byte addres : address) {
@ -251,24 +252,4 @@ public class IpV4Subnet implements IpSet, Comparable<IpV4Subnet> {
} }
return 1; return 1;
} }
/**
* Simple test functions
*
* @param args where args[0] is the netmask (standard or CIDR notation) and optional args[1] is
* the inetAddress to test with this IpV4Subnet
*/
public static void main(String[] args) throws Exception {
if (args.length != 0) {
IpV4Subnet ipV4Subnet = null;
try {
ipV4Subnet = new IpV4Subnet(args[0]);
} catch (UnknownHostException e) {
return;
}
if (args.length > 1) {
logger.debug("Is IN: " + args[1] + " " + ipV4Subnet.contains(args[1]));
}
}
}
} }

View File

@ -58,7 +58,7 @@ public class PatternRule implements IpFilterRule, Comparable<Object> {
private boolean localhost; private boolean localhost;
private String pattern; private final String pattern;
/** /**
* Instantiates a new pattern rule. * Instantiates a new pattern rule.
@ -67,7 +67,7 @@ public class PatternRule implements IpFilterRule, Comparable<Object> {
* @param pattern the filter pattern * @param pattern the filter pattern
*/ */
public PatternRule(boolean allow, String pattern) { public PatternRule(boolean allow, String pattern) {
this.isAllowRule = allow; isAllowRule = allow;
this.pattern = pattern; this.pattern = pattern;
parse(pattern); parse(pattern);
} }
@ -78,7 +78,7 @@ public class PatternRule implements IpFilterRule, Comparable<Object> {
* @return the pattern * @return the pattern
*/ */
public String getPattern() { public String getPattern() {
return this.pattern; return pattern;
} }
public boolean isAllowRule() { public boolean isAllowRule() {
@ -120,7 +120,7 @@ public class PatternRule implements IpFilterRule, Comparable<Object> {
for (String c : acls) { for (String c : acls) {
c = c.trim(); c = c.trim();
if (c.equals("n:localhost")) { if (c.equals("n:localhost")) {
this.localhost = true; localhost = true;
} else if (c.startsWith("n:")) { } else if (c.startsWith("n:")) {
name = addRule(name, c.substring(2)); name = addRule(name, c.substring(2));
} else if (c.startsWith("i:")) { } else if (c.startsWith("i:")) {
@ -135,7 +135,7 @@ public class PatternRule implements IpFilterRule, Comparable<Object> {
} }
} }
private String addRule(String pattern, String rule) { private static String addRule(String pattern, String rule) {
if (rule == null || rule.length() == 0) { if (rule == null || rule.length() == 0) {
return pattern; return pattern;
} }
@ -149,7 +149,7 @@ public class PatternRule implements IpFilterRule, Comparable<Object> {
return pattern; return pattern;
} }
private boolean isLocalhost(InetAddress address) { private static boolean isLocalhost(InetAddress address) {
try { try {
if (address.equals(InetAddress.getLocalHost())) { if (address.equals(InetAddress.getLocalHost())) {
return true; return true;
@ -183,14 +183,14 @@ public class PatternRule implements IpFilterRule, Comparable<Object> {
return -1; return -1;
} }
PatternRule p = (PatternRule) o; PatternRule p = (PatternRule) o;
if (p.isAllowRule() && !this.isAllowRule) { if (p.isAllowRule() && !isAllowRule) {
return -1; return -1;
} }
if (this.pattern == null && p.pattern == null) { if (pattern == null && p.pattern == null) {
return 0; return 0;
} }
if (this.pattern != null) { if (pattern != null) {
return this.pattern.compareTo(p.getPattern()); return pattern.compareTo(p.getPattern());
} }
return -1; return -1;
} }

View File

@ -46,7 +46,6 @@ import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.DefaultChannelFuture; import org.jboss.netty.channel.DefaultChannelFuture;
import org.jboss.netty.channel.DownstreamMessageEvent; import org.jboss.netty.channel.DownstreamMessageEvent;
import org.jboss.netty.channel.ExceptionEvent; import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.LifeCycleAwareChannelHandler;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.handler.codec.frame.FrameDecoder; import org.jboss.netty.handler.codec.frame.FrameDecoder;
import org.jboss.netty.logging.InternalLogger; import org.jboss.netty.logging.InternalLogger;
@ -151,8 +150,7 @@ import org.jboss.netty.util.internal.QueueFactory;
* @apiviz.uses org.jboss.netty.handler.ssl.SslBufferPool * @apiviz.uses org.jboss.netty.handler.ssl.SslBufferPool
*/ */
public class SslHandler extends FrameDecoder public class SslHandler extends FrameDecoder
implements ChannelDownstreamHandler, implements ChannelDownstreamHandler {
LifeCycleAwareChannelHandler {
private static final InternalLogger logger = private static final InternalLogger logger =
InternalLoggerFactory.getInstance(SslHandler.class); InternalLoggerFactory.getInstance(SslHandler.class);
@ -1219,14 +1217,17 @@ public class SslHandler extends FrameDecoder
} }
} }
@Override
public void beforeAdd(ChannelHandlerContext ctx) throws Exception { public void beforeAdd(ChannelHandlerContext ctx) throws Exception {
this.ctx = ctx; this.ctx = ctx;
} }
@Override
public void afterAdd(ChannelHandlerContext ctx) throws Exception { public void afterAdd(ChannelHandlerContext ctx) throws Exception {
// Unused // Unused
} }
@Override
public void beforeRemove(ChannelHandlerContext ctx) throws Exception { public void beforeRemove(ChannelHandlerContext ctx) throws Exception {
// Unused // Unused
} }
@ -1234,6 +1235,7 @@ public class SslHandler extends FrameDecoder
/** /**
* Fail all pending writes which we were not able to flush out * Fail all pending writes which we were not able to flush out
*/ */
@Override
public void afterRemove(ChannelHandlerContext ctx) throws Exception { public void afterRemove(ChannelHandlerContext ctx) throws Exception {
// there is no need for synchronization here as we do not receive downstream events anymore // there is no need for synchronization here as we do not receive downstream events anymore

View File

@ -295,7 +295,7 @@ public class ChunkedWriteHandler implements ChannelUpstreamHandler, ChannelDowns
} }
if (acquired && (!channel.isConnected() || (channel.isWritable() && !queue.isEmpty()))) { if (acquired && (!channel.isConnected() || channel.isWritable() && !queue.isEmpty())) {
flush(ctx, fireNow); flush(ctx, fireNow);
} }
} }

View File

@ -347,14 +347,14 @@ public abstract class AbstractTrafficShapingHandler extends
* @return the time that should be necessary to wait to respect limit. Can * @return the time that should be necessary to wait to respect limit. Can
* be negative time * be negative time
*/ */
private long getTimeToWait(long limit, long bytes, long lastTime, private static long getTimeToWait(long limit, long bytes, long lastTime,
long curtime) { long curtime) {
long interval = curtime - lastTime; long interval = curtime - lastTime;
if (interval == 0) { if (interval == 0) {
// Time is too short, so just lets continue // Time is too short, so just lets continue
return 0; return 0;
} }
return ((bytes * 1000 / limit - interval) / 10) * 10; return (bytes * 1000 / limit - interval) / 10 * 10;
} }
@Override @Override

View File

@ -245,7 +245,7 @@ public class TrafficCounter {
* @param newcheckInterval * @param newcheckInterval
*/ */
public void configure(long newcheckInterval) { public void configure(long newcheckInterval) {
long newInterval = (newcheckInterval / 10) * 10; long newInterval = newcheckInterval / 10 * 10;
if (checkInterval.get() != newInterval) { if (checkInterval.get() != newInterval) {
checkInterval.set(newInterval); checkInterval.set(newInterval);
if (newInterval <= 0) { if (newInterval <= 0) {

View File

@ -25,13 +25,13 @@
* *
* <P>Two classes implement this behavior:<br> * <P>Two classes implement this behavior:<br>
* <ul> * <ul>
* <li> <tt>{@link TrafficCounter}</tt>: this class implements the counters needed by the handlers. * <li> <tt>{@link org.jboss.netty.handler.traffic.TrafficCounter}</tt>: this class implements the counters needed by the handlers.
* It can be accessed to get some extra information like the read or write bytes since last check, the read and write * It can be accessed to get some extra information like the read or write bytes since last check, the read and write
* bandwidth from last check...</li><br><br> * bandwidth from last check...</li><br><br>
* *
* <li> <tt>{@link AbstractTrafficShapingHandler}</tt>: this abstract class implements the kernel * <li> <tt>{@link org.jboss.netty.handler.traffic.AbstractTrafficShapingHandler}</tt>: this abstract class implements the kernel
* of the traffic shaping. It could be extended to fit your needs. Two classes are proposed as default * of the traffic shaping. It could be extended to fit your needs. Two classes are proposed as default
* implementations: see {@link ChannelTrafficShapingHandler} and see {@link GlobalTrafficShapingHandler} * implementations: see {@link org.jboss.netty.handler.traffic.ChannelTrafficShapingHandler} and see {@link org.jboss.netty.handler.traffic.GlobalTrafficShapingHandler}
* respectively for Channel traffic shaping and Global traffic shaping.</li><br><br> * respectively for Channel traffic shaping and Global traffic shaping.</li><br><br>
* *
* The insertion in the pipeline of one of those handlers can be wherever you want, but * The insertion in the pipeline of one of those handlers can be wherever you want, but
@ -62,15 +62,15 @@
* [Global or per Channel] [Write or Read] Limitation in byte/s.</li><br> * [Global or per Channel] [Write or Read] Limitation in byte/s.</li><br>
* A value of <tt>0</tt> * A value of <tt>0</tt>
* stands for no limitation, so the traffic shaping is deactivate (on what you specified).<br> * stands for no limitation, so the traffic shaping is deactivate (on what you specified).<br>
* You can either change those values with the method <tt>configure</tt> in {@link AbstractTrafficShapingHandler}.<br> * You can either change those values with the method <tt>configure</tt> in {@link org.jboss.netty.handler.traffic.AbstractTrafficShapingHandler}.<br>
* <br> * <br>
* *
* <li>To activate or deactivate the statistics, you can adjust the delay to a low (suggested not less than 200ms * <li>To activate or deactivate the statistics, you can adjust the delay to a low (suggested not less than 200ms
* for efficiency reasons) or a high value (let say 24H in millisecond is huge enough to not get the problem) * for efficiency reasons) or a high value (let say 24H in millisecond is huge enough to not get the problem)
* or even using <tt>0</tt> which means no computation will be done.</li><br> * or even using <tt>0</tt> which means no computation will be done.</li><br>
* If you want to do anything with this statistics, just override the <tt>doAccounting</tt> method.<br> * If you want to do anything with this statistics, just override the <tt>doAccounting</tt> method.<br>
* This interval can be changed either from the method <tt>configure</tt> in {@link AbstractTrafficShapingHandler} * This interval can be changed either from the method <tt>configure</tt> in {@link org.jboss.netty.handler.traffic.AbstractTrafficShapingHandler}
* or directly using the method <tt>configure</tt> of {@link TrafficCounter}.<br><br> * or directly using the method <tt>configure</tt> of {@link org.jboss.netty.handler.traffic.TrafficCounter}.<br><br>
* *
* </ul></P><br><br> * </ul></P><br><br>
* *
@ -81,8 +81,8 @@
* <tt>pipeline.addLast("XXXXX_TRAFFIC_SHAPING", myHandler);</tt><br> * <tt>pipeline.addLast("XXXXX_TRAFFIC_SHAPING", myHandler);</tt><br>
* <tt>...</tt><br> * <tt>...</tt><br>
* <tt>pipeline.addLast("MemoryExecutor",new ExecutionHandler(memoryAwareThreadPoolExecutor));</tt><br><br> * <tt>pipeline.addLast("MemoryExecutor",new ExecutionHandler(memoryAwareThreadPoolExecutor));</tt><br><br>
* <P>Note that a new {@link ChannelTrafficShapingHandler} must be created for each new channel, * <P>Note that a new {@link org.jboss.netty.handler.traffic.ChannelTrafficShapingHandler} must be created for each new channel,
* but only one {@link GlobalTrafficShapingHandler} must be created for all channels.</P> * but only one {@link org.jboss.netty.handler.traffic.GlobalTrafficShapingHandler} must be created for all channels.</P>
* *
* <P>Note also that you can create different GlobalTrafficShapingHandler if you want to separate classes of * <P>Note also that you can create different GlobalTrafficShapingHandler if you want to separate classes of
* channels (for instance either from business point of view or from bind address point of view).</P> * channels (for instance either from business point of view or from bind address point of view).</P>

View File

@ -454,7 +454,7 @@ public class HashedWheelTimer implements Timer {
// //
// See https://github.com/netty/netty/issues/356 // See https://github.com/netty/netty/issues/356
if (DetectionUtil.isWindows()) { if (DetectionUtil.isWindows()) {
sleepTime = (sleepTime / 10) * 10; sleepTime = sleepTime / 10 * 10;
} }
if (sleepTime <= 0) { if (sleepTime <= 0) {

View File

@ -13,16 +13,16 @@
* License for the specific language governing permissions and limitations * License for the specific language governing permissions and limitations
* under the License. * under the License.
*/ */
package org.jboss.netty.handler.codec.http; package org.jboss.netty.util.internal;
import java.io.Serializable; import java.io.Serializable;
import java.util.Comparator; import java.util.Comparator;
final class CaseIgnoringComparator implements Comparator<String>, Serializable { public final class CaseIgnoringComparator implements Comparator<String>, Serializable {
private static final long serialVersionUID = 4582133183775373862L; private static final long serialVersionUID = 4582133183775373862L;
static final CaseIgnoringComparator INSTANCE = new CaseIgnoringComparator(); public static final CaseIgnoringComparator INSTANCE = new CaseIgnoringComparator();
private CaseIgnoringComparator() { private CaseIgnoringComparator() {
super(); super();

View File

@ -22,8 +22,8 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.NoSuchElementException;
import org.jboss.netty.channel.ChannelFactory; import org.jboss.netty.channel.ChannelFactory;
import org.jboss.netty.channel.ChannelHandler; import org.jboss.netty.channel.ChannelHandler;

View File

@ -15,21 +15,17 @@
*/ */
package org.jboss.netty.channel.local; package org.jboss.netty.channel.local;
import org.junit.Assert;
import org.junit.Test;
import org.jboss.netty.bootstrap.ClientBootstrap; import org.jboss.netty.bootstrap.ClientBootstrap;
import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.ChannelEvent; import org.jboss.netty.channel.ChannelEvent;
import org.jboss.netty.channel.ChannelFuture; import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler; import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
import org.jboss.netty.channel.local.DefaultLocalClientChannelFactory; import org.junit.Assert;
import org.jboss.netty.channel.local.DefaultLocalServerChannelFactory; import org.junit.Test;
import org.jboss.netty.channel.local.LocalAddress;
public class LocalAddressTest { public class LocalAddressTest {
private static String LOCAL_ADDR_ID = "test.id"; private static String LOCAL_ADDR_ID = "test.id";

View File

@ -15,8 +15,7 @@
*/ */
package org.jboss.netty.channel.local; package org.jboss.netty.channel.local;
import static org.junit.Assert.assertNull; import static org.junit.Assert.*;
import static org.junit.Assert.assertTrue;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;

View File

@ -15,16 +15,7 @@
*/ */
package org.jboss.netty.channel.socket; package org.jboss.netty.channel.socket;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.*;
import org.jboss.netty.bootstrap.ConnectionlessBootstrap;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
import org.jboss.netty.channel.socket.DatagramChannelFactory;
import org.jboss.netty.util.internal.ExecutorUtil;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
@ -33,6 +24,14 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.jboss.netty.bootstrap.ConnectionlessBootstrap;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
import org.jboss.netty.util.internal.ExecutorUtil;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.Assert; import org.junit.Assert;
import org.junit.BeforeClass; import org.junit.BeforeClass;

View File

@ -17,7 +17,6 @@ package org.jboss.netty.channel.socket;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import org.jboss.netty.channel.socket.nio.NioDatagramChannel.ProtocolFamily;
import org.jboss.netty.channel.socket.nio.NioDatagramChannelFactory; import org.jboss.netty.channel.socket.nio.NioDatagramChannelFactory;
import org.jboss.netty.channel.socket.oio.OioDatagramChannelFactory; import org.jboss.netty.channel.socket.oio.OioDatagramChannelFactory;
@ -25,7 +24,7 @@ public class NioNioDatagramMulticastTest extends AbstractDatagramMulticastTest {
@Override @Override
protected DatagramChannelFactory newServerSocketChannelFactory(Executor executor) { protected DatagramChannelFactory newServerSocketChannelFactory(Executor executor) {
return new NioDatagramChannelFactory(executor, ProtocolFamily.INET); return new NioDatagramChannelFactory(executor, InternetProtocolFamily.IPv4);
} }
@Override @Override

Some files were not shown because too many files have changed in this diff Show More