You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jv...@apache.org on 2007/09/13 16:23:11 UTC

svn commit: r575322 - /mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/

Author: jvermillard
Date: Thu Sep 13 07:23:10 2007
New Revision: 575322

URL: http://svn.apache.org/viewvc?rev=575322&view=rev
Log:
Better APR library loading and support for UDP and SCTP

Added:
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRLibrary.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRProtocol.java
Modified:
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRFilterChain.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSession.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/AbstractAPRSessionConfig.java
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java Thu Sep 13 07:23:10 2007
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
 import java.io.IOException;
@@ -9,6 +28,7 @@
 import org.apache.mina.common.AbstractIoFilterChain;
 import org.apache.mina.common.ConnectFuture;
 import org.apache.mina.common.DefaultConnectFuture;
+import org.apache.mina.common.IoConnector;
 import org.apache.mina.common.IoServiceListenerSupport;
 import org.apache.mina.common.TransportMetadata;
 import org.apache.mina.util.NewThreadExecutor;
@@ -16,6 +36,16 @@
 import org.apache.tomcat.jni.Pool;
 import org.apache.tomcat.jni.Socket;
 
+/**
+ * An {@link IoConnector} implementation using the Apache Portable Runtime 
+ * (APR : http://apr.apache.org) for providing socket.
+ * It's supporting different transport protocol, so you need to give the 
+ * wanted {@link APRProtocol} as parameter to the constructor.
+ * @see APRSession
+ * @see APRProtocol
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
 public class APRConnector extends AbstractIoConnector {
 
 	/**
@@ -36,35 +66,42 @@
 
 	private int processorDistributor = 0;
 
-	// APR memory pool (package wide mother pool)
-	static long pool = -1;
-
+	private APRProtocol protocol;
+	
 	/**
 	 * Create a connector with a single processing thread using a
 	 * NewThreadExecutor
+	 * @param protocol 
+	 *            The needed socket protocol (TCP,UDP,...)
 	 */
-	public APRConnector() {
-		this(1, new NewThreadExecutor());
+	public APRConnector(APRProtocol protocol) {
+		this(protocol,1, new NewThreadExecutor());
 	}
 
 	/**
 	 * Create a connector with the desired number of processing threads
 	 * 
+	 * @param protocol 
+	 * 			  The needed socket protocol (TCP,UDP,...)
 	 * @param processorCount
 	 *            Number of processing threads
 	 * @param executor
 	 *            Executor to use for launching threads
 	 */
-	public APRConnector(int processorCount, Executor executor) {
+	public APRConnector(APRProtocol protocol,int processorCount, Executor executor) {
 		super(new DefaultAPRSessionConfig());
+		
+		this.protocol=protocol;
+		
+		// load  the APR library
+		
+		APRLibrary.initialize();
+		
 		if (processorCount < 1) {
 			throw new IllegalArgumentException(
 					"Must have at least one processor");
 		}
 
-		if (pool == -1)
-			pool = Pool.create(0);
-
 		this.executor = executor;
 		this.processorCount = processorCount;
 		ioProcessors = new APRIoProcessor[processorCount];
@@ -81,14 +118,14 @@
 		boolean success = false;
 		try {
 			InetSocketAddress sockAddr = (InetSocketAddress) remoteAddress;
-			pool = Pool.create(pool);
+			//pool = Pool.create(pool);
 			long inetAddr = 0;
 			inetAddr = Address.info(sockAddr.getHostName(), Socket.APR_INET,
-					sockAddr.getPort(), 0, pool);
+					sockAddr.getPort(), 0, APRLibrary.getLibrary().getPool());
 
 			// TODO : type of socket need to be configurable
 			long clientSock = Socket.create(Socket.APR_INET,
-					Socket.SOCK_STREAM, Socket.APR_PROTO_TCP, pool);
+					Socket.SOCK_STREAM, protocol.codeProto, APRLibrary.getLibrary().getPool());
 			
 			
 			
@@ -116,9 +153,9 @@
 			session.setAttribute(AbstractIoFilterChain.CONNECT_FUTURE, future);
 
 			// Forward the remaining process to the APRIoProcessor.
+			// it's will validate the COnnectFuture when the session is in the poll set
 			session.getIoProcessor().addNew(session);
-			//future.setSession(session);
-
+			
 			success = true;
 			return future;
 		} catch (Exception e) {
@@ -138,12 +175,6 @@
 		}
 
 		return ioProcessors[processorDistributor % processorCount];
-	}
-
-	@Override
-	protected void finalize() throws Throwable {
-//		 TODO : necessary I think, need to check APR doc
-		Pool.clear(pool);
 	}
 
 	public TransportMetadata getTransportMetadata() {

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRFilterChain.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRFilterChain.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRFilterChain.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRFilterChain.java Thu Sep 13 07:23:10 2007
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
 import java.io.IOException;
@@ -5,10 +24,19 @@
 
 import org.apache.mina.common.AbstractIoFilterChain;
 import org.apache.mina.common.ByteBuffer;
+import org.apache.mina.common.IoConnector;
+import org.apache.mina.common.IoFilterChain;
+import org.apache.mina.common.IoService;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.WriteRequest;
 
-public class APRFilterChain extends AbstractIoFilterChain {
+/**
+ * An {@link IoFilterChain} for the APR based {@link IoService}.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
+class APRFilterChain extends AbstractIoFilterChain {
 
 	APRFilterChain(IoSession parent) {
 		super(parent);

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java Thu Sep 13 07:23:10 2007
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
 import java.util.HashMap;
@@ -11,6 +30,7 @@
 import org.apache.mina.common.ConnectFuture;
 import org.apache.mina.common.ExceptionMonitor;
 import org.apache.mina.common.IdleStatus;
+import org.apache.mina.common.IoFilterChain;
 import org.apache.mina.common.IoService;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.WriteRequest;
@@ -23,8 +43,14 @@
 import org.apache.tomcat.jni.Status;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+/**
+ * The class in charge of processing socket level IO events for the {@link APRConnector}
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
 
-public class APRIoProcessor {
+class APRIoProcessor {
 
 	private final Logger logger = LoggerFactory.getLogger(getClass());
 
@@ -57,7 +83,7 @@
 		this.executor = executor;
 
 		// initialize a memory pool for APR functions
-		pool = Pool.create(APRConnector.pool);
+		pool = Pool.create(APRLibrary.getLibrary().getPool());
 		try {
 
 			// TODO : optimize/parametrize those values

Added: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRLibrary.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRLibrary.java?rev=575322&view=auto
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRLibrary.java (added)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRLibrary.java Thu Sep 13 07:23:10 2007
@@ -0,0 +1,77 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.mina.transport.apr;
+
+import org.apache.mina.common.IoFilterChain;
+import org.apache.mina.common.IoService;
+import org.apache.tomcat.jni.Library;
+import org.apache.tomcat.jni.Pool;
+
+/**
+ * Internal singleton used for initializing corretcly the APR native library
+ * and the associated memory pool.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
+class APRLibrary {
+	
+	// is APR library was initialized (load of native libraries)
+	private static APRLibrary library=null;
+	
+	
+	static synchronized APRLibrary getLibrary() {
+		if(!isInitialized())
+			initialize();
+		return library; 
+	}
+
+	static synchronized void initialize() {
+		if(library==null)
+			library=new APRLibrary();
+	}
+	
+	static synchronized boolean isInitialized() {
+		return library!=null;
+	}
+	
+	
+	
+	// APR memory pool (package wide mother pool)	
+	private long pool = -1;
+	
+	private APRLibrary() {
+		try {
+			Library.initialize(null);
+		} catch (Exception e) {
+			throw new RuntimeException("Error loading Apache Portable Runtime (APR)",e);
+		}
+		pool = Pool.create(0);		
+	}
+	
+	protected void finalize() throws Throwable {
+		//		 TODO : necessary I think, need to check APR doc
+		Pool.clear(pool);
+	}
+	
+	public long getPool() {
+		return pool;
+	}
+}

Added: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRProtocol.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRProtocol.java?rev=575322&view=auto
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRProtocol.java (added)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRProtocol.java Thu Sep 13 07:23:10 2007
@@ -0,0 +1,39 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.mina.transport.apr;
+
+import org.apache.tomcat.jni.Socket;
+
+/**
+ * Protocol usable with the {@link APRConnector}.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
+public enum APRProtocol {
+	TCP(Socket.APR_PROTO_TCP),
+	UDP(Socket.APR_PROTO_UDP),
+	SCTP(Socket.APR_PROTO_SCTP);
+	
+	int codeProto;
+    private APRProtocol(int codeProto) {
+        this.codeProto=codeProto;
+    }
+}

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSession.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSession.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSession.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSession.java Thu Sep 13 07:23:10 2007
@@ -1,9 +1,34 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
 import java.net.InetSocketAddress;
 
 import org.apache.mina.common.IoSession;
 
+/**
+ * {@link IoSession} for the {@link APRConnector}
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
 public interface APRSession extends IoSession {
 	APRSessionConfig getConfig();
 

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java Thu Sep 13 07:23:10 2007
@@ -1,9 +1,35 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
 import java.net.Socket;
 
+import org.apache.mina.common.IoSession;
 import org.apache.mina.common.IoSessionConfig;
 
+/**
+ * {@link IoSessionConfig} for configuring {@link APRSession} options.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
 public interface APRSessionConfig extends IoSessionConfig {
 	
     /**

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java Thu Sep 13 07:23:10 2007
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
 import java.net.InetSocketAddress;
@@ -11,13 +30,20 @@
 import org.apache.mina.common.IoFilterChain;
 import org.apache.mina.common.IoHandler;
 import org.apache.mina.common.IoService;
+import org.apache.mina.common.IoSession;
 import org.apache.mina.common.IoSessionConfig;
 import org.apache.mina.common.RuntimeIOException;
 import org.apache.mina.common.TransportMetadata;
 import org.apache.mina.common.WriteRequest;
 import org.apache.tomcat.jni.Socket;
 
-public class APRSessionImpl extends AbstractIoSession implements APRSession {
+/**
+ * Implementation for {@link APRSession}
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
+class APRSessionImpl extends AbstractIoSession implements APRSession {
 	private long socket;
 
 	private final IoService service;

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/AbstractAPRSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/AbstractAPRSessionConfig.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/AbstractAPRSessionConfig.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/AbstractAPRSessionConfig.java Thu Sep 13 07:23:10 2007
@@ -1,9 +1,35 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
 import org.apache.mina.common.AbstractIoSessionConfig;
+import org.apache.mina.common.IoFuture;
 import org.apache.mina.common.IoSessionConfig;
 
-public abstract class AbstractAPRSessionConfig extends AbstractIoSessionConfig implements APRSessionConfig {
+/**
+ * An abstract APRSessionConfig {@link APRSessionConfig}.
+ *  
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
+abstract class AbstractAPRSessionConfig extends AbstractIoSessionConfig implements APRSessionConfig {
 
 	public AbstractAPRSessionConfig() {
 		super();

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java?rev=575322&r1=575321&r2=575322&view=diff
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java Thu Sep 13 07:23:10 2007
@@ -1,7 +1,34 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
 package org.apache.mina.transport.apr;
 
+import org.apache.mina.common.IoSession;
 
-public class DefaultAPRSessionConfig extends AbstractAPRSessionConfig implements APRSessionConfig {
+
+/**
+ * Default configuration for {@link APRSession}
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev:  $, $Date:  $
+ */
+class DefaultAPRSessionConfig extends AbstractAPRSessionConfig implements APRSessionConfig {
     
 	private static boolean SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;