diff --git a/src/main/java/org/codehaus/redback/components/apacheds/ApacheDs.java b/src/main/java/org/codehaus/redback/components/apacheds/ApacheDs.java
index ac512d0..c9826b4 100644
--- a/src/main/java/org/codehaus/redback/components/apacheds/ApacheDs.java
+++ b/src/main/java/org/codehaus/redback/components/apacheds/ApacheDs.java
@@ -1,5 +1,24 @@
 package org.codehaus.redback.components.apacheds;
 
+/*
+ * 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.
+ */
+
 import javax.naming.NamingException;
 import javax.naming.directory.InitialDirContext;
 import javax.naming.directory.Attributes;
diff --git a/src/main/java/org/codehaus/redback/components/apacheds/DefaultApacheDs.java b/src/main/java/org/codehaus/redback/components/apacheds/DefaultApacheDs.java
index 85cc3e0..1473b63 100644
--- a/src/main/java/org/codehaus/redback/components/apacheds/DefaultApacheDs.java
+++ b/src/main/java/org/codehaus/redback/components/apacheds/DefaultApacheDs.java
@@ -1,19 +1,22 @@
 package org.codehaus.redback.components.apacheds;
 
 /*
- * Copyright 2001-2007 The Codehaus.
+ * 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
  *
- * Licensed 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
  *
- *      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.
+ * 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.
  */
 
 import org.apache.directory.server.configuration.MutableServerStartupConfiguration;
diff --git a/src/main/java/org/codehaus/redback/components/apacheds/Partition.java b/src/main/java/org/codehaus/redback/components/apacheds/Partition.java
index 20a1a01..d5dac10 100644
--- a/src/main/java/org/codehaus/redback/components/apacheds/Partition.java
+++ b/src/main/java/org/codehaus/redback/components/apacheds/Partition.java
@@ -1,5 +1,24 @@
 package org.codehaus.redback.components.apacheds;
 
+/*
+ * 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.
+ */
+
 import javax.naming.directory.Attributes;
 import javax.naming.directory.BasicAttributes;
 import java.util.Set;
diff --git a/src/test/java/org/codehaus/redback/components/apacheds/ApacheDsTest.java b/src/test/java/org/codehaus/redback/components/apacheds/ApacheDsTest.java
index 014aee2..470055a 100644
--- a/src/test/java/org/codehaus/redback/components/apacheds/ApacheDsTest.java
+++ b/src/test/java/org/codehaus/redback/components/apacheds/ApacheDsTest.java
@@ -1,19 +1,22 @@
 package org.codehaus.redback.components.apacheds;
 
 /*
- * Copyright 2001-2007 The Codehaus.
+ * 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
  *
- * Licensed 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
  *
- *      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.
+ * 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.
  */
 
 import junit.framework.TestCase;
