diff --git a/httplite/minimum/pom.xml b/httplite/minimum/pom.xml
index becda23..c5d3702 100644
--- a/httplite/minimum/pom.xml
+++ b/httplite/minimum/pom.xml
@@ -1,28 +1,21 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 	<parent>
-	    <groupId>org.apache.felix</groupId>
-	    <artifactId>felix-parent</artifactId>
-	    <version>2.1</version>
-	    <relativePath>../pom/pom.xml</relativePath>
- 	</parent>
+		<groupId>org.apache.felix</groupId>
+		<artifactId>felix-parent</artifactId>
+		<version>2.1</version>
+		<relativePath>../pom/pom.xml</relativePath>
+	</parent>
 	<modelVersion>4.0.0</modelVersion>
 	<packaging>bundle</packaging>
 	<name>Apache Felix Lightweight HTTP Server</name>
@@ -44,13 +37,13 @@
 			<groupId>javax.servlet</groupId>
 			<artifactId>servlet-api</artifactId>
 			<version>2.4</version>
-		</dependency>				
+		</dependency>
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
 			<version>3.8.1</version>
 			<scope>test</scope>
-		</dependency>	
+		</dependency>
 		<dependency>
 			<groupId>com.googlecode.pojosr</groupId>
 			<artifactId>de.kalpatec.pojosr.framework</artifactId>
@@ -68,6 +61,15 @@
 	<build>
 		<plugins>
 			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.3.2</version>
+				<configuration>
+					<source>1.3</source>
+					<target>1.3</target>
+				</configuration>
+			</plugin>
+			<plugin>
 				<groupId>org.apache.felix</groupId>
 				<artifactId>maven-bundle-plugin</artifactId>
 				<version>2.3.4</version>
@@ -75,7 +77,9 @@
 				<configuration>
 					<instructions>
 						<Export-Package />
-						<Private-Package>org.apache.felix.httplite.osgi, org.apache.felix.httplite.server, org.apache.felix.httplite.servlet</Private-Package>
+						<Private-Package>org.apache.felix.httplite.osgi,
+							org.apache.felix.httplite.server,
+							org.apache.felix.httplite.servlet</Private-Package>
 						<Export-Service>org.osgi.service.http.HttpService</Export-Service>
 						<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
 						<Bundle-Activator>${pom.artifactId}.osgi.Activator</Bundle-Activator>
@@ -88,9 +92,9 @@
 							*
 						</Import-Package>
 						<Import-Service>
-                            org.osgi.service.log.LogService;availability:=optional;multiple:=false
-                        </Import-Service>
-                        <Bundle-DocURL>http://felix.apache.org/site/apache-felix-light-http-service.html</Bundle-DocURL>
+							org.osgi.service.log.LogService;availability:=optional;multiple:=false
+						</Import-Service>
+						<Bundle-DocURL>http://felix.apache.org/site/apache-felix-light-http-service.html</Bundle-DocURL>
 					</instructions>
 				</configuration>
 			</plugin>
@@ -100,5 +104,5 @@
 		<connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/httplite</connection>
 		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/httplite</developerConnection>
 		<url>http://svn.apache.org/repos/asf/felix/trunk/httplite</url>
-	</scm>  
+	</scm>
 </project>
