diff --git a/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/Activator.java b/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/Activator.java
index 2da05d6..5603d2f 100644
--- a/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/Activator.java
+++ b/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/Activator.java
@@ -26,7 +26,7 @@
  * with the framework on start. Subsequently, ConfigurationEvents will be
  * bridged to available EventAdmin services (as per spec).
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/ConfigurationEventToEventAdminBridge.java b/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/ConfigurationEventToEventAdminBridge.java
index 11c0a64..467fe87 100644
--- a/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/ConfigurationEventToEventAdminBridge.java
+++ b/eventadmin/bridge.configuration/src/main/java/org/apache/felix/eventadmin/bridge/configuration/ConfigurationEventToEventAdminBridge.java
@@ -32,7 +32,7 @@
 import org.osgi.service.event.EventConstants;
 
 /**
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ConfigurationEventToEventAdminBridge implements
     ConfigurationListener
diff --git a/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/Activator.java b/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/Activator.java
index 0cb5b75..a0ce3b8 100644
--- a/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/Activator.java
+++ b/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/Activator.java
@@ -26,7 +26,7 @@
  * framework on start. Subsequently, UPnPEvents will be bridged to available 
  * EventAdmin services (as per spec).
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/UPnPEventToEventAdminBridge.java b/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/UPnPEventToEventAdminBridge.java
index 880f901..1ec3eaa 100644
--- a/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/UPnPEventToEventAdminBridge.java
+++ b/eventadmin/bridge.upnp/src/main/java/org/apache/felix/eventadmin/bridge/upnp/UPnPEventToEventAdminBridge.java
@@ -49,7 +49,7 @@
  * ServiceListener for EventHandlers in order to determine EventHandler
  * availability.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class UPnPEventToEventAdminBridge implements UPnPEventListener
 {
diff --git a/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/Activator.java b/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/Activator.java
index 1a7bc74..18231fa 100644
--- a/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/Activator.java
+++ b/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/Activator.java
@@ -26,7 +26,7 @@
  * framework on start. Subsequently, UserAdminEvents will be bridged to available 
  * EventAdmin services (as per spec).
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/UserAdminEventToEventAdminBridge.java b/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/UserAdminEventToEventAdminBridge.java
index 9014468..ea23c19 100644
--- a/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/UserAdminEventToEventAdminBridge.java
+++ b/eventadmin/bridge.useradmin/src/main/java/org/apache/felix/eventadmin/bridge/useradmin/UserAdminEventToEventAdminBridge.java
@@ -32,7 +32,7 @@
 import org.osgi.service.useradmin.UserAdminListener;
 
 /**
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class UserAdminEventToEventAdminBridge implements UserAdminListener
 {
diff --git a/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/Activator.java b/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/Activator.java
index 89eb643..f99129a 100644
--- a/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/Activator.java
+++ b/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/Activator.java
@@ -26,7 +26,7 @@
  * framework on start. Subsequently, WireAdminEvents will be bridged to available 
  * EventAdmin services (as per spec).
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/WireAdminEventToEventAdminBridge.java b/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/WireAdminEventToEventAdminBridge.java
index 5c99565..db33e6a 100644
--- a/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/WireAdminEventToEventAdminBridge.java
+++ b/eventadmin/bridge.wireadmin/src/main/java/org/apache/felix/eventadmin/bridge/wireadmin/WireAdminEventToEventAdminBridge.java
@@ -32,7 +32,7 @@
 import org.osgi.service.wireadmin.WireAdminListener;
 
 /**
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class WireAdminEventToEventAdminBridge implements WireAdminListener
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/Activator.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/Activator.java
index fdcef6b..a13d0ad 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/Activator.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/Activator.java
@@ -98,7 +98,7 @@
  * (i.e., they are treated the same as with a topic=*).
  * </p>
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 // TODO: Security is in place but untested due to not being implemented by the 
 // framework. However, it needs to be revisited once security is implemented. 
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java
index 529902b..7baab6a 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/EventAdminImpl.java
@@ -35,7 +35,7 @@
  * implementations of the <tt>DeliverTasks</tt>. Additionally, a stop method is
  * provided that prevents subsequent events to be delivered.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class EventAdminImpl implements EventAdmin
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/BundleEventAdapter.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/BundleEventAdapter.java
index 0f4bc47..6d80fb0 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/BundleEventAdapter.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/BundleEventAdapter.java
@@ -32,7 +32,7 @@
  * This class registers itself as a listener for bundle events and posts them via
  * the EventAdmin as specified in 113.6.4 OSGi R4 compendium.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class BundleEventAdapter implements BundleListener
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/FrameworkEventAdapter.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/FrameworkEventAdapter.java
index 60c3bed..c7ad2fc 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/FrameworkEventAdapter.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/FrameworkEventAdapter.java
@@ -33,7 +33,7 @@
  * This class registers itself as a listener for framework events and posts them via
  * the EventAdmin as specified in 113.6.3 OSGi R4 compendium.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class FrameworkEventAdapter implements FrameworkListener
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/LogEventAdapter.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/LogEventAdapter.java
index 96d5325..09918f8 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/LogEventAdapter.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/LogEventAdapter.java
@@ -43,7 +43,7 @@
  * available hence, combined with a DynamicImport-Package no hard dependency is 
  * needed. 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class LogEventAdapter implements ServiceListener
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/ServiceEventAdapter.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/ServiceEventAdapter.java
index c531d9f..4e365a8 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/ServiceEventAdapter.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/adapter/ServiceEventAdapter.java
@@ -34,7 +34,7 @@
  * This class registers itself as a listener for service events and posts them via
  * the EventAdmin as specified in 113.6.5 OSGi R4 compendium.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceEventAdapter implements ServiceListener
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/CacheThreadPool.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/CacheThreadPool.java
index 795c5e6..b5d1e75 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/CacheThreadPool.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/CacheThreadPool.java
@@ -31,7 +31,7 @@
  * threads hence, once the pool size is reached older threads will be decoupled from
  * the pool and the newly created are added to it.
  *  
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 // TODO: The least recently used method deployed is rather a hack in this case
 //      it really should be refactored into a plugable strategy. However, I believe 
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/DelayScheduler.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/DelayScheduler.java
index 00a1328..2bc70dc 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/DelayScheduler.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/DelayScheduler.java
@@ -36,7 +36,7 @@
  * @see org.apache.felix.eventadmin.impl.dispatch.Scheduler
  * @see java.util.Timer
  * 
- *  @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ *  @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DelayScheduler implements Scheduler
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/Scheduler.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/Scheduler.java
index 84c8421..ae4afc2 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/Scheduler.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/Scheduler.java
@@ -25,7 +25,7 @@
  * interval. Additionally, a null object is provided that can be used to disable 
  * scheduled execution. 
  *  
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Scheduler
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskHandler.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskHandler.java
index cbfe9c5..74ca5e4 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskHandler.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskHandler.java
@@ -32,7 +32,7 @@
  * @see org.apache.felix.eventadmin.impl.dispatch.TaskQueue
  * @see org.apache.felix.eventadmin.impl.dispatch.TaskProducer
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class TaskHandler implements TaskQueue, TaskProducer
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskProducer.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskProducer.java
index 21baefc..541c8ad 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskProducer.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskProducer.java
@@ -25,7 +25,7 @@
  * while blocking in the <tt>next()</tt> call until then. Unless there won't be any
  * more tasks in which case <tt>null</tt> is returned.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface TaskProducer
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskQueue.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskQueue.java
index 651d09e..9ba7980 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskQueue.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/TaskQueue.java
@@ -26,7 +26,7 @@
  * are in the same order one after the other in the queue) either at the end or the
  * front of the queue. Additionally, the queue can be closed. 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface TaskQueue
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/ThreadPool.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/ThreadPool.java
index 1a7a11d..c8c3e91 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/ThreadPool.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/dispatch/ThreadPool.java
@@ -31,7 +31,7 @@
  * that the specific threads have not been created by this pool. Note that a closed
  * pool should still execute new tasks but stop pooling threads. 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface ThreadPool
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlackList.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlackList.java
index 4ae5537..c409487 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlackList.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlackList.java
@@ -26,7 +26,7 @@
  * of this interface may do additional service reference life-cycle related
  * clean-up actions like removing references that point to unregistered services.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface BlackList
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java
index 4921bfc..cbe80c4 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/BlacklistingHandlerTasks.java
@@ -41,7 +41,7 @@
  * will match applicable <tt>EventHandler</tt> references. In order to ease some of 
  * the overhead pains of this approach some light caching is going on.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class BlacklistingHandlerTasks implements HandlerTasks
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheFilters.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheFilters.java
index 54efc18..f0612b0 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheFilters.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheFilters.java
@@ -27,7 +27,7 @@
  * This is an implementation of the <tt>Filters</tt> factory that uses a cache in
  * order to speed-up filter creation.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CacheFilters implements Filters
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheTopicHandlerFilters.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheTopicHandlerFilters.java
index 73809ed..3047f75 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheTopicHandlerFilters.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CacheTopicHandlerFilters.java
@@ -25,7 +25,7 @@
  * The factory for <tt>EventHandler</tt> filters based on a certain topic. This
  * implementation uses a cache to speed-up filter creation.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CacheTopicHandlerFilters implements TopicHandlerFilters
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CleanBlackList.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CleanBlackList.java
index 5ea4f35..670edb2 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CleanBlackList.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/CleanBlackList.java
@@ -31,7 +31,7 @@
  * 
  * @see org.apache.felix.eventadmin.impl.handler.BlackList
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CleanBlackList implements BlackList
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/Filters.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/Filters.java
index 8b80c15..3dc1899 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/Filters.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/Filters.java
@@ -29,7 +29,7 @@
  * are provided that either always return <tt>true</tt> or <tt>false</tt>,
  * respectively.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Filters
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java
index 45ce616..ea7b794 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/HandlerTasks.java
@@ -25,7 +25,7 @@
  * The factory for event handler tasks. Implementations of this interface can be
  * used to create tasks that handle the delivery of events to event handlers.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface HandlerTasks
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/TopicHandlerFilters.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/TopicHandlerFilters.java
index 58a641a..5ee388a 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/TopicHandlerFilters.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/TopicHandlerFilters.java
@@ -21,7 +21,7 @@
 /**
  * The factory for <tt>EventHandler</tt> filters based on a certain topic.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface TopicHandlerFilters
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/CacheTopicPermissions.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/CacheTopicPermissions.java
index 1fb7220..0ba57d3 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/CacheTopicPermissions.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/CacheTopicPermissions.java
@@ -33,7 +33,7 @@
  *  
  * @see org.apache.felix.eventadmin.impl.security.TopicPermissions
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CacheTopicPermissions implements TopicPermissions
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/EventAdminSecurityDecorator.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/EventAdminSecurityDecorator.java
index ba52b66..db677e9 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/EventAdminSecurityDecorator.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/EventAdminSecurityDecorator.java
@@ -30,7 +30,7 @@
  * the given bundle doesn't pass the check or delegate the call to decorated service
  * instance, respectively.
  *  
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class EventAdminSecurityDecorator implements EventAdmin
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/SecureEventAdminFactory.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/SecureEventAdminFactory.java
index 0d84c0c..5bf18b4 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/SecureEventAdminFactory.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/SecureEventAdminFactory.java
@@ -30,7 +30,7 @@
  * appropriate permissions by using the given permission factory and the bundle 
  * parameter passed to the <tt>getService()</tt> method. 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class SecureEventAdminFactory implements ServiceFactory
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/TopicPermissions.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/TopicPermissions.java
index 1ce2dbb..2f07d48 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/TopicPermissions.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/security/TopicPermissions.java
@@ -26,7 +26,7 @@
  * to missing security support by the framework (i.e, security is not supported at 
  * all) an instance of <tt>java.lang.Object</tt> will be returned. 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface TopicPermissions
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
index 6f7588e..b6f2a65 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
@@ -35,7 +35,7 @@
  * while the former waits for the synchronous event to be delivered and then return
  * to its <tt>ThreadPool</tt>.
  *  
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class AsyncDeliverTasks implements DeliverTasks, HandoverTask, DeliverTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/BlockTask.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/BlockTask.java
index d959712..0c4f16a 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/BlockTask.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/BlockTask.java
@@ -22,7 +22,7 @@
  * This task will can be used to block a thread that subsequently will be unblocked 
  * once the task is executed.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class BlockTask implements HandlerTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java
index b4161ce..182912c 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTask.java
@@ -21,7 +21,7 @@
 /**
  * Dispatch given event dispatch tasks.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface DeliverTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTasks.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTasks.java
index be0215f..b9fa92c 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTasks.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DeliverTasks.java
@@ -21,7 +21,7 @@
 /**
  * A factory that creates <tt>DeliverTask</tt> objects.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface DeliverTasks
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DispatchTask.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DispatchTask.java
index 416682f..0197d03 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DispatchTask.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/DispatchTask.java
@@ -25,7 +25,7 @@
  * This class is the core of the event dispatching (for both, synchronous and 
  * asynchronous). It implements handover and timeout capabilities.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DispatchTask implements Runnable
 {   
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTask.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTask.java
index ea67cf7..c099d4e 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTask.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTask.java
@@ -22,7 +22,7 @@
  * A task that will deliver its event to its <tt>EventHandler</tt> when executed
  * or blacklist the handler, respectively.
  *  
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface HandlerTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java
index ac70675..c5b3001 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandlerTaskImpl.java
@@ -27,7 +27,7 @@
 /**
  * An implementation of the <tt>HandlerTask</tt> interface.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class HandlerTaskImpl implements HandlerTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandoverTask.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandoverTask.java
index 23ef03a..c84e6f1 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandoverTask.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/HandoverTask.java
@@ -21,7 +21,7 @@
 /**
  * A task that is used to handover a dispatch thread context to another thread.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface HandoverTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/ResumeTask.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/ResumeTask.java
index 8a2aab7..5dfa74b 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/ResumeTask.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/ResumeTask.java
@@ -24,7 +24,7 @@
  * A task that wakes-up a disabled <tt>DispatchTask</tt>. Additionally, it will
  * stop the currently running task.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ResumeTask implements HandlerTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java
index 78d059d..4751ca4 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/SyncDeliverTasks.java
@@ -48,7 +48,7 @@
  * anymore it will not notice this semantic difference except that it might not see 
  * events it already sent before.
  * </tt></pre>
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class SyncDeliverTasks implements DeliverTasks, HandoverTask, DeliverTask
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/CacheMap.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/CacheMap.java
index 282de75..13bbbf9 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/CacheMap.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/CacheMap.java
@@ -21,7 +21,7 @@
 /**
  * This is the interface of a simple cache map. 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface CacheMap
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LeastRecentlyUsedCacheMap.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LeastRecentlyUsedCacheMap.java
index 8f9581a..ca69fb3 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LeastRecentlyUsedCacheMap.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LeastRecentlyUsedCacheMap.java
@@ -30,7 +30,7 @@
  * 
  * @see org.apache.felix.eventadmin.impl.util.CacheMap
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class LeastRecentlyUsedCacheMap implements CacheMap
 {
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LogWrapper.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LogWrapper.java
index efb07e8..c55d00d 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LogWrapper.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/util/LogWrapper.java
@@ -45,7 +45,7 @@
  * 
  * @see org.osgi.service.log.LogService
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 **/
 // TODO: At the moment we log a message to all currently available LogServices. 
 //       Maybe, we should only log to the one with the highest ranking instead?
diff --git a/examples/dictionaryclient/src/main/java/org/apache/felix/examples/dictionaryclient/Activator.java b/examples/dictionaryclient/src/main/java/org/apache/felix/examples/dictionaryclient/Activator.java
index 49e8a0e..7026f85 100644
--- a/examples/dictionaryclient/src/main/java/org/apache/felix/examples/dictionaryclient/Activator.java
+++ b/examples/dictionaryclient/src/main/java/org/apache/felix/examples/dictionaryclient/Activator.java
@@ -38,7 +38,7 @@
  * stop checking words by entering an empty line, but to start checking words
  * again you must stop and then restart the bundle.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/examples/dictionaryclient2/src/main/java/org/apache/felix/examples/dictionaryclient2/Activator.java b/examples/dictionaryclient2/src/main/java/org/apache/felix/examples/dictionaryclient2/Activator.java
index 3e70082..d225fe3 100644
--- a/examples/dictionaryclient2/src/main/java/org/apache/felix/examples/dictionaryclient2/Activator.java
+++ b/examples/dictionaryclient2/src/main/java/org/apache/felix/examples/dictionaryclient2/Activator.java
@@ -42,7 +42,7 @@
  * input. You can stop checking words by entering an empty line, but to start
  * checking words again you must stop and then restart the bundle.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator, ServiceListener
 {
diff --git a/examples/dictionaryservice.itest/src/main/java/org/apache/felix/examples/dictionaryservice/itest/Activator.java b/examples/dictionaryservice.itest/src/main/java/org/apache/felix/examples/dictionaryservice/itest/Activator.java
index 6aa733c..75382e0 100644
--- a/examples/dictionaryservice.itest/src/main/java/org/apache/felix/examples/dictionaryservice/itest/Activator.java
+++ b/examples/dictionaryservice.itest/src/main/java/org/apache/felix/examples/dictionaryservice/itest/Activator.java
@@ -29,7 +29,7 @@
  * correct operation of the dictionary while it is running inside felix.
  * This is an integration test of the dictionaryservice bundle.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/DictionaryService.java b/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/DictionaryService.java
index c38efcf..2dbb519 100644
--- a/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/DictionaryService.java
+++ b/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/DictionaryService.java
@@ -21,7 +21,7 @@
  * A simple service interface that defines a dictionary service. A dictionary
  * service simply verifies the existence of a word.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface DictionaryService
 {
diff --git a/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/impl/Activator.java b/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/impl/Activator.java
index 5da2ded..5934a8a 100644
--- a/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/impl/Activator.java
+++ b/examples/dictionaryservice/src/main/java/org/apache/felix/examples/dictionaryservice/impl/Activator.java
@@ -30,7 +30,7 @@
  * dictionary service interface is defined in a separate class file and is
  * implemented by an inner class.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/examples/eventlistener/src/main/java/org/apache/felix/examples/eventlistener/Activator.java b/examples/eventlistener/src/main/java/org/apache/felix/examples/eventlistener/Activator.java
index 8740cb2..dd27674 100644
--- a/examples/eventlistener/src/main/java/org/apache/felix/examples/eventlistener/Activator.java
+++ b/examples/eventlistener/src/main/java/org/apache/felix/examples/eventlistener/Activator.java
@@ -28,7 +28,7 @@
  * event mechanism to listen for service events. Upon receiving a service event,
  * it prints out the event's details.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator, ServiceListener
 {
diff --git a/examples/frenchdictionary/src/main/java/org/apache/felix/examples/frenchdictionary/Activator.java b/examples/frenchdictionary/src/main/java/org/apache/felix/examples/frenchdictionary/Activator.java
index 5615600..d0fc23b 100644
--- a/examples/frenchdictionary/src/main/java/org/apache/felix/examples/frenchdictionary/Activator.java
+++ b/examples/frenchdictionary/src/main/java/org/apache/felix/examples/frenchdictionary/Activator.java
@@ -31,7 +31,7 @@
  * implemented by an inner class. This class is identical to the class in
  * Example 2, except that the dictionary contains French words.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator
 {
diff --git a/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/Activator.java b/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/Activator.java
index e5d448e..7aa1505 100644
--- a/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/Activator.java
+++ b/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/Activator.java
@@ -32,7 +32,7 @@
  * file. All application functionality is defined in the
  * SpellCheckServiceImpl.java file.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator extends GenericActivator
 {
diff --git a/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/SpellCheckServiceImpl.java b/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/SpellCheckServiceImpl.java
index 37497f0..095f875 100644
--- a/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/SpellCheckServiceImpl.java
+++ b/examples/spellcheckbinder/src/main/java/org/apache/felix/examples/spellcheckbinder/SpellCheckServiceImpl.java
@@ -35,7 +35,7 @@
  * dependencies to the Service Binder, which automatically manages them and it
  * also automatically registers the spell check services as appropriate.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class SpellCheckServiceImpl implements SpellCheckService
 {
diff --git a/examples/spellcheckclient/src/main/java/org/apache/felix/examples/spellcheckclient/Activator.java b/examples/spellcheckclient/src/main/java/org/apache/felix/examples/spellcheckclient/Activator.java
index a8b2000..bb558da 100644
--- a/examples/spellcheckclient/src/main/java/org/apache/felix/examples/spellcheckclient/Activator.java
+++ b/examples/spellcheckclient/src/main/java/org/apache/felix/examples/spellcheckclient/Activator.java
@@ -31,7 +31,7 @@
 /**
  * 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator, ServiceListener
 {
diff --git a/examples/spellcheckscr/src/main/java/org/apache/felix/examples/spellcheckscr/SpellCheckServiceImpl.java b/examples/spellcheckscr/src/main/java/org/apache/felix/examples/spellcheckscr/SpellCheckServiceImpl.java
index e5e4edd..5b4cca4 100644
--- a/examples/spellcheckscr/src/main/java/org/apache/felix/examples/spellcheckscr/SpellCheckServiceImpl.java
+++ b/examples/spellcheckscr/src/main/java/org/apache/felix/examples/spellcheckscr/SpellCheckServiceImpl.java
@@ -35,7 +35,7 @@
  * dependencies to the Service Component Runtime, which automatically manages them and it
  * also automatically registers the spell check services as appropriate.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class SpellCheckServiceImpl implements SpellCheckService
 {
diff --git a/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/SpellCheckService.java b/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/SpellCheckService.java
index d1c5813..1800b03 100644
--- a/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/SpellCheckService.java
+++ b/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/SpellCheckService.java
@@ -23,7 +23,7 @@
  * number of words separated by a space character and the following punctuation
  * marks: comma, period, exclamation mark, question mark, semi-colon, and colon.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface SpellCheckService
 {
@@ -37,4 +37,4 @@
      * @return An array of misspelled words or null if no words are misspelled.
      */
     public String[] check( String passage );
-}
\ No newline at end of file
+}
diff --git a/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/impl/Activator.java b/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/impl/Activator.java
index 5de8ebb..5841819 100644
--- a/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/impl/Activator.java
+++ b/examples/spellcheckservice/src/main/java/org/apache/felix/examples/spellcheckservice/impl/Activator.java
@@ -42,7 +42,7 @@
  * thus the spell check service will appear and disappear as dictionary services
  * appear and disappear, respectively.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator, ServiceListener
 {
diff --git a/ipojo/arch/src/main/java/org/apache/felix/ipojo/arch/ArchCommandImpl.java b/ipojo/arch/src/main/java/org/apache/felix/ipojo/arch/ArchCommandImpl.java
index 830b6bc..bdd5b48 100644
--- a/ipojo/arch/src/main/java/org/apache/felix/ipojo/arch/ArchCommandImpl.java
+++ b/ipojo/arch/src/main/java/org/apache/felix/ipojo/arch/ArchCommandImpl.java
@@ -29,7 +29,7 @@
 
 /**
  * Implementation of the arch command printing the actual architecture.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ArchCommandImpl implements Command {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/Activator.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/Activator.java
index d413f58..03c5bf8 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/Activator.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/Activator.java
@@ -31,7 +31,7 @@
 /**
  * iPOJO generic activator. 
  * All iPOJO bundle (bundle containing iPOJO components) must used this activator to be able to start the component management.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator {
     /**
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentFactory.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentFactory.java
index 50db0fa..71e11d6 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentFactory.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentFactory.java
@@ -43,7 +43,7 @@
  * consist in creating and managing component instance build with the component
  * factory. This class could export Factory and ManagedServiceFactory services.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ComponentFactory implements Factory, ManagedServiceFactory {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentInstance.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentInstance.java
index 4883c06..2e4d0f4 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentInstance.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/ComponentInstance.java
@@ -27,7 +27,7 @@
 /**
  * The component instance class manages one instance of a component type.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface ComponentInstance {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeHandler.java
index ea675c6..a3f4c3e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeHandler.java
@@ -27,7 +27,7 @@
  * Composite Handler Abstract Class. An composite handler need implements these
  * method to be notifed of lifecycle change...
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public abstract class CompositeHandler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeManager.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeManager.java
index 3d8f438..ea053ca 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeManager.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/CompositeManager.java
@@ -35,7 +35,7 @@
  * a component type which is a composition. It manages component lifecycle, and
  * handlers...
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CompositeManager implements ComponentInstance {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/DefaultServiceContext.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/DefaultServiceContext.java
index 06f2694..694283c 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/DefaultServiceContext.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/DefaultServiceContext.java
@@ -30,7 +30,7 @@
  * Default iPOJO Service Context. this service context delegate all calls on the
  * bundle context.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DefaultServiceContext implements ServiceContext {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/Factory.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/Factory.java
index 9715747..3354ac4 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/Factory.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/Factory.java
@@ -26,7 +26,7 @@
  * Component Type Factory Service. This service is exposed by a instance manager
  * factory, and allows the dynamic creation of component instance.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Factory {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/Handler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/Handler.java
index 0c474bc..90f4384 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/Handler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/Handler.java
@@ -27,7 +27,7 @@
  * Handler Abstract Class. An handler need implements tese method to be notifed
  * of lifecycle change, getfield operation and putfield operation
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public abstract class Handler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoConfiguration.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoConfiguration.java
index ec6f56f..6745ddd 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoConfiguration.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoConfiguration.java
@@ -31,7 +31,7 @@
 /**
  * Activator Basic Configuration. - Log Level - Available handlers
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class IPojoConfiguration {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoContext.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoContext.java
index 9d119e5..fca2832 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoContext.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/IPojoContext.java
@@ -37,7 +37,7 @@
  * The iPOJO Context is a BundleContext implementation allowing the separation
  * between Bundle context and Service (Bundle) Context.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class IPojoContext implements BundleContext {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java
index 65dd0ca..2d68760 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java
@@ -31,7 +31,7 @@
  * An instance creator aims to create instances and to track their factories.
  * It's allow to create instance from outside factories.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class InstanceCreator implements ServiceListener {
     /**
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java
index 75f36a2..9cbe337 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java
@@ -33,7 +33,7 @@
  * The instance manager class manages one instance of a component type. It
  * manages component lifecycle, component instance creation and handlers.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class InstanceManager implements ComponentInstance {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceStateListener.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceStateListener.java
index ca2659f..5d63fc1 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceStateListener.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceStateListener.java
@@ -21,7 +21,7 @@
 /**
  * Instance state listener.
  * This listener allows anyone to be notified when the listened instance state changes. 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface InstanceStateListener {
     
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/Nullable.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/Nullable.java
index e3e32ac..ae1531f 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/Nullable.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/Nullable.java
@@ -21,7 +21,7 @@
 /**
  * A nullable object must implement this interface.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Nullable {
     // Nothing
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/Pojo.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/Pojo.java
index fb755aa..d51fa18 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/Pojo.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/Pojo.java
@@ -22,7 +22,7 @@
  * Interface implemented by each object created through an manipulated class.
  * This interface allow to get the component instance from the object.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Pojo {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/ServiceContext.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/ServiceContext.java
index 0f7acf2..1c145f3 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/ServiceContext.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/ServiceContext.java
@@ -29,7 +29,7 @@
  * A service context give the access the a service registry. All service
  * interaction should use this service context.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface ServiceContext {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/UnacceptableConfiguration.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/UnacceptableConfiguration.java
index 8ace316..d72fe84 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/UnacceptableConfiguration.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/UnacceptableConfiguration.java
@@ -22,7 +22,7 @@
  * UnacceptableConfiguration is throwed when a factory refuses to create an
  * instance.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class UnacceptableConfiguration extends Exception {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/Architecture.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/Architecture.java
index 774d5dd..0274171 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/Architecture.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/Architecture.java
@@ -21,7 +21,7 @@
 /**
  * Architecture service.
  * Allows to have information on the component.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Architecture {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/ComponentDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/ComponentDescription.java
index 45e23ad..c6c629d 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/ComponentDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/ComponentDescription.java
@@ -21,7 +21,7 @@
 /**
  * Component Type information.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ComponentDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/HandlerDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/HandlerDescription.java
index 093e528..d9cd6f5 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/HandlerDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/HandlerDescription.java
@@ -24,7 +24,7 @@
 /**
  * Handler Description.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class HandlerDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/InstanceDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/InstanceDescription.java
index eef38a1..99e3ec5 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/InstanceDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/InstanceDescription.java
@@ -25,7 +25,7 @@
 /**
  * Instance Description.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class InstanceDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/PropertyDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/PropertyDescription.java
index dfdc3c5..711c057 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/PropertyDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/architecture/PropertyDescription.java
@@ -21,7 +21,7 @@
 /**
  * Property Information.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class PropertyDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/CompositeServiceContext.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/CompositeServiceContext.java
index 1eec9bf..26304e7 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/CompositeServiceContext.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/CompositeServiceContext.java
@@ -38,7 +38,7 @@
  * CompositeServiceContext Class. This class provides an implementation of the
  * service context for composite.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CompositeServiceContext implements ServiceContext, ServiceListener {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/FactoryProxy.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/FactoryProxy.java
index ffc5c14..0a70961 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/FactoryProxy.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/FactoryProxy.java
@@ -29,7 +29,7 @@
 /**
  * Bridge representing a Factory inside a composition.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class FactoryProxy implements Factory {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceReferenceImpl.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceReferenceImpl.java
index 9238292..4682d75 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceReferenceImpl.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceReferenceImpl.java
@@ -26,7 +26,7 @@
  * Internal service reference implemenation. This class is used for in the
  * composition.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceReferenceImpl implements ServiceReference {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistrationImpl.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistrationImpl.java
index abdb3ba..a8546c5 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistrationImpl.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistrationImpl.java
@@ -35,7 +35,7 @@
  * Internal service registration implemenation. This class is used for in the
  * composition.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceRegistrationImpl implements ServiceRegistration {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistry.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistry.java
index 0c2df57..dfe8662 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistry.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/ServiceRegistry.java
@@ -34,7 +34,7 @@
 /**
  * Internal Service Registry. This class is used for in the composition.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceRegistry {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/StringMap.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/StringMap.java
index 86f5d46..0905d69 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/StringMap.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/StringMap.java
@@ -28,7 +28,7 @@
  * case-insensitive comparison when searching for the key. Any keys put into
  * this map will be converted to a <tt>String</tt> using the
  * <tt>toString()</tt> method, since it is only intended to compare strings.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class StringMap extends TreeMap {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/architecture/ArchitectureHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/architecture/ArchitectureHandler.java
index 8053008..069df27 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/architecture/ArchitectureHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/architecture/ArchitectureHandler.java
@@ -33,7 +33,7 @@
 /**
  * Composite Architecture Handler.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ArchitectureHandler extends CompositeHandler implements Architecture {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandler.java
index 568c985..d0aef96 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandler.java
@@ -43,7 +43,7 @@
  * Composite Instance Handler.
  * This handler allo to create an instance inside a composite.
  * This instance is determine by its type and a configuration.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class InstanceHandler extends CompositeHandler implements ServiceListener, InstanceStateListener {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandlerDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandlerDescription.java
index 4e84b82..72ec63e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandlerDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/instance/InstanceHandlerDescription.java
@@ -28,7 +28,7 @@
 /**
  * Description of the Instance Handler.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class InstanceHandlerDescription extends HandlerDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportDescription.java
index 1a2768b..ac61683 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportDescription.java
@@ -26,7 +26,7 @@
 
 /**
  * Description of the Import Export Handler.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ImportExportDescription extends HandlerDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportHandler.java
index e46c28f..5ccb6d1 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ImportExportHandler.java
@@ -34,7 +34,7 @@
  * This handler manages the importation and the exportation of services from /
  * to the parent context.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ImportExportHandler extends CompositeHandler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceExporter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceExporter.java
index 5f54f6c..6b785b4 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceExporter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceExporter.java
@@ -36,7 +36,7 @@
 /**
  * Export an service from the scope to the parent context.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceExporter implements ServiceListener {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceImporter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceImporter.java
index 98a2eff..d92e198 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceImporter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/importer/ServiceImporter.java
@@ -36,7 +36,7 @@
 /**
  * Import a service form the parent to the internal service registry.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceImporter implements ServiceListener {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorDescription.java
index 883e508..b8d967b 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorDescription.java
@@ -32,7 +32,7 @@
 /**
  * Description of the Service Instantiator Handler.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceInstantiatorDescription extends HandlerDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorHandler.java
index b005b20..7c987bf 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/ServiceInstantiatorHandler.java
@@ -33,7 +33,7 @@
  * Service Instantiator Class. This handler allows to instantiate service
  * instance inside the composition.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceInstantiatorHandler extends CompositeHandler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/SvcInstance.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/SvcInstance.java
index 57afd00..9956520 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/SvcInstance.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/instantiator/SvcInstance.java
@@ -40,7 +40,7 @@
  * Manage a service instantiation. This service create componenet instance
  * providing the required service specification.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class SvcInstance implements ServiceListener {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionException.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionException.java
index bb461e0..c30dd5e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionException.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionException.java
@@ -21,7 +21,7 @@
 /**
  * Exception throwed when a composition error occurs.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CompositionException extends Exception {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionMetadata.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionMetadata.java
index 420190d..c870ff7 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionMetadata.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/CompositionMetadata.java
@@ -40,7 +40,7 @@
 
 /**
  * Check and build a compostion, i.e. a pojo containing the composition.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class CompositionMetadata {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/FieldMetadata.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/FieldMetadata.java
index cb5c7cd..2839858 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/FieldMetadata.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/FieldMetadata.java
@@ -21,7 +21,7 @@
 /**
  * Field used inside a composition.
  * This class contains all information useful for the generation.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class FieldMetadata {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/MethodMetadata.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/MethodMetadata.java
index 8591b9b..a5491d3 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/MethodMetadata.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/MethodMetadata.java
@@ -24,7 +24,7 @@
 
 /**
  * Information on Method for the composition.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class MethodMetadata {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedService.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedService.java
index be77541..39ddd2e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedService.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedService.java
@@ -34,7 +34,7 @@
 
 /**
  * Composite Provided Service.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ProvidedService {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandler.java
index e937b17..322cc6d 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandler.java
@@ -32,7 +32,7 @@
 
 /**
  * Composite Provided Service Handler.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ProvidedServiceHandler extends CompositeHandler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandlerDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandlerDescription.java
index 336ed14..7fcb727 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandlerDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ProvidedServiceHandlerDescription.java
@@ -28,7 +28,7 @@
 /**
  * Provided Service Handler Description for composite.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ProvidedServiceHandlerDescription extends HandlerDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ServiceExporter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ServiceExporter.java
index 29aa30f..6a0a5b1 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ServiceExporter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/ServiceExporter.java
@@ -36,7 +36,7 @@
 /**
  * Export an service from the scope to the parent context.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceExporter implements ServiceListener {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/SpecificationMetadata.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/SpecificationMetadata.java
index 8893540..4e5952c 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/SpecificationMetadata.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/SpecificationMetadata.java
@@ -33,7 +33,7 @@
 
 /**
  * Represent a service specification.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class SpecificationMetadata {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ClassChecker.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ClassChecker.java
index 50d8d47..6983939 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ClassChecker.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ClassChecker.java
@@ -33,7 +33,7 @@
 /**
  * Check if the class is already manipulated.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ClassChecker implements ClassVisitor, Opcodes {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ConstructorCodeAdapter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ConstructorCodeAdapter.java
index a4c694d..566d6ae 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ConstructorCodeAdapter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ConstructorCodeAdapter.java
@@ -26,7 +26,7 @@
 /**
  * Constructor Adapter : add a component manager argument inside a constructor.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ConstructorCodeAdapter extends MethodAdapter implements Opcodes {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ManipulationProperty.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ManipulationProperty.java
index c2daec0..285600e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ManipulationProperty.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/ManipulationProperty.java
@@ -21,7 +21,7 @@
 /**
  * Store properties for the manipulation process.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  * 
  */
 public class ManipulationProperty {
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/Manipulator.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/Manipulator.java
index eed45e8..63a22cc 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/Manipulator.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/Manipulator.java
@@ -30,7 +30,7 @@
 /**
  * iPOJO Bytecode Manipulator.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  * 
  */
 public class Manipulator {
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/POJOWriter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/POJOWriter.java
index 3f304c4..00f2903 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/POJOWriter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/POJOWriter.java
@@ -38,7 +38,7 @@
 /**
  * Create the proxy class.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class POJOWriter implements Opcodes {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessClassAdapter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessClassAdapter.java
index 1e12640..81f6856 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessClassAdapter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessClassAdapter.java
@@ -32,7 +32,7 @@
  * information about implemented interfaces - Change GETFIELD and PUTFIELD to
  * called the getter and setter method
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  * 
  */
 public class PreprocessClassAdapter extends ClassAdapter implements Opcodes {
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessCodeAdapter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessCodeAdapter.java
index 868eece..ac6406e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessCodeAdapter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/composite/service/provides/manipulation/PreprocessCodeAdapter.java
@@ -24,7 +24,7 @@
 
 /**
  * Manipulate a method to change all getter and setter on field by invocations on getter and setter callbacks.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class PreprocessCodeAdapter extends MethodAdapter implements Opcodes {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java
index f85a83d..1c0a906 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.java
@@ -33,7 +33,7 @@
 /**
  * Achtiecture Handler : do reflection on your component.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ArchitectureHandler extends Handler implements Architecture {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurableProperty.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurableProperty.java
index 9888082..faddf5e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurableProperty.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurableProperty.java
@@ -29,7 +29,7 @@
 /**
  * Configurable Property.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ConfigurableProperty {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurationHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurationHandler.java
index 899ddb9..fb83c16 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurationHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/configuration/ConfigurationHandler.java
@@ -36,7 +36,7 @@
 /**
  * Handler managing the Configuration Admin.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ConfigurationHandler extends Handler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/Dependency.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/Dependency.java
index b98131b..e34a917 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/Dependency.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/Dependency.java
@@ -33,7 +33,7 @@
 /**
  * Represent a service dependency of the component instance.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Dependency implements ServiceListener {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyCallback.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyCallback.java
index b0777fb..4e3c8f9 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyCallback.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyCallback.java
@@ -28,7 +28,7 @@
  * This class allwos the creation of callback when service dependency arrives or
  * disappear.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DependencyCallback {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyDescription.java
index 8da733c..98b126b 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyDescription.java
@@ -24,7 +24,7 @@
 
 /**
  * Dependency Description.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DependencyDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandler.java
index b850a72..ba8ea7e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandler.java
@@ -33,7 +33,7 @@
 /**
  * The dependency handler manages a list of dependencies.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DependencyHandler extends Handler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandlerDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandlerDescription.java
index 10a6344..ec867de 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandlerDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/DependencyHandlerDescription.java
@@ -27,7 +27,7 @@
 /**
  * Dependency Handler Description.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DependencyHandlerDescription extends HandlerDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignature.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignature.java
index 7dd02f0..d1937a5 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignature.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignature.java
@@ -21,7 +21,7 @@
 /**
  * Reprensent of method description.
  * The goal of this class, is to be able to generate a proxy class, or a nullable class from an interface.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class MethodSignature {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignatureVisitor.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignatureVisitor.java
index a1f64b9..7079e34 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignatureVisitor.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/MethodSignatureVisitor.java
@@ -28,7 +28,7 @@
 /** This class implement a class visitor. It store all method signature of
  * the visited interface. Then it returns these class signatures for the proxy
  * generation or the nullable class.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class MethodSignatureVisitor implements ClassVisitor, Opcodes {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/NullableObjectWriter.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/NullableObjectWriter.java
index 3b35a42..9bc4b18 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/NullableObjectWriter.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/dependency/nullable/NullableObjectWriter.java
@@ -31,7 +31,7 @@
 /**
  * Create the proxy class.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class NullableObjectWriter implements Opcodes {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallback.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallback.java
index 7a3f4cf..a9f4fe1 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallback.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallback.java
@@ -26,7 +26,7 @@
 /**
  * This class is the implementation of callback on lifecycle transition.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class LifecycleCallback {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallbackHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallbackHandler.java
index 931612e..c90529f 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallbackHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallbackHandler.java
@@ -30,7 +30,7 @@
 /**
  * Lifecycle callback handler.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class LifecycleCallbackHandler extends Handler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/Property.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/Property.java
index c468932..feed1ab 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/Property.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/Property.java
@@ -31,7 +31,7 @@
  * attached to a field. The value of the property is thefield value. When the
  * value change, the published value change too.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Property {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
index 5f57945..2d814cf 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
@@ -32,7 +32,7 @@
 /**
  * Provided Service represent a provided service by the component.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ProvidedService implements ServiceFactory {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java
index daec557..59f2cda 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java
@@ -25,7 +25,7 @@
 /**
  * Provided Service Description.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ProvidedServiceDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java
index 86ae62d..aa1cb4c 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java
@@ -34,7 +34,7 @@
 /**
  * Composite PRovided Service Handler.
  * This handler maange the service providing for a composition.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ProvidedServiceHandler extends Handler {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandlerDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandlerDescription.java
index 3645089..a2a8eec 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandlerDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandlerDescription.java
@@ -27,7 +27,7 @@
 /**
  * Provided Service Handler Description.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ProvidedServiceHandlerDescription extends HandlerDescription {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/FieldMetadata.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/FieldMetadata.java
index 76180b1..939f6da 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/FieldMetadata.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/FieldMetadata.java
@@ -24,7 +24,7 @@
  * A Field Metadata represent a field of an implementation class.
  * This class allow to avoid reflection to get the type and the name of a field.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class FieldMetadata {
     
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java
index 32cf57a..7eade4d 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java
@@ -27,7 +27,7 @@
 /**
  * Manifest Metadata parser. Read a manifest file and construct metadata
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ManifestMetadataParser {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManipulationMetadata.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManipulationMetadata.java
index 62364cb..e7c51b7 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManipulationMetadata.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ManipulationMetadata.java
@@ -24,7 +24,7 @@
  * Manipulation Metadata allows getting information about the implementation class
  * whithout doing reflection. 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ManipulationMetadata {
     
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/MethodMetadata.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/MethodMetadata.java
index f0db3fb..655bbd6 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/MethodMetadata.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/MethodMetadata.java
@@ -24,7 +24,7 @@
  * A Method Metadata represent a method from the implementation class.
  * This class allow to get information about a method : name, arguments, return type...
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class MethodMetadata {
     
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseException.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseException.java
index 85758c8..e28c559 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseException.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseException.java
@@ -20,7 +20,7 @@
 
 /**
  * Exceptions thrown by parsers.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ParseException extends Exception {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseUtils.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseUtils.java
index 98fa65c..7da9a9e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseUtils.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/parser/ParseUtils.java
@@ -21,7 +21,7 @@
 /**
  * Parse Utils Methods.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ParseUtils {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Callback.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Callback.java
index 7722076..f4caf06 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Callback.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Callback.java
@@ -27,7 +27,7 @@
 /**
  * A callback allows calling a method on the component instances.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Callback {
 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Logger.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Logger.java
index 364212a..68880cc 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Logger.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/Logger.java
@@ -28,7 +28,7 @@
 /**
  * iPOJO Logger. This logger send log message to a log service if presents.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Logger implements ServiceListener {
 
diff --git a/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Attribute.java b/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Attribute.java
index 88e0540..ce997b1 100644
--- a/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Attribute.java
+++ b/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Attribute.java
@@ -20,7 +20,7 @@
 
 /**
  * Attribute.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Attribute {
 
diff --git a/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Element.java b/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Element.java
index cd00a72..835a9ff 100644
--- a/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Element.java
+++ b/ipojo/metadata/src/main/java/org/apache/felix/ipojo/metadata/Element.java
@@ -20,7 +20,7 @@
 
 /**
  * Element.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Element {
 
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java
index 3aba331..47710b5 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ConstructorCodeAdapter.java
@@ -29,7 +29,7 @@
 
 /**
  * Constructor Adapter : add a component manager argument inside a constructor.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ConstructorCodeAdapter extends MethodAdapter implements Opcodes {
 
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ManipulationProperty.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ManipulationProperty.java
index 2275eab..d178231 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ManipulationProperty.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/ManipulationProperty.java
@@ -20,7 +20,7 @@
 
 /**
  * Store properties for the manipulation process.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  *
  */
 public class ManipulationProperty {
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java
index 329f2eb..c0d59b3 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/Manipulator.java
@@ -33,7 +33,7 @@
 
 /**
  * iPOJO Bytecode Manipulator.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  *
  */
 public class Manipulator {
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java
index ef7014a..e9658c1 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessClassAdapter.java
@@ -37,7 +37,7 @@
  * - Store information about field
  * - Store information about implemented interfaces
  * - Change GETFIELD and PUTFIELD to called the getter and setter method
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  *
  */
 public class PreprocessClassAdapter extends ClassAdapter implements Opcodes {
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessCodeAdapter.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessCodeAdapter.java
index 6a2e235..9f711b5 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessCodeAdapter.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/manipulation/PreprocessCodeAdapter.java
@@ -27,7 +27,7 @@
 
 
 /**
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class PreprocessCodeAdapter extends MethodAdapter implements Opcodes {
 
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java
index ca83af9..0690a44 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ManifestMetadataParser.java
@@ -28,7 +28,7 @@
 /**
  * Manifest Metadata parser.
  * Read a manifest file and construct metadata
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ManifestMetadataParser {
 
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ParseException.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ParseException.java
index 85758c8..e28c559 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ParseException.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/parser/ParseException.java
@@ -20,7 +20,7 @@
 
 /**
  * Exceptions thrown by parsers.
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ParseException extends Exception {
 
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiJarMojo.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiJarMojo.java
index 1367c13..bd12261 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiJarMojo.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiJarMojo.java
@@ -50,7 +50,7 @@
 /**
  * Package an OSGi jar "bundle."
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Apache Felix Project</a>
+ * @author <a href="mailto:dev@felix.apache.org">Apache Felix Project</a>
  * @version $Rev$, $Date$
  * @goal ipojo-bundle
  * @phase package
diff --git a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiManifest.java b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiManifest.java
index 68046e1..e47aa19 100644
--- a/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiManifest.java
+++ b/ipojo/plugin/src/main/java/org/apache/felix/ipojo/plugin/OsgiManifest.java
@@ -23,7 +23,7 @@
 /**
  * Hold values for an OSGi jar "bundle" manifest.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Apache Felix Project</a>
+ * @author <a href="mailto:dev@felix.apache.org">Apache Felix Project</a>
  * @version $Rev$, $Date$
  */
 public class OsgiManifest
diff --git a/org.apache.felix.daemon/src/main/java/org/apache/felix/daemon/FelixLayout.java b/org.apache.felix.daemon/src/main/java/org/apache/felix/daemon/FelixLayout.java
index b27bf35..f7093d6 100644
--- a/org.apache.felix.daemon/src/main/java/org/apache/felix/daemon/FelixLayout.java
+++ b/org.apache.felix.daemon/src/main/java/org/apache/felix/daemon/FelixLayout.java
@@ -24,7 +24,7 @@
 /**
  * A felix specific installation layout.
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class FelixLayout extends InstallationLayout
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/DependencyMetadata.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/DependencyMetadata.java
index 8d9cc34..4e3c41b 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/DependencyMetadata.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/DependencyMetadata.java
@@ -21,7 +21,7 @@
 /**
  * Metadata of a dependency
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DependencyMetadata
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/GenericActivator.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/GenericActivator.java
index ab68562..771f913 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/GenericActivator.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/GenericActivator.java
@@ -39,7 +39,7 @@
  * The GenericActivator, it will read information from the metadata.xml file
  * and will create the corresponding instance managers
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 abstract public class GenericActivator implements BundleActivator
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceManager.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceManager.java
index 29b41fd..c9fc805 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceManager.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceManager.java
@@ -43,7 +43,7 @@
 import java.lang.reflect.InvocationTargetException;
 
 /**
- * A InstanceManager is created for every component instance. *  * When the InstanceManager is instantiated, a collection of DependencyManagers is * created. Each dependency manager corresponds to a required service *  * A InstanceManager follows a sequence of clearly defined steps. *  * 1.- Creation : the binder instance is created, its state becomes CREATED. This step is further divided *                in the following substeps: *                  - The binder instance checks if all of the dependencies are valid, if this *                    is false, it returns. *                  - If the dependendencies are valid, its state becomes executing. The object from *                    the instance class is created (if this object receives a ServiceBinderContext as *                    a parameter in its constructor, the context is passed to it. *                  - The validate() method is called on the dependency managers, this will cause *                    calls on the binding methods to occur *                  - The binder instance adds itself to the list of binder instances in the activator *                  - The binder instance registers the services implemented by the instance object. *  * 2.- Disposal : *  * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * A InstanceManager is created for every component instance. *  * When the InstanceManager is instantiated, a collection of DependencyManagers is * created. Each dependency manager corresponds to a required service *  * A InstanceManager follows a sequence of clearly defined steps. *  * 1.- Creation : the binder instance is created, its state becomes CREATED. This step is further divided *                in the following substeps: *                  - The binder instance checks if all of the dependencies are valid, if this *                    is false, it returns. *                  - If the dependendencies are valid, its state becomes executing. The object from *                    the instance class is created (if this object receives a ServiceBinderContext as *                    a parameter in its constructor, the context is passed to it. *                  - The validate() method is called on the dependency managers, this will cause *                    calls on the binding methods to occur *                  - The binder instance adds itself to the list of binder instances in the activator *                  - The binder instance registers the services implemented by the instance object. *  * 2.- Disposal : *  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 
 public class InstanceManager implements InstanceReference, Instance
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceMetadata.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceMetadata.java
index e2a60fe..b692dff 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceMetadata.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceMetadata.java
@@ -24,7 +24,7 @@
 import java.util.Iterator;
 
 /**
- * Description of an instance entry in the descriptor file *  * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * Description of an instance entry in the descriptor file *  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class InstanceMetadata
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReference.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReference.java
index bf61bfe..3d3e5fd 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReference.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReference.java
@@ -27,7 +27,7 @@
  * interface can be used to listen for the object instance to
  * become available.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a> 
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a> 
  */
 public interface InstanceReference
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceEvent.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceEvent.java
index a2a1ca0..9520908 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceEvent.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceEvent.java
@@ -25,7 +25,7 @@
  * to listen for this event. The <tt>getSource()</tt> method
  * returns the <tt>InstanceReference</tt> that generated the event.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 **/
 public class InstanceReferenceEvent extends java.util.EventObject
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceListener.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceListener.java
index 0a5113e..a810314 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceListener.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/InstanceReferenceListener.java
@@ -25,7 +25,7 @@
  * details of when this event is fired, refer to the
  * methods below.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 **/
 public interface InstanceReferenceListener extends java.util.EventListener
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/Lifecycle.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/Lifecycle.java
index 8a06218..9b1daee 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/Lifecycle.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/Lifecycle.java
@@ -25,7 +25,7 @@
  * object life cycle events. See each interface method for
  * a precise description of when the method is invoked.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 **/
 public interface Lifecycle
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/PropertyMetadata.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/PropertyMetadata.java
index 87b73b5..aaefc81 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/PropertyMetadata.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/PropertyMetadata.java
@@ -22,7 +22,7 @@
  * A property descriptor that contains the information for properties
  * defined in the meta-data file.
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class PropertyMetadata
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderContext.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderContext.java
index 77d3f1b..870d902 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderContext.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderContext.java
@@ -28,7 +28,7 @@
  * this interface, they can access the BundleContext along with the list ob
  * binder instances located on the same bundle.
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface ServiceBinderContext
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderException.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderException.java
index 59b025e..aef1a47 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderException.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/ServiceBinderException.java
@@ -21,7 +21,7 @@
 /**
  * Exceptions thrown by the ServiceBinder.
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ServiceBinderException extends Exception
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/XmlHandler.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/XmlHandler.java
index 47dd9c2..59e500e 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/XmlHandler.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/XmlHandler.java
@@ -27,7 +27,7 @@
 /**
  * Simple content handler that builds a list of service descriptors
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class XmlHandler
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ArchitectureService.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ArchitectureService.java
index 0ea7d32..2b981ed 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ArchitectureService.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ArchitectureService.java
@@ -23,7 +23,7 @@
  * A service to provide an architectural vision of the instances created by the
  * service binder
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface ArchitectureService
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Dependency.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Dependency.java
index 2d111f0..a488840 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Dependency.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Dependency.java
@@ -23,7 +23,7 @@
 /**
  * Interface for a dependency
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Dependency
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/DependencyChangeEvent.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/DependencyChangeEvent.java
index 16bee45..bda6772 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/DependencyChangeEvent.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/DependencyChangeEvent.java
@@ -23,7 +23,7 @@
 /**
  * An event thrown when a dependency changes
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class DependencyChangeEvent
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Instance.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Instance.java
index 4d55225..9eb0f23 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Instance.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/Instance.java
@@ -22,7 +22,7 @@
 
 /**
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface Instance
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/InstanceChangeEvent.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/InstanceChangeEvent.java
index 0ebda11..425d0d4 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/InstanceChangeEvent.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/InstanceChangeEvent.java
@@ -22,7 +22,7 @@
 
 /**
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class InstanceChangeEvent
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ServiceBinderListener.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ServiceBinderListener.java
index d2e0377..0011fbc 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ServiceBinderListener.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/architecture/ServiceBinderListener.java
@@ -23,7 +23,7 @@
  * of the GenericActivator if it wishes to receive notifications about
  * changes in the architecture
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public interface ServiceBinderListener extends java.util.EventListener
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/Activator.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/Activator.java
index f98f48f..4d43550 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/Activator.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/Activator.java
@@ -22,7 +22,7 @@
 
 /**
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator extends GenericActivator
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureEventMulticaster.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureEventMulticaster.java
index 94e8e3f..db1a506 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureEventMulticaster.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureEventMulticaster.java
@@ -24,7 +24,7 @@
 
 /**
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ArchitectureEventMulticaster implements ServiceBinderListener
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureServiceImpl.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureServiceImpl.java
index 817afcc..3a7a9f7 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureServiceImpl.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/impl/ArchitectureServiceImpl.java
@@ -34,7 +34,7 @@
  * an object of this class is created when the
  * service binder bundle is activated
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ArchitectureServiceImpl implements ArchitectureService, Lifecycle
 {
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/KxmlParser.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/KxmlParser.java
index b2cb41f..875d759 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/KxmlParser.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/KxmlParser.java
@@ -30,7 +30,7 @@
  * The KxmlParser extends the XmlParser from kxml. This is a very
  * simple parser that does not take into account the DTD
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class KxmlParser extends KXmlParser
 {
@@ -78,4 +78,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/ParseException.java b/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/ParseException.java
index 99b5e26..eb252f9 100644
--- a/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/ParseException.java
+++ b/servicebinder/src/main/java/org/apache/felix/servicebinder/parser/ParseException.java
@@ -21,7 +21,7 @@
 /**
  * Exceptions thrown by the ServiceBinder.
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ParseException extends Exception
 {
diff --git a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java
index f959dcf..e63c16f 100644
--- a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java
+++ b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiJarMojo.java
@@ -34,7 +34,7 @@
 /**
  * Package an OSGi jar "bundle."
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Apache Felix Project</a>
+ * @author <a href="mailto:dev@felix.apache.org">Apache Felix Project</a>
  * @version $Rev$, $Date$
  * @goal osgi-bundle
  * @phase package
diff --git a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java
index 7148312..e1ee668 100644
--- a/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java
+++ b/tools/maven2/maven-osgi-plugin/src/main/java/org/apache/felix/tools/maven/plugin/OsgiManifest.java
@@ -23,7 +23,7 @@
 /**
  * Hold values for an OSGi jar "bundle" manifest.
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Apache Felix Project</a>
+ * @author <a href="mailto:dev@felix.apache.org">Apache Felix Project</a>
  * @version $Rev$, $Date$
  */
 public class OsgiManifest
@@ -466,4 +466,4 @@
             entries.put(key, defaultValue);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/Activator.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/Activator.java
index bd7c441..fa62ceb 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/Activator.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/Activator.java
@@ -43,7 +43,7 @@
 import org.apache.felix.upnp.basedriver.tool.Util;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Activator implements BundleActivator {
 
@@ -135,4 +135,4 @@
 		Activator.logger=null;
 		Activator.bc = null;
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/controller/impl/DriverControllerImpl.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/controller/impl/DriverControllerImpl.java
index 8a9fa0a..a772516 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/controller/impl/DriverControllerImpl.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/controller/impl/DriverControllerImpl.java
@@ -30,7 +30,7 @@
 import org.apache.felix.upnp.basedriver.tool.Logger;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class DriverControllerImpl implements DriverController, DevicesInfo{
     private MyCtrlPoint myCtrl;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ActionDispatcher.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ActionDispatcher.java
index 773b8a5..f887aef 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ActionDispatcher.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ActionDispatcher.java
@@ -26,7 +26,7 @@
 
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ActionDispatcher implements ActionListener{
     /**
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java
index cd3e6e5..14217e1 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/BuildDevice.java
@@ -43,7 +43,7 @@
 import org.apache.felix.upnp.basedriver.Activator;
 import org.apache.felix.upnp.extra.util.Converter;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class BuildDevice {
 	
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/DeviceNode.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/DeviceNode.java
index b72a279..95429ae 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/DeviceNode.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/DeviceNode.java
@@ -28,7 +28,7 @@
 import org.osgi.service.upnp.UPnPDevice;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class DeviceNode {
 	
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ExporterUPnPEventListener.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ExporterUPnPEventListener.java
index a214965..c463a50 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ExporterUPnPEventListener.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ExporterUPnPEventListener.java
@@ -33,7 +33,7 @@
 import org.apache.felix.upnp.extra.util.Converter;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ExporterUPnPEventListener implements UPnPEventListener {
 
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/GeneralActionListener.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/GeneralActionListener.java
index 7976368..002c958 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/GeneralActionListener.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/GeneralActionListener.java
@@ -43,7 +43,7 @@
 import org.osgi.service.upnp.UPnPException;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class GeneralActionListener implements ServiceListener,ActionListener {
 
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceExportingQueue.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceExportingQueue.java
index 90584bf..2a92c06 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceExportingQueue.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceExportingQueue.java
@@ -22,7 +22,7 @@
 import java.util.Vector;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class RootDeviceExportingQueue {
 	
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceListener.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceListener.java
index 0f84b4e..59f7eec 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceListener.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/RootDeviceListener.java
@@ -34,7 +34,7 @@
 import org.apache.felix.upnp.basedriver.Activator;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class RootDeviceListener implements ServiceListener {
 
@@ -207,4 +207,4 @@
 		Activator.bc.removeServiceListener(this);
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ThreadExporter.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ThreadExporter.java
index 90ed837..281abba 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ThreadExporter.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/export/ThreadExporter.java
@@ -45,7 +45,7 @@
 import org.apache.felix.upnp.basedriver.Activator;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ThreadExporter implements Runnable,ServiceListener {
 
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/MyCtrlPoint.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/MyCtrlPoint.java
index 1e93656..fa6b4a9 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/MyCtrlPoint.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/MyCtrlPoint.java
@@ -68,7 +68,7 @@
 import org.apache.felix.upnp.extra.util.Converter;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class MyCtrlPoint extends ControlPoint
 		implements
@@ -895,4 +895,4 @@
 
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/OSGiDeviceInfo.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/OSGiDeviceInfo.java
index 3278ca0..3003ea3 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/OSGiDeviceInfo.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/OSGiDeviceInfo.java
@@ -25,7 +25,7 @@
 import org.apache.felix.upnp.basedriver.importer.core.upnp.UPnPDeviceImpl;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class OSGiDeviceInfo {
 	private UPnPDeviceImpl osgidevice;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/FirstMessage.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/FirstMessage.java
index 85b24a5..140b15e 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/FirstMessage.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/FirstMessage.java
@@ -29,7 +29,7 @@
  * This is message is related to a registration of listener for a 
  * CyberLink Service during the registering of the UPnP Event Listener
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
  
 
@@ -66,4 +66,4 @@
 	public String getServiceID(){
 		return service.getServiceID();	
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerModified.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerModified.java
index d797f3a..cf197bb 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerModified.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerModified.java
@@ -27,7 +27,7 @@
  * Message that is euqueued for Suscriber, only when a UPnPEventListener changes 
  * his properties
  *  
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ListenerModified {
 	private Vector newServices;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerUnRegistration.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerUnRegistration.java
index b25fe80..ad34f69 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerUnRegistration.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/ListenerUnRegistration.java
@@ -22,7 +22,7 @@
 import org.osgi.service.upnp.UPnPEventListener;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ListenerUnRegistration {
 	private UPnPEventListener listener;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/SidExipired.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/SidExipired.java
index 68f6287..a8b5ff7 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/SidExipired.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/SidExipired.java
@@ -22,7 +22,7 @@
 import org.cybergarage.upnp.Service;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class SidExipired {
 private String sid;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/StateChanged.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/StateChanged.java
index 79193d6..9e0bfff 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/StateChanged.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/message/StateChanged.java
@@ -25,7 +25,7 @@
 import org.cybergarage.upnp.Service;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class StateChanged {
 	private String sid;
@@ -77,4 +77,4 @@
 	public String getServiceID() {
 		return service.getServiceID();
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Listener2Sids.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Listener2Sids.java
index 7449497..f721797 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Listener2Sids.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Listener2Sids.java
@@ -25,7 +25,7 @@
 import org.osgi.service.upnp.UPnPEventListener;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Listener2Sids {
 	private Hashtable listenerSid;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Monitor.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Monitor.java
index 60a229e..ae08a49 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Monitor.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Monitor.java
@@ -34,7 +34,7 @@
 import org.apache.felix.upnp.basedriver.importer.core.event.message.ListenerModified;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class Monitor {
@@ -231,4 +231,4 @@
 		sidStateVars.remove(sid);
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/NotifierQueue.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/NotifierQueue.java
index f8e6228..c881509 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/NotifierQueue.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/NotifierQueue.java
@@ -22,7 +22,7 @@
 import java.util.Vector;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class NotifierQueue {
 	private Vector queue;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Sid2Listeners.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Sid2Listeners.java
index 0df5577..f6dfd85 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Sid2Listeners.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/Sid2Listeners.java
@@ -26,7 +26,7 @@
 import org.osgi.service.upnp.UPnPEventListener;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Sid2Listeners {
 	private Hashtable sidListener;
@@ -82,4 +82,4 @@
     public void setAlreadyFirst(String sid, boolean bool) {
 		alreadyfirst.put(sid, new Boolean(bool));
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidRenewer.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidRenewer.java
index 153923c..7644656 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidRenewer.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidRenewer.java
@@ -25,7 +25,7 @@
 import org.apache.felix.upnp.basedriver.importer.core.event.thread.Renewer;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class SidRenewer {
 private Hashtable hash;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidsListenersMaps.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidsListenersMaps.java
index f04c013..fb81d1f 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidsListenersMaps.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SidsListenersMaps.java
@@ -29,7 +29,7 @@
  *  - sid2listener: have SID of Suscribed Service as key and a Vector of UPnPEventListener as value
  *  - listener2sids: have an UPnPEventListener as kay and a Vector of SID of Scriscrobed Service 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class SidsListenersMaps {
 	private Sid2Listeners sid2Listeners;
@@ -73,4 +73,4 @@
 	public final void removeListenerKey(UPnPEventListener listener){
 		listeners2Sids.remove(listener);
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/StateVarsToNotify.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/StateVarsToNotify.java
index 1c36d08..48af2f3 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/StateVarsToNotify.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/StateVarsToNotify.java
@@ -26,7 +26,7 @@
 import org.apache.felix.upnp.basedriver.importer.core.event.message.StateChanged;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class StateVarsToNotify {
 	private Dictionary stateVars;
@@ -65,4 +65,4 @@
 			stateVars.put(varName,varValue);
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SubscriptionQueue.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SubscriptionQueue.java
index f4bc03d..6a043d0 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SubscriptionQueue.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/structs/SubscriptionQueue.java
@@ -24,7 +24,7 @@
 
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class SubscriptionQueue {
 	private Vector queue;
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Notifier.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Notifier.java
index 6235082..f976d50 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Notifier.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Notifier.java
@@ -26,7 +26,7 @@
 
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class Notifier extends Thread {
@@ -61,4 +61,4 @@
 		running  = false;
 		notifierQueue.close();
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Renewer.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Renewer.java
index aef4016..563bb98 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Renewer.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/Renewer.java
@@ -27,7 +27,7 @@
 import org.apache.felix.upnp.basedriver.importer.core.event.structs.SubscriptionQueue;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Renewer extends Thread {
 	private long timeout;
@@ -80,4 +80,4 @@
 		}
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/SubScriber.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/SubScriber.java
index e428499..82d0bff 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/SubScriber.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/event/thread/SubScriber.java
@@ -34,7 +34,7 @@
 import org.apache.felix.upnp.basedriver.importer.core.event.structs.SubscriptionQueue;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class SubScriber extends Thread {
 
@@ -89,4 +89,4 @@
 		subQueue.close();
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPActionImpl.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPActionImpl.java
index 5675084..f79ba23 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPActionImpl.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPActionImpl.java
@@ -35,7 +35,7 @@
 import org.osgi.service.upnp.UPnPException;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class UPnPActionImpl implements UPnPAction {
 
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPDeviceImpl.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPDeviceImpl.java
index d081483..ffc60fc 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPDeviceImpl.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPDeviceImpl.java
@@ -33,7 +33,7 @@
 import org.osgi.service.upnp.UPnPService;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class UPnPDeviceImpl implements UPnPDevice {
 
@@ -139,4 +139,4 @@
 
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPIconImpl.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPIconImpl.java
index 6848f9a..57602c9 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPIconImpl.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPIconImpl.java
@@ -32,7 +32,7 @@
 import org.apache.felix.upnp.basedriver.importer.util.ParseLocation;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class UPnPIconImpl implements UPnPIcon {
 
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPServiceImpl.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPServiceImpl.java
index 0142eca..7182640 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPServiceImpl.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPServiceImpl.java
@@ -34,7 +34,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class UPnPServiceImpl implements UPnPService {
 	private Service service;
@@ -155,4 +155,4 @@
 		return service;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPStateVariableImpl.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPStateVariableImpl.java
index 56c2c25..eac590d 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPStateVariableImpl.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/core/upnp/UPnPStateVariableImpl.java
@@ -32,7 +32,7 @@
 import org.apache.felix.upnp.extra.util.Converter;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class UPnPStateVariableImpl implements UPnPStateVariable {
 
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/DeviceSetup.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/DeviceSetup.java
index cc248fc..ccb6ec4 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/DeviceSetup.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/DeviceSetup.java
@@ -41,7 +41,7 @@
 import org.apache.felix.upnp.extra.util.Constants;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class DeviceSetup {
@@ -140,4 +140,4 @@
 	
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/HTTPRequestForIcon.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/HTTPRequestForIcon.java
index 2360c59..e662561 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/HTTPRequestForIcon.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/HTTPRequestForIcon.java
@@ -23,7 +23,7 @@
 import java.net.*;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class HTTPRequestForIcon {
 	private URL url;
@@ -91,4 +91,4 @@
 
 	}
 
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseLocation.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseLocation.java
index 9ef42cd..6262667 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseLocation.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseLocation.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.basedriver.importer.util;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ParseLocation {
 	public static String getUrlBase(String location){
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseUSN.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseUSN.java
index 8cfc1ba..5fc5858 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseUSN.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/importer/util/ParseUSN.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.basedriver.importer.util;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ParseUSN {
 	boolean service;
@@ -60,4 +60,4 @@
 		return serviceType;
 	}
 	
-}
\ No newline at end of file
+}
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Logger.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Logger.java
index 3bad027..aaae519 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Logger.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Logger.java
@@ -33,7 +33,7 @@
 import org.apache.felix.upnp.basedriver.Activator;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Logger implements ServiceListener {
 	
diff --git a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Util.java b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Util.java
index a7e5f70..3e4088d 100644
--- a/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Util.java
+++ b/upnp.basedriver/src/main/java/org/apache/felix/upnp/basedriver/tool/Util.java
@@ -27,7 +27,7 @@
 import org.osgi.service.upnp.UPnPDevice;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Util {
 	
diff --git a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java
index 1b4e162..580657f 100644
--- a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java
+++ b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DevicesInfo.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.extra.controller;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public interface DevicesInfo{
     /**
diff --git a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java
index 28ddfc3..4110b04 100644
--- a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java
+++ b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/controller/DriverController.java
@@ -22,7 +22,7 @@
 //import java.net.InetAddress;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public interface DriverController {
 	/**
diff --git a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java
index fe12099..4826434 100644
--- a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java
+++ b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Constants.java
@@ -19,7 +19,7 @@
 
 package org.apache.felix.upnp.extra.util;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public interface Constants {
 	/**
diff --git a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java
index fb020c0..7fb0fca 100644
--- a/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java
+++ b/upnp.extra/src/main/java/org/apache/felix/upnp/extra/util/Converter.java
@@ -28,7 +28,7 @@
 import org.osgi.service.upnp.*;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Converter {
 	
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/Activator.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/Activator.java
index ebd8146..0f1c940 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/Activator.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/Activator.java
@@ -32,7 +32,7 @@
 
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class Activator implements BundleActivator {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/EventSource.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/EventSource.java
index a3593b4..af8c245 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/EventSource.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/EventSource.java
@@ -22,7 +22,7 @@
 import java.beans.PropertyChangeListener;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public interface EventSource {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetStatusAction.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetStatusAction.java
index 23584d3..84eee26 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetStatusAction.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetStatusAction.java
@@ -26,7 +26,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class GetStatusAction implements UPnPAction {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetTargetAction.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetTargetAction.java
index e16f25a..ee0be24 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetTargetAction.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/GetTargetAction.java
@@ -26,7 +26,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class GetTargetAction implements UPnPAction {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightDevice.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightDevice.java
index 85bca3f..46676bf 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightDevice.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightDevice.java
@@ -30,7 +30,7 @@
 import org.osgi.service.upnp.UPnPService;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class LightDevice implements UPnPDevice {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightIcon.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightIcon.java
index 7f05449..7b537f9 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightIcon.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightIcon.java
@@ -24,7 +24,7 @@
 import org.osgi.service.upnp.UPnPIcon;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class LightIcon implements UPnPIcon {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java
index a5a4463..552c7b1 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightModel.java
@@ -23,7 +23,7 @@
 import java.beans.PropertyChangeSupport;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class LightModel implements EventSource{
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java
index 795f1aa..0c28ebd 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/LightUI.java
@@ -39,7 +39,7 @@
 import org.osgi.framework.BundleException;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class LightUI extends JFrame implements PropertyChangeListener {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/PowerSwitchService.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/PowerSwitchService.java
index 1394609..74d0b5d 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/PowerSwitchService.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/PowerSwitchService.java
@@ -26,7 +26,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class PowerSwitchService implements UPnPService{
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/SetTargetAction.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/SetTargetAction.java
index e357504..a39c893 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/SetTargetAction.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/SetTargetAction.java
@@ -25,7 +25,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class SetTargetAction implements UPnPAction {
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/StatusStateVariable.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/StatusStateVariable.java
index 526705f..6b2f87f 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/StatusStateVariable.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/StatusStateVariable.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.sample.binaryLight;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class StatusStateVariable implements UPnPStateVariable{
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/TargetStateVariable.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/TargetStateVariable.java
index 7001c07..c7ad63f 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/TargetStateVariable.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/TargetStateVariable.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.sample.binaryLight;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TargetStateVariable implements UPnPStateVariable{
diff --git a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/UPnPEventNotifier.java b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/UPnPEventNotifier.java
index c12a63b..ad084a7 100644
--- a/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/UPnPEventNotifier.java
+++ b/upnp.sample.binaryLight/src/main/java/org/apache/felix/upnp/sample/binaryLight/UPnPEventNotifier.java
@@ -37,7 +37,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class UPnPEventNotifier implements PropertyChangeListener,ServiceListener {
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Activator.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Activator.java
index f223781..a3a8951 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Activator.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Activator.java
@@ -27,7 +27,7 @@
 import org.osgi.service.upnp.UPnPDevice;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Activator implements BundleActivator {
 
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Clock.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Clock.java
index cccd1a4..357eaae 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Clock.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/Clock.java
@@ -21,7 +21,7 @@
 
 import java.util.Calendar;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class Clock
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockDevice.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockDevice.java
index be9948b..8d87782 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockDevice.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockDevice.java
@@ -29,7 +29,7 @@
 import org.osgi.service.upnp.UPnPIcon;
 import org.osgi.service.upnp.UPnPService;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class ClockDevice implements UPnPDevice {
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockFrame.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockFrame.java
index 26fde86..263196e 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockFrame.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockFrame.java
@@ -30,7 +30,7 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class ClockFrame extends JFrame implements Runnable 
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockIcon.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockIcon.java
index 132cbac..faa7950 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockIcon.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockIcon.java
@@ -23,7 +23,7 @@
 
 import org.osgi.service.upnp.UPnPIcon;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class ClockIcon implements UPnPIcon {
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockPane.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockPane.java
index 7901254..9cc5c0c 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockPane.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ClockPane.java
@@ -31,7 +31,7 @@
 import javax.swing.JPanel;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class ClockPane extends JPanel  // MouseListener
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/EventSource.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/EventSource.java
index 5f3396b..504610e 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/EventSource.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/EventSource.java
@@ -21,7 +21,7 @@
 
 import java.beans.PropertyChangeListener;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public interface EventSource {
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/GetTimeAction.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/GetTimeAction.java
index 82cbd7b..f2f4abb 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/GetTimeAction.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/GetTimeAction.java
@@ -26,7 +26,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class GetTimeAction implements UPnPAction {
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ResultStateVariable.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ResultStateVariable.java
index 8e08f66..f77dd0c 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ResultStateVariable.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/ResultStateVariable.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.sample.clock;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class ResultStateVariable implements UPnPStateVariable{
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/SetTimeAction.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/SetTimeAction.java
index 94424a0..9719aa2 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/SetTimeAction.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/SetTimeAction.java
@@ -25,7 +25,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class SetTimeAction implements UPnPAction {
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimeStateVariable.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimeStateVariable.java
index 5a5df75..cb938c3 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimeStateVariable.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimeStateVariable.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.sample.clock;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TimeStateVariable implements UPnPStateVariable{
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimerService.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimerService.java
index 9306e70..76edcaa 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimerService.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/TimerService.java
@@ -26,7 +26,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TimerService implements UPnPService {
diff --git a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/UPnPEventNotifier.java b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/UPnPEventNotifier.java
index 38abef5..56504a4 100644
--- a/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/UPnPEventNotifier.java
+++ b/upnp.sample.clock/src/main/java/org/apache/felix/upnp/sample/clock/UPnPEventNotifier.java
@@ -38,7 +38,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class UPnPEventNotifier implements PropertyChangeListener,ServiceListener {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/Activator.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/Activator.java
index fe8b20f..727e407 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/Activator.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/Activator.java
@@ -27,7 +27,7 @@
 import org.osgi.service.upnp.UPnPDevice;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Activator implements BundleActivator {
 
@@ -64,4 +64,4 @@
 		serviceRegistration.unregister();
 		tvFrame.stop();
 	}
-}
\ No newline at end of file
+}
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/EventSource.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/EventSource.java
index 6a5ec84..5790b15 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/EventSource.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/EventSource.java
@@ -21,7 +21,7 @@
 
 import java.beans.PropertyChangeListener;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public interface EventSource {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/GetPowerAction.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/GetPowerAction.java
index 15a6bf2..c647c5d 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/GetPowerAction.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/GetPowerAction.java
@@ -25,7 +25,7 @@
 import org.osgi.service.upnp.UPnPAction;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class GetPowerAction implements UPnPAction {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerService.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerService.java
index 0ab6923..2931f9a 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerService.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerService.java
@@ -25,7 +25,7 @@
 import org.osgi.service.upnp.UPnPService;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class PowerService implements UPnPService {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerStateVariable.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerStateVariable.java
index c44ec43..54e68df 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerStateVariable.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/PowerStateVariable.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.sample.tv;
 import java.beans.PropertyChangeEvent;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class PowerStateVariable implements UPnPStateVariableDescriptor {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/ResultStateVariable.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/ResultStateVariable.java
index 4677189..5132cdb 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/ResultStateVariable.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/ResultStateVariable.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.sample.tv;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class ResultStateVariable implements UPnPStateVariable{
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/SetPowerAction.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/SetPowerAction.java
index 287a963..e6c461e 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/SetPowerAction.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/SetPowerAction.java
@@ -25,7 +25,7 @@
 import org.osgi.service.upnp.UPnPAction;
 import org.osgi.service.upnp.UPnPStateVariable;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class SetPowerAction implements UPnPAction {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvDevice.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvDevice.java
index 9612004..a3afaaa 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvDevice.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvDevice.java
@@ -35,7 +35,7 @@
 import org.osgi.service.upnp.UPnPIcon;
 import org.osgi.service.upnp.UPnPService;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TvDevice implements UPnPDevice,UPnPEventListener,ServiceListener  {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvFrame.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvFrame.java
index b0bf00a..d10a8da 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvFrame.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvFrame.java
@@ -29,7 +29,7 @@
 
 import org.osgi.framework.BundleException;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TvFrame extends JFrame implements Runnable 
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvIcon.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvIcon.java
index c6102e3..e8a13ae 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvIcon.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvIcon.java
@@ -23,7 +23,7 @@
 
 import org.osgi.service.upnp.UPnPIcon;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TvIcon implements UPnPIcon {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvPane.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvPane.java
index 529eb05..93ad85d 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvPane.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/TvPane.java
@@ -30,7 +30,7 @@
 import javax.imageio.ImageIO;
 import javax.swing.JPanel;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TvPane extends JPanel  // MouseListener
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPEventNotifier.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPEventNotifier.java
index 9cd7be1..28a05af 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPEventNotifier.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPEventNotifier.java
@@ -38,7 +38,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class UPnPEventNotifier implements PropertyChangeListener,ServiceListener {
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPStateVariableDescriptor.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPStateVariableDescriptor.java
index bb46b89..1be5065 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPStateVariableDescriptor.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPStateVariableDescriptor.java
@@ -22,7 +22,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public interface UPnPStateVariableDescriptor extends UPnPStateVariable {
     Object getValue();
diff --git a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPSubscriber.java b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPSubscriber.java
index 10af70e..8780f90 100644
--- a/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPSubscriber.java
+++ b/upnp.sample.tv/src/main/java/org/apache/felix/upnp/sample/tv/UPnPSubscriber.java
@@ -29,7 +29,7 @@
 import org.osgi.service.upnp.UPnPService;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class UPnPSubscriber {
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Activator.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Activator.java
index 4adc622..1f48c8d 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Activator.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Activator.java
@@ -24,7 +24,7 @@
 import org.osgi.framework.BundleContext;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class Activator implements BundleActivator {
 
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/ControlPoint.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/ControlPoint.java
index acdb7e7..fe77ace 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/ControlPoint.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/ControlPoint.java
@@ -53,7 +53,7 @@
 import org.osgi.framework.BundleException;
  
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ControlPoint implements PopupMenuListener {
 	RootDeviceListener listener;
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Mediator.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Mediator.java
index d2cfe2b..a23b6c5 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Mediator.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/Mediator.java
@@ -26,7 +26,7 @@
 import org.apache.felix.upnp.tester.gui.*;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public  class Mediator {
 	static PropertiesViewer props;
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/UPnPSubscriber.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/UPnPSubscriber.java
index 0710fd9..dcd5408 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/UPnPSubscriber.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/UPnPSubscriber.java
@@ -25,7 +25,7 @@
 import org.osgi.service.upnp.*;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class UPnPSubscriber {
 	private BundleContext context;
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceChangeListener.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceChangeListener.java
index d33c849..bc0301c 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceChangeListener.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceChangeListener.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.tester.discovery;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public interface DeviceChangeListener {
 	
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNode.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNode.java
index 870d58b..e476009 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNode.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNode.java
@@ -24,7 +24,7 @@
 import org.osgi.service.upnp.*;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class DeviceNode {
 	
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNodeListener.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNodeListener.java
index 13d09af..0fa8702 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNodeListener.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DeviceNodeListener.java
@@ -20,7 +20,7 @@
 package org.apache.felix.upnp.tester.discovery;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public interface DeviceNodeListener {
 	public void deviceDetected(DeviceNode d);
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DevicesList.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DevicesList.java
index 7bb547f..38d3a5c 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DevicesList.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DevicesList.java
@@ -22,7 +22,7 @@
 import java.util.*;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class DevicesList {
 	
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DriverProxy.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DriverProxy.java
index 6765ee2..f20aa15 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DriverProxy.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/DriverProxy.java
@@ -24,7 +24,7 @@
 
 import org.osgi.framework.*;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class DriverProxy implements ServiceListener {
     private DevicesInfo devicesInfo;
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/RootDeviceListener.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/RootDeviceListener.java
index 0bae28e..4ff6b9b 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/RootDeviceListener.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/discovery/RootDeviceListener.java
@@ -28,7 +28,7 @@
 import org.osgi.service.upnp.*;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class RootDeviceListener implements ServiceListener {
 		
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/ActionPanel.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/ActionPanel.java
index 99f478b..95ede14 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/ActionPanel.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/ActionPanel.java
@@ -52,7 +52,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class ActionPanel extends JPanel {
 	
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/LogPanel.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/LogPanel.java
index 56c9a1f..5fe322d 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/LogPanel.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/LogPanel.java
@@ -28,7 +28,7 @@
 import javax.swing.JTextArea;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class LogPanel extends JPanel {
     private static JTextArea logArea = new JTextArea(4,50);
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/PropertiesViewer.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/PropertiesViewer.java
index 56fb62a..462fd61 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/PropertiesViewer.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/PropertiesViewer.java
@@ -44,7 +44,7 @@
 import org.osgi.service.upnp.UPnPDevice;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class PropertiesViewer extends JPanel {
 
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/SubscriptionPanel.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/SubscriptionPanel.java
index 7630d81..5591b38 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/SubscriptionPanel.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/SubscriptionPanel.java
@@ -39,7 +39,7 @@
 import org.osgi.service.upnp.UPnPEventListener;
 import org.osgi.service.upnp.UPnPService;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class SubscriptionPanel extends JPanel implements UPnPEventListener{
 	public SubscriptionPanel() {
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/TreeViewer.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/TreeViewer.java
index 870d03a..949d003 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/TreeViewer.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/TreeViewer.java
@@ -53,7 +53,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class TreeViewer extends JPanel 	implements DeviceNodeListener 
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/UPnPDeviceTreeNode.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/UPnPDeviceTreeNode.java
index a56ef1c..8659b35 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/UPnPDeviceTreeNode.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/UPnPDeviceTreeNode.java
@@ -42,7 +42,7 @@
 import org.osgi.service.upnp.UPnPStateVariable;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 public class UPnPDeviceTreeNode extends DefaultMutableTreeNode {
 	public final static String ROOT_DEVICE = "RootDeviceNode";
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/Util.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/Util.java
index aadab40..67a6506 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/Util.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/gui/Util.java
@@ -24,7 +24,7 @@
 import java.io.InputStreamReader;
 
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class Util {
diff --git a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/test.java b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/test.java
index f7594bc..67293a3 100644
--- a/upnp.tester/src/main/java/org/apache/felix/upnp/tester/test.java
+++ b/upnp.tester/src/main/java/org/apache/felix/upnp/tester/test.java
@@ -27,7 +27,7 @@
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 /* 
-* @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
 */
 
 public class test extends JFrame {
@@ -79,4 +79,4 @@
        }
    }
 
-}
\ No newline at end of file
+}
diff --git a/wireadmin/src/main/java/org/apache/felix/wireadmin/Activator.java b/wireadmin/src/main/java/org/apache/felix/wireadmin/Activator.java
index 65b2a8b..7607ce2 100644
--- a/wireadmin/src/main/java/org/apache/felix/wireadmin/Activator.java
+++ b/wireadmin/src/main/java/org/apache/felix/wireadmin/Activator.java
@@ -33,7 +33,7 @@
 /**
  * The activator
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Activator implements BundleActivator {
 
@@ -125,4 +125,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/wireadmin/src/main/java/org/apache/felix/wireadmin/EventManager.java b/wireadmin/src/main/java/org/apache/felix/wireadmin/EventManager.java
index b828732..ed014d1 100644
--- a/wireadmin/src/main/java/org/apache/felix/wireadmin/EventManager.java
+++ b/wireadmin/src/main/java/org/apache/felix/wireadmin/EventManager.java
@@ -37,7 +37,7 @@
 /**
  * Class that tracks listeners and manages event dispatching 
  * 
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 class EventManager implements ServiceListener
 {
@@ -266,4 +266,4 @@
             m_stop = true;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/wireadmin/src/main/java/org/apache/felix/wireadmin/WireAdminImpl.java b/wireadmin/src/main/java/org/apache/felix/wireadmin/WireAdminImpl.java
index 26519c2..ef067e9 100644
--- a/wireadmin/src/main/java/org/apache/felix/wireadmin/WireAdminImpl.java
+++ b/wireadmin/src/main/java/org/apache/felix/wireadmin/WireAdminImpl.java
@@ -66,7 +66,7 @@
  * A bundle must have <tt>ServicePermission[GET,WireAdmin]</tt> to get the Wire Admin service to
  * create, modify, find, and delete <tt>Wire</tt> objects.
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class WireAdminImpl implements WireAdmin, ServiceListener {
 
@@ -1034,4 +1034,4 @@
             m_stop = true;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/wireadmin/src/main/java/org/apache/felix/wireadmin/WireImpl.java b/wireadmin/src/main/java/org/apache/felix/wireadmin/WireImpl.java
index d0ede74..25bd78e 100644
--- a/wireadmin/src/main/java/org/apache/felix/wireadmin/WireImpl.java
+++ b/wireadmin/src/main/java/org/apache/felix/wireadmin/WireImpl.java
@@ -69,7 +69,7 @@
  * verified by the <tt>Wire</tt> object before it is used in communication. The semantics of the
  * names depend on the Producer service and must not be interpreted by the Wire Admin service.
  *
- * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a> * 
+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a> * 
  */
 public class WireImpl implements Wire, java.io.Serializable 
 {
@@ -952,4 +952,4 @@
             return null;
         }
     }
-}
\ No newline at end of file
+}
