diff --git a/mosgi.jmx.agent/LICENCE-MX4J b/mosgi.jmx.agent/LICENCE-MX4J
new file mode 100644
index 0000000..ee5be60
--- /dev/null
+++ b/mosgi.jmx.agent/LICENCE-MX4J
@@ -0,0 +1,51 @@
+/* ====================================================================
+ * The MX4J License, Version 1.0
+ *
+ * Copyright (c) 2001 MX4J.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        MX4J project (http://mx4j.sourceforge.net)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "MX4J" and "mx4j" must not be used to endorse or promote
+ *    products derived from this software without prior written
+ *    permission. For written permission, please contact biorn_steedom@users.sourceforge.net
+ *
+ * 5. Products derived from this software may not be called "MX4J",
+ *    nor may "MX4J" appear in their name, without prior written
+ *    permission of Simone Bordet.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL CARLOS QUIROZ OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of MX4J.  For more information on
+ * MX4J, please see
+ * <http://mx4j.sourceforge.net>.
+ */
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/AbstractDynamicMBean.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/AbstractDynamicMBean.java
index 0dcb316..daf21fd 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/AbstractDynamicMBean.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/AbstractDynamicMBean.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
-*/
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/ImplementationException.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/ImplementationException.java
index 700a1c0..d9ff255 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/ImplementationException.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/ImplementationException.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescription.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescription.java
index 56c19e4..b2c68a0 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescription.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescription.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescriptionAdapter.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescriptionAdapter.java
index 91b0866..6dd7e9f 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescriptionAdapter.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MBeanDescriptionAdapter.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MX4JSystemKeys.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MX4JSystemKeys.java
index af8df3e..ce10909 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MX4JSystemKeys.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/MX4JSystemKeys.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/ClassLoaderObjectInputStream.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/ClassLoaderObjectInputStream.java
index b51b33a..36c8ed0 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/ClassLoaderObjectInputStream.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/ClassLoaderObjectInputStream.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParseException.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParseException.java
index c949b49..4a7ac29 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParseException.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParseException.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParser.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParser.java
index 6b6f0a4..523c06e 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParser.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetParser.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetTag.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetTag.java
index 2e286bc..63143a5 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetTag.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/loading/MLetTag.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Log.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Log.java
index 58532a8..9fb7b4b 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Log.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Log.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Logger.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Logger.java
index 97324ea..611191f 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Logger.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/log/Logger.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultClassLoaderRepository.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultClassLoaderRepository.java
index db7fd9a..345e7f2 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultClassLoaderRepository.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultClassLoaderRepository.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultMBeanRepository.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultMBeanRepository.java
index 8244e3a..f5c1ca4 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultMBeanRepository.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/DefaultMBeanRepository.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanIntrospector.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanIntrospector.java
index 7515097..0e0bc09 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanIntrospector.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanIntrospector.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanInvoker.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanInvoker.java
index 8853cc3..23cfe43 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanInvoker.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanInvoker.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanMetaData.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanMetaData.java
index 72ecd9e..8872caf 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanMetaData.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanMetaData.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanRepository.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanRepository.java
index 9c8e0ce..aa21724 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanRepository.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MBeanRepository.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServer.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServer.java
index 5791fee..59663a4 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServer.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServer.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerBuilder.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerBuilder.java
index 0288143..02c2b6c 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerBuilder.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerBuilder.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerDelegate.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerDelegate.java
index c226321..a24d009 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerDelegate.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/MX4JMBeanServerDelegate.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ModifiableClassLoaderRepository.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ModifiableClassLoaderRepository.java
index 76323db..1eeda5a 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ModifiableClassLoaderRepository.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ModifiableClassLoaderRepository.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ReflectedMBeanInvoker.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ReflectedMBeanInvoker.java
index b193a48..c2ce0ac 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ReflectedMBeanInvoker.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/ReflectedMBeanInvoker.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.java
index 9f69651..aa7b674 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/ContextClassLoaderMBeanServerInterceptor.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptor.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptor.java
index a350766..d5b8c09 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptor.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.java
index 7f709d6..d2edb4d 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/DefaultMBeanServerInterceptorMBean.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptor.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptor.java
index 745db52..127c189 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptor.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.java
index 6752319..2425760 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/InvokerMBeanServerInterceptorMBean.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptor.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptor.java
index 018dc74..19d75b5 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptor.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.java
index a9f4b96..aaa5cee 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfigurator.java
@@ -1,11 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.java
index 25e9475..b567b9d 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/MBeanServerInterceptorConfiguratorMBean.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.java
index f71ed09..7308c95 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/NotificationListenerMBeanServerInterceptor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptor.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptor.java
index da497cf..e6ef767 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptor.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.java b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.java
index c0f6641..d138927 100644
--- a/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.java
+++ b/mosgi.jmx.agent/src/main/java/org/apache/felix/mosgi/jmx/agent/mx4j/server/interceptor/SecurityMBeanServerInterceptorMBean.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/LICENCE-MX4J b/mosgi.jmx.httpconnector/LICENCE-MX4J
new file mode 100644
index 0000000..ee5be60
--- /dev/null
+++ b/mosgi.jmx.httpconnector/LICENCE-MX4J
@@ -0,0 +1,51 @@
+/* ====================================================================
+ * The MX4J License, Version 1.0
+ *
+ * Copyright (c) 2001 MX4J.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        MX4J project (http://mx4j.sourceforge.net)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "MX4J" and "mx4j" must not be used to endorse or promote
+ *    products derived from this software without prior written
+ *    permission. For written permission, please contact biorn_steedom@users.sourceforge.net
+ *
+ * 5. Products derived from this software may not be called "MX4J",
+ *    nor may "MX4J" appear in their name, without prior written
+ *    permission of Simone Bordet.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL CARLOS QUIROZ OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of MX4J.  For more information on
+ * MX4J, please see
+ * <http://mx4j.sourceforge.net>.
+ */
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/AdaptorServerSocketFactory.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/AdaptorServerSocketFactory.java
index be6c76a..978974f 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/AdaptorServerSocketFactory.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/AdaptorServerSocketFactory.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.java
index 603c722..b8df6e8 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/PlainAdaptorServerSocketFactory.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CommandProcessorUtil.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CommandProcessorUtil.java
index 28eced4..caba3a5 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CommandProcessorUtil.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CommandProcessorUtil.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.java
index 25275bb..0dd22f1 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ConstructorsCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.java
index 7fd1e26..43b1d0b 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/CreateMBeanCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- *  Copyright (C) MX4J.
- *  All rights reserved.
- *
- *  This software is distributed under the terms of the MX4J License version 1.0.
- *  See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DefaultProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DefaultProcessor.java
index 4e18cda..86f26f5 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DefaultProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DefaultProcessor.java
@@ -1,10 +1,3 @@
-/*
- *  Copyright (C) MX4J.
- *  All rights reserved.
- *
- *  This software is distributed under the terms of the MX4J License version 1.0.
- *  See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.java
index e207dac..f81dfc9 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/DeleteMBeanCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- *  Copyright (C) MX4J.
- *  All rights reserved.
- *
- *  This software is distributed under the terms of the MX4J License version 1.0.
- *  See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/EmptyCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/EmptyCommandProcessor.java
index 3c9489b..27a7979 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/EmptyCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/EmptyCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- *  Copyright (C) MX4J.
- *  All rights reserved.
- *
- *  This software is distributed under the terms of the MX4J License version 1.0.
- *  See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.java
index 4813da8..99a80f9 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/GetAttributeCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptor.java
index 2dc6cee..bf093ac 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptor.java
@@ -1,10 +1,3 @@
-/*
- *  Copyright (C) MX4J.
- *  All rights reserved.
- *
- *  This software is distributed under the terms of the MX4J License version 1.0.
- *  See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptorMBean.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptorMBean.java
index 7069c96..16535e9 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptorMBean.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpAdaptorMBean.java
@@ -1,10 +1,3 @@
-/*
- *  Copyright (C) MX4J.
- *  All rights reserved.
- *
- *  This software is distributed under the terms of the MX4J License version 1.0.
- *  See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessor.java
index 7e45859..5ea58e1 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.java
index cea1a36..6750f12 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpCommandProcessorAdaptor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpConstants.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpConstants.java
index b3fcdf2..fc20523 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpConstants.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpConstants.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpException.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpException.java
index 2c1c7ea..fba3674 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpException.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpException.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpInputStream.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpInputStream.java
index e530843..cfcd9b9 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpInputStream.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpInputStream.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpOutputStream.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpOutputStream.java
index 5255f17..3eecbe9 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpOutputStream.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpOutputStream.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpUtil.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpUtil.java
index 936022d..8e3da24 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpUtil.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/HttpUtil.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.java
index 0715387..ba5b2d7 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/InvokeOperationCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/MBeanCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/MBeanCommandProcessor.java
index 6f77ecd..04b0e07 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/MBeanCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/MBeanCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ProcessorMBean.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ProcessorMBean.java
index debccc7..b9510bb 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ProcessorMBean.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ProcessorMBean.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.java
index 58cb2a9..5dab050 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerByDomainCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerCommandProcessor.java
index 4cb9e90..ba34aab 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/ServerCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.java
index 8f40a40..df24aba 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributeCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.java
index f251c80..90c89dd 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/SetAttributesCommandProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessor.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessor.java
index 8fda999..41ff9f9 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessor.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessor.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessorMBean.java b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessorMBean.java
index ae397d0..94e5d18 100644
--- a/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessorMBean.java
+++ b/mosgi.jmx.httpconnector/src/main/java/org/apache/felix/mosgi/jmx/httpconnector/mx4j/tools/adaptor/http/XSLTProcessorMBean.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/about.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/about.xsl
index 4333217..64d7236 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/about.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/about.xsl
@@ -1,13 +1,22 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
 																																					-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 	version="1.0">
 	<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/common.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/common.xsl
index ab6f754..591efe9 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/common.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/common.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																																																										-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<!-- Import xalan extensions -->
 		<xsl:import href="xalan-ext.xsl" />
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/constructors.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/constructors.xsl
index 60dfad6..5043e76 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/constructors.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/constructors.xsl
@@ -1,14 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
-
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
 
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/create.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/create.xsl
index 774880b..c792695 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/create.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/create.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/delete.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/delete.xsl
index af968c4..57f009e 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/delete.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/delete.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/emptymbean.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/emptymbean.xsl
index c755f2b..f1fa07a 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/emptymbean.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/emptymbean.xsl
@@ -1,14 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
-
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 	version="1.0">
 	<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
 	<xsl:include href="common.xsl"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/error.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/error.xsl
index 3bbc4e8..594e13a 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/error.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/error.xsl
@@ -1,14 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
-
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
 
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/identity.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/identity.xsl
index 4977d05..72801d7 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/identity.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/identity.xsl
@@ -1,16 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
- 
- Note: Extracted from xalan distribution
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <!-- From the XSLT spec: "the identity transformation can be written using xsl:copy as follows:" -->
   <xsl:template match="@*|node()">
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/invoke.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/invoke.xsl
index c107fb6..377ec2b 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/invoke.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/invoke.xsl
@@ -1,14 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
-
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean.xsl
index bbde9fc..5ea5fad 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean.xsl
@@ -1,15 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Contribution: Lachezar Dobrev (l.dobrev@lsnsoft.com)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean_attributes.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean_attributes.xsl
index 6a87530..bce0b23 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean_attributes.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean_attributes.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mlet.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mlet.xsl
index 5fd78ad..495eca0 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mlet.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mlet.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
 
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor.xsl
index 952a57f..803d1aa 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
 
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor_create.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor_create.xsl
index 1c39bab..6a82bbd 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor_create.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor_create.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/relation.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/relation.xsl
index f89317c..7798212 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/relation.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/relation.xsl
@@ -1,14 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
-
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Bronwen Cassidy (shadow12@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
- 																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:output method="html" indent="yes" encoding="UTF-8"/>
 
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/server.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/server.xsl
index f22f941..60f7729 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/server.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/server.xsl
@@ -1,13 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
 -->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/serverbydomain.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/serverbydomain.xsl
index 14c0deb..d00b7bb 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/serverbydomain.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/serverbydomain.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 	version="1.0">
 	<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
 	<xsl:include href="common.xsl"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattribute.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattribute.xsl
index 714d883..9d32dcc 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattribute.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattribute.xsl
@@ -1,14 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
-
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattributes.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattributes.xsl
index ac606e4..d6d51bb 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattributes.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattributes.xsl
@@ -1,14 +1,24 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
-
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer.xsl
index 25532ec..d2163c5 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xslt">
 	<xsl:output method="html" indent="yes" encoding="UTF-8" xalan:indent-amount="4"/>
 
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer_create.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer_create.xsl
index b0fe328..ed431e9 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer_create.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer_create.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewarray.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewarray.xsl
index cb22bbf..21905c5 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewarray.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewarray.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewcollection.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewcollection.xsl
index 613feb0..72722bf 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewcollection.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewcollection.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewmap.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewmap.xsl
index 14b525e..2dc8a0d 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewmap.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewmap.xsl
@@ -1,14 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
diff --git a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/xalan-ext.xsl b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/xalan-ext.xsl
index f1e54ba..3596868 100644
--- a/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/xalan-ext.xsl
+++ b/mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/xalan-ext.xsl
@@ -1,15 +1,25 @@
 <?xml version="1.0"?>
 <!--
- Copyright (C) MX4J.
- All rights reserved.
 
- This software is distributed under the terms of the MX4J License version 1.0.
- See the terms of the MX4J License in the documentation provided with this software.
-
- Author: Carlos Quiroz (tibu@users.sourceforge.net)
-				 Brett Knights
- Revision: $Revision: 1.1.1.1 $
-																																					-->
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+* 
+*  http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.    
+*/
+-->
 <xsl:stylesheet
 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 	version="1.0"
diff --git a/mosgi.jmx.registry/LICENCE-MX4J b/mosgi.jmx.registry/LICENCE-MX4J
new file mode 100644
index 0000000..ee5be60
--- /dev/null
+++ b/mosgi.jmx.registry/LICENCE-MX4J
@@ -0,0 +1,51 @@
+/* ====================================================================
+ * The MX4J License, Version 1.0
+ *
+ * Copyright (c) 2001 MX4J.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        MX4J project (http://mx4j.sourceforge.net)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "MX4J" and "mx4j" must not be used to endorse or promote
+ *    products derived from this software without prior written
+ *    permission. For written permission, please contact biorn_steedom@users.sourceforge.net
+ *
+ * 5. Products derived from this software may not be called "MX4J",
+ *    nor may "MX4J" appear in their name, without prior written
+ *    permission of Simone Bordet.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL CARLOS QUIROZ OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of MX4J.  For more information on
+ * MX4J, please see
+ * <http://mx4j.sourceforge.net>.
+ */
diff --git a/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingService.java b/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingService.java
index ce37b46..c8f0ef7 100644
--- a/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingService.java
+++ b/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingService.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingServiceMBean.java b/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingServiceMBean.java
index 61c5057..33c7ec5 100644
--- a/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingServiceMBean.java
+++ b/mosgi.jmx.registry/src/main/java/org/apache/felix/mosgi/jmx/registry/mx4j/tools/naming/NamingServiceMBean.java
@@ -1,12 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.*
- *
- *
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/LICENCE-MX4J b/mosgi.jmx.rmiconnector/LICENCE-MX4J
new file mode 100644
index 0000000..ee5be60
--- /dev/null
+++ b/mosgi.jmx.rmiconnector/LICENCE-MX4J
@@ -0,0 +1,51 @@
+/* ====================================================================
+ * The MX4J License, Version 1.0
+ *
+ * Copyright (c) 2001 MX4J.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        MX4J project (http://mx4j.sourceforge.net)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "MX4J" and "mx4j" must not be used to endorse or promote
+ *    products derived from this software without prior written
+ *    permission. For written permission, please contact biorn_steedom@users.sourceforge.net
+ *
+ * 5. Products derived from this software may not be called "MX4J",
+ *    nor may "MX4J" appear in their name, without prior written
+ *    permission of Simone Bordet.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL CARLOS QUIROZ OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of MX4J.  For more information on
+ * MX4J, please see
+ * <http://mx4j.sourceforge.net>.
+ */
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/AbstractHeartBeat.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/AbstractHeartBeat.java
index fb7ce0f..c1e8cf1 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/AbstractHeartBeat.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/AbstractHeartBeat.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ClientProxy.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ClientProxy.java
index 76f39c3..9f7eacc 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ClientProxy.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ClientProxy.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionNotificationEmitter.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionNotificationEmitter.java
index 05a060d..f06d5c9 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionNotificationEmitter.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionNotificationEmitter.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionResolver.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionResolver.java
index 9fe6e6c..7298387 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionResolver.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ConnectionResolver.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/DefaultRemoteNotificationServerHandler.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/DefaultRemoteNotificationServerHandler.java
index bc772f6..6b4f1c9 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/DefaultRemoteNotificationServerHandler.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/DefaultRemoteNotificationServerHandler.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/HeartBeat.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/HeartBeat.java
index 62b9b6e..cb4c0fd 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/HeartBeat.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/HeartBeat.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteConstants.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteConstants.java
index 5715022..513496b 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteConstants.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteConstants.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteUtils.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteUtils.java
index 9ce05bd..5762cf0 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteUtils.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/MX4JRemoteUtils.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/NotificationTuple.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/NotificationTuple.java
index f54e779..5e33cb1 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/NotificationTuple.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/NotificationTuple.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ProviderFactory.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ProviderFactory.java
index b86ed25..bbbfc01 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ProviderFactory.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/ProviderFactory.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/RemoteNotificationServerHandler.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/RemoteNotificationServerHandler.java
index 11fd1a5..8e927ff 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/RemoteNotificationServerHandler.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/RemoteNotificationServerHandler.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIClientProvider.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIClientProvider.java
index d594dae..47905ae 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIClientProvider.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIClientProvider.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIServerProvider.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIServerProvider.java
index ef503b9..d9f52e9 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIServerProvider.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/RMIServerProvider.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
-  */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/rmi/ServerProvider.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/rmi/ServerProvider.java
index 4210f14..ffc4e0f 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/rmi/ServerProvider.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/provider/rmi/ServerProvider.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/resolver/rmi/RMIResolver.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/resolver/rmi/RMIResolver.java
index 28f0e52..edfc0e3 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/resolver/rmi/RMIResolver.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/resolver/rmi/RMIResolver.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientExceptionCatcher.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientExceptionCatcher.java
index 3ac5980..0524f26 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientExceptionCatcher.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientExceptionCatcher.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientInvoker.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientInvoker.java
index beddc13..6cef081 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientInvoker.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientInvoker.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientUnmarshaller.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientUnmarshaller.java
index 53bba89..5724011 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientUnmarshaller.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/ClientUnmarshaller.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionInvoker.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionInvoker.java
index c567920..1307ca6 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionInvoker.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionInvoker.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionProxy.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionProxy.java
index 8a571c0..10e04e3 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionProxy.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionProxy.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionSubjectInvoker.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionSubjectInvoker.java
index 068136c..ca4e001 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionSubjectInvoker.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIConnectionSubjectInvoker.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIHeartBeat.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIHeartBeat.java
index 19d84f6..5bb10b5 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIHeartBeat.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIHeartBeat.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
diff --git a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIMarshaller.java b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIMarshaller.java
index dfbf33f..8aae1da 100644
--- a/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIMarshaller.java
+++ b/mosgi.jmx.rmiconnector/src/main/java/org/apache/felix/mosgi/jmx/rmiconnector/mx4j/remote/rmi/RMIMarshaller.java
@@ -1,10 +1,3 @@
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
 /* 
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
