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 2009/10/20 14:10:12 UTC
svn commit: r827044 - in /mina/branches/3.0: ./ core/ core/src/
core/src/main/ core/src/main/java/ core/src/main/java/org/
core/src/main/java/org/apache/ core/src/main/java/org/apache/mina/
core/src/test/ core/src/test/java/
Author: jvermillard
Date: Tue Oct 20 12:10:11 2009
New Revision: 827044
URL: http://svn.apache.org/viewvc?rev=827044&view=rev
Log:
session related interfaces unbloated
Added:
mina/branches/3.0/core/
mina/branches/3.0/core/pom.xml
mina/branches/3.0/core/src/
mina/branches/3.0/core/src/main/
mina/branches/3.0/core/src/main/java/
mina/branches/3.0/core/src/main/java/org/
mina/branches/3.0/core/src/main/java/org/apache/
mina/branches/3.0/core/src/main/java/org/apache/mina/
mina/branches/3.0/core/src/main/java/org/apache/mina/CloseFuture.java
mina/branches/3.0/core/src/main/java/org/apache/mina/IdleStatus.java
mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java
mina/branches/3.0/core/src/main/java/org/apache/mina/IoSessionFuture.java
mina/branches/3.0/core/src/main/java/org/apache/mina/WriteFuture.java
mina/branches/3.0/core/src/test/
mina/branches/3.0/core/src/test/java/
mina/branches/3.0/pom.xml
Added: mina/branches/3.0/core/pom.xml
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/pom.xml?rev=827044&view=auto
==============================================================================
--- mina/branches/3.0/core/pom.xml (added)
+++ mina/branches/3.0/core/pom.xml Tue Oct 20 12:10:11 2009
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+ 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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.mina</groupId>
+ <artifactId>mina-parent</artifactId>
+ <version>3.0.0-M1-SNAPSHOT</version>
+ </parent>
+ <artifactId>mina-core</artifactId>
+ <name>Apache MINA Core</name>
+ <packaging>bundle</packaging>
+ <properties>
+ <symbolicName>${groupId}.core</symbolicName>
+ <exportedPackage>${groupId}</exportedPackage>
+ </properties>
+</project>
+
Added: mina/branches/3.0/core/src/main/java/org/apache/mina/CloseFuture.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/CloseFuture.java?rev=827044&view=auto
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/CloseFuture.java (added)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/CloseFuture.java Tue Oct 20 12:10:11 2009
@@ -0,0 +1,33 @@
+/*
+ * 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;
+
+import java.util.concurrent.Future;
+
+/**
+ * a {@link Future} for asynchronous {@link IoSession} close operations.
+ *
+ * @see IoSession.close
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
+public interface CloseFuture extends IoSessionFuture {
+
+}
Added: mina/branches/3.0/core/src/main/java/org/apache/mina/IdleStatus.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/IdleStatus.java?rev=827044&view=auto
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/IdleStatus.java (added)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/IdleStatus.java Tue Oct 20 12:10:11 2009
@@ -0,0 +1,75 @@
+/*
+ * 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;
+
+
+/**
+ * Represents the type of idleness of {@link IoSession} or
+ * {@link IoSession}. There are three types of idleness:
+ * <ul>
+ * <li>{@link #READER_IDLE} - No data is coming from the remote peer.</li>
+ * <li>{@link #WRITER_IDLE} - Session is not writing any data.</li>
+ * <li>{@link #BOTH_IDLE} - Both {@link #READER_IDLE} and {@link #WRITER_IDLE}.</li>
+ * </ul>
+ * <p>
+ * Idle time settings are all disabled by default. You can enable them
+ * using {@link IoSessionConfig#setIdleTime(IdleStatus,int)}.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
+public class IdleStatus {
+ /**
+ * Represents the session status that no data is coming from the remote
+ * peer.
+ */
+ public static final IdleStatus READER_IDLE = new IdleStatus("reader idle");
+
+ /**
+ * Represents the session status that the session is not writing any data.
+ */
+ public static final IdleStatus WRITER_IDLE = new IdleStatus("writer idle");
+
+ /**
+ * Represents both {@link #READER_IDLE} and {@link #WRITER_IDLE}.
+ */
+ public static final IdleStatus BOTH_IDLE = new IdleStatus("both idle");
+
+ private final String strValue;
+
+ /**
+ * Creates a new instance.
+ */
+ private IdleStatus(String strValue) {
+ this.strValue = strValue;
+ }
+
+ /**
+ * Returns the string representation of this status.
+ * <ul>
+ * <li>{@link #READER_IDLE} - <tt>"reader idle"</tt></li>
+ * <li>{@link #WRITER_IDLE} - <tt>"writer idle"</tt></li>
+ * <li>{@link #BOTH_IDLE} - <tt>"both idle"</tt></li>
+ * </ul>
+ */
+ @Override
+ public String toString() {
+ return strValue;
+ }
+}
\ No newline at end of file
Added: mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java?rev=827044&view=auto
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java (added)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java Tue Oct 20 12:10:11 2009
@@ -0,0 +1,285 @@
+/*
+ * 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;
+
+import java.net.SocketAddress;
+import java.util.Set;
+
+/**
+ * A handle which represents connection between two end-points regardless of
+ * transport types.
+ * <p/>
+ * {@link IoSession} provides user-defined attributes. User-defined attributes
+ * are application-specific data which are associated with a session.
+ * It often contains objects that represents the state of a higher-level protocol
+ * and becomes a way to exchange data between filters and handlers.
+ * <p/>
+ * <h3>Adjusting Transport Type Specific Properties</h3>
+ * <p/>
+ * You can simply downcast the session to an appropriate subclass.
+ * </p>
+ * <p/>
+ * <h3>Thread Safety</h3>
+ * <p/>
+ * {@link IoSession} is thread-safe. But please note that performing
+ * more than one {@link #write(Object)} calls at the same time will
+ * cause the {@link IoFilter#filterWrite(IoFilter.NextFilter,IoSession,WriteRequest)}
+ * to be executed simultaneously, and therefore you have to make sure the
+ * {@link IoFilter} implementations you're using are thread-safe, too.
+ * </p>
+ * <p/>
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
+public interface IoSession {
+
+ /* ADDRESSES */
+
+ /**
+ * Returns the socket address of remote peer.
+ */
+ SocketAddress getRemoteAddress();
+
+ /**
+ * Returns the socket address of local machine which is associated with this
+ * session.
+ */
+ SocketAddress getLocalAddress();
+
+
+ /* READ / WRITE / CLOSE */
+
+ /**
+ * Returns <code>true</code> if this session is connected with remote peer.
+ */
+ boolean isConnected();
+
+ /**
+ * Returns <code>true</tt> if and only if this session is being closed
+ * (but not disconnected yet) or is closed.
+ */
+ boolean isClosing();
+
+ /**
+ * Closes this session immediately or after all queued write requests
+ * are flushed. This operation is asynchronous. Wait for the returned
+ * {@link CloseFuture} if you want to wait for the session actually closed.
+ *
+ * @param immediately {@code true} to close this session immediately.
+ * {@code false} to close this session after all queued
+ * write requests are flushed.
+ */
+ CloseFuture close(boolean immediately);
+
+ /* READ/WRITE PAUSE MANAGEMENT */
+
+ /**
+ * Suspends read operations for this session.
+ */
+ void suspendRead();
+
+ /**
+ * Suspends write operations for this session.
+ */
+ void suspendWrite();
+
+ /**
+ * Resumes read operations for this session.
+ */
+ void resumeRead();
+
+ /**
+ * Resumes write operations for this session.
+ */
+ void resumeWrite();
+
+ /**
+ * Is read operation is suspended for this session.
+ * @return <code>true</code> if suspended
+ */
+ boolean isReadSuspended();
+
+ /**
+ * Is write operation is suspended for this session.
+ * @return <code>true</code> if suspended
+ */
+ boolean isWriteSuspended();
+
+ /* BASIC STATS */
+
+ /**
+ * Returns the total number of bytes which were read from this session.
+ */
+ long getReadBytes();
+
+ /**
+ * Returns the total number of bytes which were written to this session.
+ */
+ long getWrittenBytes();
+
+ /* IDLE */
+
+ /**
+ * @return the session's creation time in milliseconds
+ */
+ long getCreationTime();
+
+ /**
+ * Returns the time in millis when I/O occurred lastly.
+ */
+ long getLastIoTime();
+
+ /**
+ * Returns the time in millis when read operation occurred lastly.
+ */
+ long getLastReadTime();
+
+ /**
+ * Returns the time in millis when write operation occurred lastly.
+ */
+ long getLastWriteTime();
+
+
+ /* ATTACHEMENT MANAGEMENT */
+
+ /**
+ * Returns the value of the user-defined attribute of this session.
+ *
+ * @param key the key of the attribute
+ * @return <tt>null</tt> if there is no attribute with the specified key
+ */
+ Object getAttribute(Object key);
+
+ /**
+ * Returns the value of user defined attribute associated with the
+ * specified key. If there's no such attribute, the specified default
+ * value is associated with the specified key, and the default value is
+ * returned. This method is same with the following code except that the
+ * operation is performed atomically.
+ * <pre>
+ * if (containsAttribute(key)) {
+ * return getAttribute(key);
+ * } else {
+ * setAttribute(key, defaultValue);
+ * return defaultValue;
+ * }
+ * </pre>
+ */
+ Object getAttribute(Object key, Object defaultValue);
+
+ /**
+ * Sets a user-defined attribute.
+ *
+ * @param key the key of the attribute
+ * @param value the value of the attribute
+ * @return The old value of the attribute. <tt>null</tt> if it is new.
+ */
+ Object setAttribute(Object key, Object value);
+
+ /**
+ * Sets a user defined attribute without a value. This is useful when
+ * you just want to put a 'mark' attribute. Its value is set to
+ * {@link Boolean#TRUE}.
+ *
+ * @param key the key of the attribute
+ * @return The old value of the attribute. <tt>null</tt> if it is new.
+ */
+ Object setAttribute(Object key);
+
+ /**
+ * Sets a user defined attribute if the attribute with the specified key
+ * is not set yet. This method is same with the following code except
+ * that the operation is performed atomically.
+ * <pre>
+ * if (containsAttribute(key)) {
+ * return getAttribute(key);
+ * } else {
+ * return setAttribute(key, value);
+ * }
+ * </pre>
+ */
+ Object setAttributeIfAbsent(Object key, Object value);
+
+ /**
+ * Sets a user defined attribute without a value if the attribute with
+ * the specified key is not set yet. This is useful when you just want to
+ * put a 'mark' attribute. Its value is set to {@link Boolean#TRUE}.
+ * This method is same with the following code except that the operation
+ * is performed atomically.
+ * <pre>
+ * if (containsAttribute(key)) {
+ * return getAttribute(key); // might not always be Boolean.TRUE.
+ * } else {
+ * return setAttribute(key);
+ * }
+ * </pre>
+ */
+ Object setAttributeIfAbsent(Object key);
+
+ /**
+ * Removes a user-defined attribute with the specified key.
+ *
+ * @return The old value of the attribute. <tt>null</tt> if not found.
+ */
+ Object removeAttribute(Object key);
+
+ /**
+ * Removes a user defined attribute with the specified key if the current
+ * attribute value is equal to the specified value. This method is same
+ * with the following code except that the operation is performed
+ * atomically.
+ * <pre>
+ * if (containsAttribute(key) && getAttribute(key).equals(value)) {
+ * removeAttribute(key);
+ * return true;
+ * } else {
+ * return false;
+ * }
+ * </pre>
+ */
+ boolean removeAttribute(Object key, Object value);
+
+ /**
+ * Replaces a user defined attribute with the specified key if the
+ * value of the attribute is equals to the specified old value.
+ * This method is same with the following code except that the operation
+ * is performed atomically.
+ * <pre>
+ * if (containsAttribute(key) && getAttribute(key).equals(oldValue)) {
+ * setAttribute(key, newValue);
+ * return true;
+ * } else {
+ * return false;
+ * }
+ * </pre>
+ */
+ boolean replaceAttribute(Object key, Object oldValue, Object newValue);
+
+ /**
+ * Returns <tt>true</tt> if this session contains the attribute with
+ * the specified <tt>key</tt>.
+ */
+ boolean containsAttribute(Object key);
+
+ /**
+ * Returns the set of keys of all user-defined attributes.
+ */
+ Set<Object> getAttributeKeys();
+}
\ No newline at end of file
Added: mina/branches/3.0/core/src/main/java/org/apache/mina/IoSessionFuture.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/IoSessionFuture.java?rev=827044&view=auto
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/IoSessionFuture.java (added)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/IoSessionFuture.java Tue Oct 20 12:10:11 2009
@@ -0,0 +1,32 @@
+/*
+ * 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;
+
+import java.util.concurrent.Future;
+
+/**
+ * a {@link Future} for asynchronous {@link IoSession} operations.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
+public interface IoSessionFuture extends Future<Boolean> {
+
+}
Added: mina/branches/3.0/core/src/main/java/org/apache/mina/WriteFuture.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/WriteFuture.java?rev=827044&view=auto
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/WriteFuture.java (added)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/WriteFuture.java Tue Oct 20 12:10:11 2009
@@ -0,0 +1,32 @@
+/*
+ * 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;
+
+import java.util.concurrent.Future;
+
+/**
+ * a {@link Future} for asynchronous {@link IoSession} write operations.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
+public interface WriteFuture extends IoSessionFuture {
+
+}
Added: mina/branches/3.0/pom.xml
URL: http://svn.apache.org/viewvc/mina/branches/3.0/pom.xml?rev=827044&view=auto
==============================================================================
--- mina/branches/3.0/pom.xml (added)
+++ mina/branches/3.0/pom.xml Tue Oct 20 12:10:11 2009
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+ 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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>4</version>
+ </parent>
+ <organization>
+ <name>Apache MINA Project</name>
+ <url>http://mina.apache.org/</url>
+ </organization>
+ <groupId>org.apache.mina</groupId>
+ <version>3.0.0-M1-SNAPSHOT</version>
+ <artifactId>build</artifactId>
+ <name>Apache MINA</name>
+ <packaging>pom</packaging>
+
+ <url>http://mina.apache.org/</url>
+ <inceptionYear>2009</inceptionYear>
+
+ <issueManagement>
+ <system>jira</system>
+ <url>http://issues.apache.org/jira/browse/DIRMINA</url>
+ </issueManagement>
+
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/mina/tags/build-3.0.0-M1-SNAPSHOT</connection>
+ <url>http://svn.apache.org/viewvc/directory/mina/tags/build-3.0.0-M1-SNAPSHOT</url>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/mina/tags/build-3.0.0-M1-SNAPSHOT</developerConnection>
+ </scm>
+
+ <distributionManagement>
+ <site>
+ <id>apache.websites</id>
+ <url>scp://people.apache.org/www/mina.apache.org/report/3.0/</url>
+ </site>
+ </distributionManagement>
+
+ <ciManagement>
+ <notifiers>
+ <notifier>
+ <type>mail</type>
+ <address>dev@mina.apache.org</address>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+
+ <description>Apache MINA is a network application framework which helps users develop high performance and highly scalable network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.</description>
+
+ <licenses>
+ <license>
+ <name>Apache 2.0 License</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+
+
+ <modules>
+ <module>core</module>
+ </modules>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ <source>1.6</source>
+ <target>1.6</target>
+ <debug>true</debug>
+ <optimize>true</optimize>
+ <showDeprecations>true</showDeprecations>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>2.1.1</version>
+ <executions>
+ <execution>
+ <id>attach-source</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.0-beta-9</version>
+ <configuration>
+ <tagBase>
+ https://svn.apache.org/repos/asf/mina/tags
+ </tagBase>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.0.1</version>
+ <inherited>true</inherited>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${symbolicName}</Bundle-SymbolicName>
+ <Export-Package>${exportedPackage}.*;version=${pom.version}</Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.6</version>
+ <inherited>false</inherited>
+ <configuration>
+ <aggregate>true</aggregate>
+ <breakiterator>true</breakiterator>
+ <charset>UTF-8</charset>
+ <docencoding>UTF-8</docencoding>
+ <windowtitle>Apache MINA ${project.version} API Documentation</windowtitle>
+ <doctitle>Apache MINA ${project.version} API Documentation</doctitle>
+ <encoding>UTF-8</encoding>
+ <links>
+ <link>http://java.sun.com/j2se/1.6.0/docs/api/</link>
+ <link>http://www.slf4j.org/api/</link>
+ </links>
+ <locale>en_US</locale>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <version>2.1</version>
+ <inherited>false</inherited>
+ <configuration>
+ <aggregate>true</aggregate>
+ <inputEncoding>UTF-8</inputEncoding>
+ <outputEncoding>UTF-8</outputEncoding>
+ <windowTitle>Apache MINA ${project.version} Cross Reference</windowTitle>
+ <docTitle>Apache MINA ${project.version} Cross Reference</docTitle>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>rat-maven-plugin</artifactId>
+ <version>1.0-alpha-3</version>
+ <configuration>
+ <excludes>
+ <exclude>**/target/**/*</exclude>
+ <exclude>**/.*</exclude>
+ <exclude>**/NOTICE.txt</exclude>
+ <exclude>**/LICENSE*.txt</exclude>
+ </excludes>
+ <excludeSubProjects>false</excludeSubProjects>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>