[pkg-java] r15503 - in trunk/maven-debian-helper: . debian maven-build-nodocs maven-debian-helper maven-debian-plugin maven-packager-utils maven-packager-utils/src/main/java/org/debian/maven/packager maven-packager-utils/src/test/java/org/debian/maven/packager maven-packager-utils/src/test/resources maven-packager-utils/src/test/resources/plexus-compiler maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-api maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-manager maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-test maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-aspectj maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-csharp maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-eclipse maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-javac maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-jikes maven-packager-utils/src/test/resources/repository/org/codehaus/mojo/mojo-parent/debian maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.0.7 maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.x

Ludovic Claude ludovicc-guest at alioth.debian.org
Mon Dec 5 00:01:32 UTC 2011


Author: ludovicc-guest
Date: 2011-12-05 00:01:31 +0000 (Mon, 05 Dec 2011)
New Revision: 15503

Added:
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-api/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-api/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-manager/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-manager/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-test/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-test/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-aspectj/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-aspectj/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-csharp/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-csharp/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-eclipse/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-eclipse/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-javac/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-javac/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-jikes/
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-jikes/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/pom.xml
Modified:
   trunk/maven-debian-helper/debian/build.properties
   trunk/maven-debian-helper/debian/changelog
   trunk/maven-debian-helper/debian/control
   trunk/maven-debian-helper/debian/rules
   trunk/maven-debian-helper/maven-build-nodocs/pom.xml
   trunk/maven-debian-helper/maven-debian-helper/pom.xml
   trunk/maven-debian-helper/maven-debian-plugin/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/pom.xml
   trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesMojo.java
   trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java
   trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/buildhelper-maven-plugin.rules
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/mojo/mojo-parent/debian/mojo-parent-debian.pom
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
   trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.x/plexus-2.x.pom
   trunk/maven-debian-helper/pom.xml
Log:
* Fix failing tests in DependenciesSolverTest
* Run unit tests during the build,
* d/control: add B-D on libcommons-io-java as it's used by the junit tests.

Modified: trunk/maven-debian-helper/debian/build.properties
===================================================================
--- trunk/maven-debian-helper/debian/build.properties	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/debian/build.properties	2011-12-05 00:01:31 UTC (rev 15503)
@@ -1,5 +1,5 @@
 build.directory=target
 build.javaVersion=1.5
 javadoc.dir=target/api
-maven.test.skip=true
+#maven.test.skip=true
 

Modified: trunk/maven-debian-helper/debian/changelog
===================================================================
--- trunk/maven-debian-helper/debian/changelog	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/debian/changelog	2011-12-05 00:01:31 UTC (rev 15503)
@@ -1,4 +1,4 @@
-maven-debian-helper (1.4.6) UNRELEASED; urgency=low
+maven-debian-helper (1.5) UNRELEASED; urgency=low
 
   * Install jars in /usr/share/java (Closes: #636660)
   * Now requires Java 1.5 or better to compile and run.
@@ -8,6 +8,9 @@
   * mh_make: clean up Debian emails of the form My Name<my.name at provider.com>
     (Closes: #638788)
   * mh_make: fix description in generated maven.rules (Closes: #639637)
+  * Fix failing tests in DependenciesSolverTest
+  * Run unit tests during the build,
+  * d/control: add B-D on libcommons-io-java as it's used by the junit tests.
 
  -- Ludovic Claude <ludovic.claude at laposte.net>  Fri, 28 Oct 2011 16:07:26 +0200
 

Modified: trunk/maven-debian-helper/debian/control
===================================================================
--- trunk/maven-debian-helper/debian/control	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/debian/control	2011-12-05 00:01:31 UTC (rev 15503)
@@ -4,9 +4,9 @@
 Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
 Uploaders: Torsten Werner <twerner at debian.org>, Ludovic Claude <ludovic.claude at laposte.net>,
  Michael Koch <konqueror at gmx.de>, Damien Raude-Morvan <drazzib at debian.org>
-Build-Depends: cdbs, debhelper (>= 7), default-jdk, maven-ant-helper (>> 6.7), ant-optional, help2man
-Build-Depends-Indep: maven-repo-helper (>= 1.6), junit, libmaven-plugin-tools-java,
- libplexus-velocity-java
+Build-Depends: cdbs, debhelper (>= 7), default-jdk, maven-ant-helper (>= 7.0), ant-optional, help2man
+Build-Depends-Indep: maven-repo-helper (>= 1.7.1), junit, libmaven-plugin-tools-java,
+ libplexus-velocity-java, libcommons-io-java
 Standards-Version: 3.9.2
 Vcs-Svn: svn://svn.debian.org/svn/pkg-java/trunk/maven-debian-helper
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-java/trunk/maven-debian-helper/

Modified: trunk/maven-debian-helper/debian/rules
===================================================================
--- trunk/maven-debian-helper/debian/rules	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/debian/rules	2011-12-05 00:01:31 UTC (rev 15503)
@@ -6,7 +6,7 @@
 PACKAGE              := $(DEB_SOURCE_PACKAGE)
 VERSION              := $(shell echo ${DEB_UPSTREAM_VERSION} | sed -r 's/([0-9\.]+).*/\1/')
 JAVA_HOME            := /usr/lib/jvm/default-java
-DEB_JARS             := ant-nodeps classworlds maven-core maven-artifact maven-artifact-manager maven-model \
+DEB_JARS             := ant-junit junit commons-io classworlds maven-core maven-artifact maven-artifact-manager maven-model \
  maven-compat maven-plugin-api maven-project maven-scm-api velocity file-management plexus-utils \
  plexus-container-default-alpha maven-repo-helper
 DEB_ANT_BUILD_TARGET := package #javadoc

Modified: trunk/maven-debian-helper/maven-build-nodocs/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-build-nodocs/pom.xml	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-build-nodocs/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.debian.maven</groupId>
         <artifactId>maven-debian</artifactId>
-        <version>1.4</version>
+        <version>1.5</version>
     </parent>
 
     <artifactId>maven-build-nodocs</artifactId>

Modified: trunk/maven-debian-helper/maven-debian-helper/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-debian-helper/pom.xml	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-debian-helper/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.debian.maven</groupId>
         <artifactId>maven-debian</artifactId>
-        <version>1.4</version>
+        <version>1.5</version>
     </parent>
 
     <artifactId>maven-debian-helper</artifactId>
@@ -16,7 +16,6 @@
         <dependency>
             <groupId>classworlds</groupId>
             <artifactId>classworlds</artifactId>
-            <version>1.1</version>
         </dependency>
     </dependencies>
 </project>

Modified: trunk/maven-debian-helper/maven-debian-plugin/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-debian-plugin/pom.xml	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-debian-plugin/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -6,7 +6,7 @@
     <parent>
         <artifactId>maven-debian</artifactId>
         <groupId>org.debian.maven</groupId>
-        <version>1.4</version>
+        <version>1.5</version>
     </parent>
 
     <artifactId>maven-debian-plugin</artifactId>

Modified: trunk/maven-debian-helper/maven-packager-utils/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/pom.xml	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -6,7 +6,7 @@
     <parent>
         <artifactId>maven-debian</artifactId>
         <groupId>org.debian.maven</groupId>
-        <version>1.4</version>
+        <version>1.5</version>
     </parent>
 
     <artifactId>maven-packager-utils</artifactId>
@@ -17,37 +17,31 @@
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-plugin-api</artifactId>
-            <version>2.2.1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-artifact</artifactId>
-            <version>2.2.1</version>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>3.8.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-project</artifactId>
-            <version>2.2.1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.velocity</groupId>
             <artifactId>velocity</artifactId>
-            <version>1.6.2</version>
         </dependency>
         <dependency>
             <groupId>org.debian.maven</groupId>
             <artifactId>maven-repo-helper</artifactId>
         </dependency>
         <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
-            <version>1.4</version>
             <scope>test</scope>
         </dependency>
     </dependencies>

Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesMojo.java
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesMojo.java	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesMojo.java	2011-12-05 00:01:31 UTC (rev 15503)
@@ -113,6 +113,7 @@
         DependenciesSolver solver = new DependenciesSolver();
 
         File basedir = project.getBasedir();
+        // TODO: use the list of project defined here for some initialisation step, I've forgotten what to do...
         List projects = new ArrayList();
         projects.add(project.getFile());
         if (collectedProjects != null) {

Modified: trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/src/main/java/org/debian/maven/packager/DependenciesSolver.java	2011-12-05 00:01:31 UTC (rev 15503)
@@ -156,16 +156,16 @@
     protected File mavenRepo = new File("/usr/share/maven-repo");
     protected boolean exploreProjects;
     private Repository repository;
-    private List issues = new ArrayList();
-    private List projectPoms = new ArrayList();
-    private List toResolve = new ArrayList();
-    private Set knownProjectDependencies = new TreeSet();
-    private Set ignoredDependencies = new TreeSet();
-    private Set notIgnoredDependencies = new TreeSet();
-    private Set compileDepends = new TreeSet();
-    private Set testDepends = new TreeSet();
-    private Set runtimeDepends = new TreeSet();
-    private Set optionalDepends = new TreeSet();
+    private List<String> issues = new ArrayList<String>();
+    private List<Dependency> projectPoms = new ArrayList<Dependency>();
+    private List<ToResolve> toResolve = new ArrayList<ToResolve>();
+    private Set<Dependency> knownProjectDependencies = new TreeSet<Dependency>();
+    private Set<Dependency> ignoredDependencies = new TreeSet<Dependency>();
+    private Set<Dependency> notIgnoredDependencies = new TreeSet<Dependency>();
+    private Set<String> compileDepends = new TreeSet<String>();
+    private Set<String> testDepends = new TreeSet<String>();
+    private Set<String> runtimeDepends = new TreeSet<String>();
+    private Set<String> optionalDepends = new TreeSet<String>();
     private DependencyRuleSet cleanIgnoreRules = new DependencyRuleSet("Ignore rules to be applied during the Maven clean phase",
             new File("debian/maven.cleanIgnoreRules"));
     private boolean offline;
@@ -175,17 +175,18 @@
     private boolean askedToFilterModules = false;
     private boolean filterModules = false;
     private boolean verbose = false;
-    private Map pomInfoCache = new HashMap();
+    private Map<String, POMInfo> pomInfoCache = new HashMap<String, POMInfo>();
     // Keep the previous selected rule for a given version 
-    private Map versionToRules = new HashMap();
+    private Map<String, Rule> versionToRules = new HashMap<String, Rule>();
     // Keep the list of known files and their package
-    private Map filesInPackages = new HashMap();
+    private Map<File, String> filesInPackages = new HashMap<File, String>();
     // Keep the list of packages and dependencies
-    private Map versionedPackagesAndDependencies = new HashMap();
-    private List defaultRules = new ArrayList();
+    private Map<String, Dependency> versionedPackagesAndDependencies = new HashMap<String, Dependency>();
+    private List<Rule> defaultRules = new ArrayList<Rule>();
 
     public DependenciesSolver() {
         pomTransformer.setVerbose(true);
+        pomTransformer.setFixVersions(false);
         pomTransformer.getRules().setWarnRulesFileNotFound(false);
         pomTransformer.getRules().setDescription(readResource("maven.rules.description"));
         pomTransformer.getIgnoreRules().setDescription(readResource("maven.ignoreRules.description"));
@@ -254,11 +255,11 @@
     }
 
     private boolean containsPlugin(String[][] pluginDefinitions, Dependency plugin) {
-        for (int i = 0; i < pluginDefinitions.length; i++) {
-            if (!plugin.getGroupId().equals(pluginDefinitions[i][0])) {
+        for (String[] pluginDefinition : pluginDefinitions) {
+            if (!plugin.getGroupId().equals(pluginDefinition[0])) {
                 continue;
             }
-            if (plugin.getArtifactId().equals(pluginDefinitions[i][1])) {
+            if (plugin.getArtifactId().equals(pluginDefinition[1])) {
                 return true;
             }
         }
@@ -275,8 +276,7 @@
 
     private boolean isDefaultMavenPlugin(Dependency dependency) {
         if (getRepository() != null && getRepository().getSuperPOM() != null) {
-            for (Iterator i = getRepository().getSuperPOM().getPluginManagement().iterator(); i.hasNext();) {
-                Dependency defaultPlugin = (Dependency) i.next();
+            for (Dependency defaultPlugin : getRepository().getSuperPOM().getPluginManagement()) {
                 if (defaultPlugin.equalsIgnoreVersion(dependency)) {
                     return true;
                 }
@@ -372,16 +372,10 @@
     }
 
     public void saveMavenRules() {
-        // Don't save implicit rules
-        pomTransformer.getRules().remove(DependencyRule.TO_DEBIAN_VERSION_RULE);
-        pomTransformer.getRules().remove(DependencyRule.MAVEN_PLUGINS_KEEP_VERSION_RULE);
         pomTransformer.getRules().save();
     }
 
     public void saveMavenPublishedRules() {
-        // Don't save implicit rules
-        pomTransformer.getPublishedRules().remove(DependencyRule.TO_DEBIAN_VERSION_RULE);
-        pomTransformer.getPublishedRules().remove(DependencyRule.MAVEN_PLUGINS_KEEP_VERSION_RULE);
         pomTransformer.getPublishedRules().save();
     }
 
@@ -409,11 +403,10 @@
         depVars.put("maven.OptionalDepends", toString(optionalDepends));
         if (generateJavadoc) {
             System.out.println("Checking dependencies for documentation packages...");
-            Set docRuntimeDepends = new TreeSet();
+            Set<String> docRuntimeDepends = new TreeSet<String>();
             docRuntimeDepends.add("default-jdk-doc");
-            for (Iterator i = runtimeDepends.iterator(); i.hasNext();) {
-                String dependency = (String) i.next();
-                Dependency runtimeDependency = (Dependency) versionedPackagesAndDependencies.get(dependency);
+            for (String dependency : runtimeDepends) {
+                Dependency runtimeDependency = versionedPackagesAndDependencies.get(dependency);
                 if (dependency.indexOf(' ') > 0) {
                     dependency = dependency.substring(0, dependency.indexOf(' '));
                 }
@@ -425,10 +418,9 @@
                     docRuntimeDepends.add(docPkg);
                 }
             }
-            Set docOptionalDepends = new TreeSet();
-            for (Iterator i = optionalDepends.iterator(); i.hasNext();) {
-                String dependency = (String) i.next();
-                Dependency optionalDependency = (Dependency) versionedPackagesAndDependencies.get(dependency);
+            Set<String> docOptionalDepends = new TreeSet<String>();
+            for (String dependency : optionalDepends) {
+                Dependency optionalDependency = versionedPackagesAndDependencies.get(dependency);
                 if (dependency.indexOf(' ') > 0) {
                     dependency = dependency.substring(0, dependency.indexOf(' '));
                 }
@@ -452,16 +444,15 @@
             BufferedWriter out = new BufferedWriter(fstream);
             out.write("#List of dependencies for " + packageName + ", generated for use by debian/control");
             out.write("\n");
-            Set propertiesNames = depVars.stringPropertyNames();
+            Set<String> propertiesNames = depVars.stringPropertyNames();
             if (propertiesNames != null) {
-        	for (Iterator i = propertiesNames.iterator(); i.hasNext();) {
-        	   String propName = (String) i.next();
-        	   StringBuffer sb = new StringBuffer();
-        	   sb.append(propName);
-        	   sb.append("=");
-        	   sb.append(depVars.get(propName));
-        	   sb.append("\n");
-        	   out.write(sb.toString());
+                for (String propName : propertiesNames) {
+                    StringBuffer sb = new StringBuffer();
+                    sb.append(propName);
+                    sb.append("=");
+                    sb.append(depVars.get(propName));
+                    sb.append("\n");
+                    out.write(sb.toString());
                 }
             }
             out.close();
@@ -530,7 +521,7 @@
         this.packageType = packageType;
     }
 
-    public List getIssues() {
+    public List<String> getIssues() {
         return issues;
     }
 
@@ -586,8 +577,7 @@
 
         if (!issues.isEmpty()) {
             System.err.println("ERROR:");
-            for (Iterator i = issues.iterator(); i.hasNext();) {
-                String issue = (String) i.next();
+            for (String issue : issues) {
                 System.err.println(issue);
             }
             System.err.println("--------");
@@ -601,23 +591,32 @@
         }
 
         String pomRelPath = projectPom.getAbsolutePath().substring(baseDir.getAbsolutePath().length() + 1);
+        System.out.println("Analysing " + pomRelPath + "...");
 
         try {
             POMInfo pom = getPOM(projectPom);
-            pom.setProperties(new HashMap());
+            pom.setProperties(new HashMap<String, String>());
             pom.getProperties().put("debian.package", getPackageName());
 
             if (getPOMOptions(projectPom).isNoParent()) {
                 pom.setParent(null);
-            } else if (pom.getParent() != null) {
+            } else if (pom.getParent() != null && !pom.getParent().isSuperPom()) {
                 boolean oldNoParent = getPOMOptions(projectPom).isNoParent();
                 // Don't mark the parent dependency as 'build time' dependency because once installed,
                 // the POM for this project will always need the parent POM to be available
-                pom.setParent(resolveDependency(pom.getParent(), projectPom, false, false, false, true));
+                Dependency parent = resolveDependency(pom.getParent(), projectPom, false, false, false, true);
+                // The user may have set or unset the --no-parent option, if so we update the POM to include or not the
+                // parent according to the user's choice
                 if (getPOMOptions(projectPom).isNoParent() != oldNoParent) {
                     resetPOM(projectPom);
                     pom = getPOM(projectPom);
                 }
+                pom.setParent(parent);
+                // If the parent is found, search the parent POM and update current POM 
+                if (parent != null) {
+                    POMInfo parentPOM = getRepository().searchMatchingPOM(parent);
+                    pom.setParentPOM(parentPOM);
+                }
             }
 
             getRepository().registerPom(projectPom, pom);
@@ -664,11 +663,11 @@
                 }
             }
 
+            projectPoms.add(pom.getThisPom());
+            
             // Previous rule from another run
             boolean explicitlyMentionedInRules = false;
-            for (Iterator i = pomTransformer.getRules().findMatchingRules(pom.getThisPom()).iterator();
-                    i.hasNext(); ) {
-                DependencyRule previousRule = (DependencyRule) i.next();
+            for (DependencyRule previousRule : pomTransformer.getRules().findMatchingRules(pom.getThisPom())) {
                 if (!previousRule.equals(DependencyRule.TO_DEBIAN_VERSION_RULE) &&
                         !previousRule.equals(DependencyRule.MAVEN_PLUGINS_KEEP_VERSION_RULE) &&
                         previousRule.matches(pom.getThisPom())) {
@@ -682,7 +681,7 @@
                 System.out.println("Version of " + pom.getThisPom().getGroupId() + ":"
                     + pom.getThisPom().getArtifactId() + " is " + version);
                 System.out.println("Choose how it will be transformed:");
-                List choices = new ArrayList();
+                List<Rule> choices = new ArrayList<Rule>();
 
                 if (versionToRules.containsKey(version)) {
                     choices.add(versionToRules.get(version));
@@ -700,16 +699,15 @@
                         choices.add(mainVersionRule);
                     }
                 }
-                for (Iterator i = defaultRules.iterator(); i.hasNext(); ) {
-                    Rule rule = (Rule) i.next();
+                for (Rule rule : defaultRules) {
                     if (!choices.contains(rule)) {
                         choices.add(rule);
                     }
                 }
 
                 int count = 1;
-                for (Iterator i = choices.iterator(); i.hasNext(); count++) {
-                    Rule rule = (Rule) i.next();
+                for (Iterator<Rule> i = choices.iterator(); i.hasNext(); count++) {
+                    Rule rule = i.next();
                     if (count == 1) {
                         System.out.print("[1]");
                     } else {
@@ -725,7 +723,7 @@
                 } catch (Exception ignore) {
                 }
 
-                Rule selectedRule = (Rule) choices.get(choice - 1);
+                Rule selectedRule = choices.get(choice - 1);
                 versionToRules.put(version, selectedRule);
                 if (selectedRule.getPattern().equals("CUSTOM")) {
                     System.out.println("Enter the pattern for your custom rule (in the form s/regex/replace/)");
@@ -739,21 +737,33 @@
                 String dependencyRule = pom.getThisPom().getGroupId() + " " + pom.getThisPom().getArtifactId()
                         + " " + pom.getThisPom().getType() + " " + selectedRule.toString();
                 pomTransformer.getRules().add(new DependencyRule(dependencyRule));
+
+                if ("bundle".equals(pom.getThisPom().getType())) {
+                    System.out.println(pom.getThisPom().getGroupId() + ":" + pom.getThisPom().getArtifactId() +
+                            " is a bundle.");
+                    System.out.println("Inform mh_make that dependencies of type jar which may match this library should be transformed into bundles automatically?");
+                    System.out.print("[y]/n > ");
+                    s = readLine().toLowerCase();
+                    boolean transformJarsIntoBundle = !s.startsWith("n");
+                    if (transformJarsIntoBundle) {
+                        String transformBundleRule = pom.getThisPom().getGroupId() + " " + pom.getThisPom().getArtifactId()
+                                + " s/jar/bundle/ " + selectedRule.toString();
+                        pomTransformer.getPublishedRules().add(new DependencyRule(transformBundleRule));
+                    }
+                }
             }
 
-            if (pom.getParent() != null) {
+            if (pom.getParent() != null && !pom.getParent().isSuperPom()) {
                 POMInfo parentPom = getRepository().searchMatchingPOM(pom.getParent());
                 if (parentPom == null || parentPom.equals(getRepository().getSuperPOM())) {
                     getPOMOptions(projectPom).setNoParent(true);
                 }
                 if (!baseDir.equals(projectPom.getParentFile())) {
-//                    System.out.println("Checking the parent dependency in the sub project " + projectPom);
-                    resolveDependenciesLater(projectPom, POMInfo.PARENT, false, false, false);
+                    System.out.println("Checking the parent dependency in the sub project " + pomRelPath);
+                    resolveDependency(pom.getParent(), projectPom, false, false, false, true);
                 }
             }
 
-            projectPoms.add(pom.getThisPom());
-
             resolveDependenciesLater(projectPom, POMInfo.DEPENDENCIES, false, false, false);
             resolveDependenciesLater(projectPom, POMInfo.DEPENDENCY_MANAGEMENT_LIST, false, false, true);
             resolveDependenciesLater(projectPom, POMInfo.PLUGINS, true, true, false);
@@ -770,20 +780,20 @@
                     filterModules = s.startsWith("n");
                     askedToFilterModules = true;
                 }
-                for (Iterator i = pom.getModules().iterator(); i.hasNext();) {
-                    String module = (String) i.next();
+                for (String module : pom.getModules()) {
                     File modulePom = new File(projectPom.getParent(), module + "/pom.xml");
                     resolveDependencies(modulePom);
                 }
             }
         } catch (Exception ex) {
             log.log(Level.SEVERE, "Error while resolving " + projectPom + ": " + ex.getMessage());
+            log.log(Level.SEVERE, "", ex);
             System.exit(1);
         }
     }
 
     private POMInfo getPOM(File projectPom) throws XMLStreamException, IOException {
-        POMInfo info = (POMInfo) pomInfoCache.get(projectPom.getAbsolutePath());
+        POMInfo info = pomInfoCache.get(projectPom.getAbsolutePath());
         if (info != null) {
             return info;
         }
@@ -821,8 +831,8 @@
     }
 
     private void resolveDependenciesNow() {
-        for (Iterator i = toResolve.iterator(); i.hasNext();) {
-            ToResolve tr = (ToResolve) i.next();
+        for (Iterator<ToResolve> i = toResolve.iterator(); i.hasNext();) {
+            ToResolve tr = i.next();
             tr.resolve();
             i.remove();
         }
@@ -833,30 +843,33 @@
     }
 
     private void resolveDependencies(File sourcePom, String listType, boolean buildTime, boolean mavenExtension, boolean management) throws Exception {
-        List poms = getPOM(sourcePom).getAllDependencies(listType);
+        POMInfo pom = getPOM(sourcePom);
+        List<Dependency> dependenciesByType = pom.getAllDependencies(listType);
 
-        for (Iterator i = poms.iterator(); i.hasNext();) {
-            Dependency dependency = (Dependency) i.next();
+        for (Dependency dependency : dependenciesByType) {
             resolveDependency(dependency, sourcePom, buildTime, mavenExtension, management);
         }
     }
 
-    private Dependency resolveParentDependency(Dependency dependency, File sourcePom, boolean buildTime) throws DependencyNotFoundException {
-        return resolveDependency(dependency, sourcePom, buildTime, false, false);
-    }
-
     public Dependency resolveDependency(Dependency dependency, File sourcePom, boolean buildTime, boolean mavenExtension, boolean management) throws DependencyNotFoundException {
         return resolveDependency(dependency, sourcePom, buildTime, mavenExtension, management, false);
     }
 
     private Dependency resolveDependency(Dependency dependency, File sourcePom, boolean buildTime, boolean mavenExtension, boolean management, boolean resolvingParent) throws DependencyNotFoundException {
 
+        if (containsDependencyIgnoreVersion(knownProjectDependencies, dependency)) {
+            return dependency;                 
+        }
+
         if (containsDependencyIgnoreVersion(ignoredDependencies, dependency) ||
-            containsDependencyIgnoreVersion(knownProjectDependencies, dependency) ||
                 (management && isDefaultMavenPlugin(dependency))) {
             return null;
         }
 
+        if (resolvingParent && dependency.isSuperPom()) {
+            return dependency;
+        }
+
         String sourcePomLoc = sourcePom.getAbsolutePath();
         String baseDirPath = baseDir.getAbsolutePath();
         sourcePomLoc = sourcePomLoc.substring(baseDirPath.length() + 1, sourcePomLoc.length());
@@ -924,7 +937,7 @@
             // as this may be useful later - but never fail if the dependency is not found.
             POMInfo pom = getRepository().searchMatchingPOM(dependency);
             if (pom != null) {
-                String mavenRules = (String) pom.getProperties().get("debian.mavenRules");
+                String mavenRules = pom.getProperties().get("debian.mavenRules");
                 if (mavenRules != null) {
                     StringTokenizer st = new StringTokenizer(mavenRules, ",");
                     while (st.hasMoreTokens()) {
@@ -945,19 +958,26 @@
 
         POMInfo pom = getRepository().searchMatchingPOM(dependency);
         try {
-            if (pom == null && dependency.getVersion() == null && getPOM(sourcePom).getParent() != null) {
-                String version = getPOM(sourcePom).getVersionFromManagementDependency(dependency);
+            if (pom == null && dependency.getVersion() == null) {
+                POMInfo containerPom = getPOM(sourcePom);
+                String version = containerPom.getVersionFromManagementDependency(dependency);
                 dependency.setVersion(version);
-                pom = getRepository().searchMatchingPOM(dependency);
+                if (version != null) {
+                    pom = getRepository().searchMatchingPOM(dependency);
+                } else {
+                    System.out.println("In " + sourcePomLoc + ", cannot find the version for dependency " + dependency + " from this POM or its parent POMs");
+                    if (getPOMOptions(sourcePom).isNoParent()) {
+                        System.out.println("[warning] Option --no-parent has been set for POM file " + sourcePomLoc + ", maybe it was not a good idea and you should first package the parent POM " + containerPom.getParent());
+                    }
+                }
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
         if (pom == null && dependency.getVersion() != null) {
-            List poms = getRepository().searchMatchingPOMsIgnoreVersion(dependency);
-            for (Iterator i = poms.iterator(); i.hasNext(); ) {
-                POMInfo potentialPom = (POMInfo) i.next();
-                String mavenRules = (String) potentialPom.getProperties().get("debian.mavenRules");
+            List<POMInfo> poms = getRepository().searchMatchingPOMsIgnoreVersion(dependency);
+            for (POMInfo potentialPom : poms) {
+                String mavenRules = potentialPom.getProperties().get("debian.mavenRules");
                 if (mavenRules != null) {
                     StringTokenizer st = new StringTokenizer(mavenRules, ",");
                     while (st.hasMoreTokens()) {
@@ -977,6 +997,8 @@
                 dependency.setVersion(version + ".0");
                 pom = getRepository().searchMatchingPOM(dependency);
                 if (pom != null) {
+                    System.out.println("Use best guess version: " + dependency.getVersion() + " for "
+                      + dependency.getGroupId() + ":" + dependency.getArtifactId());
                     break;
                 }
                 dependency.setVersion(null);
@@ -984,102 +1006,138 @@
         }
 
         if (pom == null && "maven-plugin".equals(dependency.getType())) {
-            List matchingPoms = getRepository().searchMatchingPOMsIgnoreVersion(dependency);
+            List<POMInfo> matchingPoms = getRepository().searchMatchingPOMsIgnoreVersion(dependency);
             if (matchingPoms.size() > 1) {
                 issues.add(sourcePomLoc + ": More than one version matches the plugin " + dependency.getGroupId() + ":"
                         + dependency.getArtifactId() + ":" + dependency.getVersion());
             }
             if (!matchingPoms.isEmpty()) {
-                pom = (POMInfo) matchingPoms.get(0);
+                pom = matchingPoms.get(0);
                 // Don't add a rule to force the version of a Maven plugin, it's now done
                 // automatically at build time
             }
         }
+
+        // Ignore fast cases
+        if (pom == null) {
+            if (management) {
+                if (verbose) {
+                    System.out.println("[skipped dependency or plugin management]");
+                }
+                return null;
+            } else if ("maven-plugin".equals(dependency.getType()) && packageType.equals("ant")) {
+                if (verbose) {
+                    System.out.println("[skipped - not used in Ant build]");
+                }
+                return null;
+            }
+        }
         
-        // In case, we didn't found anything for "jar" packaging type, just check for a "bundle" type inside repository.
+        // In case we didn't find anything for "jar" packaging type, just check for a "bundle" type inside repository.
+        // Some jars have been upgraded to OSGi bundles as OSGi metadata has been added to them.
+        //
         // drazzib: I'm not sure this is really the right way to fix that (ie. maybe we should install "bundle" artifacts
         // directly with "jar" type inside Debian ?).
+        //
+        // ludovicc: a complex issue, I believe that libraries which evolve from a jar type to a bundle type should
+        // inform packagers with a rule of the form
+        // '<groupId> <artifactId> s/jar/bundle/ <versionRule>'
+        // in other words, the packager of the library should add a published rule which will transform matching
+        // libraries from jar type into bundle types, and apply as well the version substitution (for example to 2.x)
+        // for Debian.
+        //
         if (pom == null && "jar".equals(dependency.getType())) {
             if (verbose) {
-                System.out.println("[check with bundle dependency type]");
+                System.out.println("[check dependency with bundle type]");
             }
-            dependency.setType("bundle");
-            pom = getRepository().searchMatchingPOM(dependency);
+            Dependency bundleDependency = new Dependency(dependency);
+            bundleDependency.setType("bundle");
+            pom = getRepository().searchMatchingPOM(bundleDependency);
+            if (pom != null) {
+                dependency = bundleDependency;
+                for (DependencyRule rule: pom.getPublishedRules()) {
+                    if (rule.matches(dependency)) {
+                        Dependency transformed = rule.apply(dependency);
+                        if (transformed.getGroupId().equals(dependency.getGroupId())
+                                && transformed.getArtifactId().equals(dependency.getArtifactId())
+                                && transformed.getType().equals(dependency.getType())) {
+                            String newRule = pom.getThisPom().getGroupId() + " " + pom.getThisPom().getArtifactId()
+                                    + " s/jar/bundle/ " + rule.getVersionRule().toString();
+                            pomTransformer.getRules().add(new DependencyRule(newRule));
+                        }
+                    }
+                }
+            }
         }
 
         if (pom == null) {
-            if (management) {
+            if (!ignoreDependency) {
+                if (resolvingParent) {
+                    boolean noParent = askIgnoreDependency(sourcePomLoc, dependency,
+                            "The parent POM cannot be found in the Maven repository for Debian. Ignore it?");
+                    getPOMOptions(sourcePom).setNoParent(noParent);
+                    if (noParent) {
+                        if (verbose) {
+                            System.out.println("[no-parent]");
+                        }
+                        return null;
+                    }
+                } else if (isDocumentationOrReportPlugin(dependency)) {
+                    ignoreDependency = askIgnoreDependency(sourcePomLoc, dependency,
+                            "This documentation or report plugin cannot be found in the Maven repository for Debian. Ignore this plugin?");
+                } else if ("maven-plugin".equals(dependency.getType())) {
+                    ignoreDependency = askIgnoreDependency(sourcePomLoc, dependency, "This plugin cannot be found in the Debian Maven repository. Ignore this plugin?", false);
+                    if (!ignoreDependency) {
+                        issues.add(sourcePomLoc + ": Plugin is not packaged in the Maven repository for Debian: " + dependency.getGroupId() + ":"
+                                + dependency.getArtifactId() + ":" + dependency.getVersion());
+                    }
+                } else {
+                    ignoreDependency = askIgnoreDependency(sourcePomLoc, dependency, "This dependency cannot be found in the Debian Maven repository. Ignore this dependency?", false);
+                    if (!ignoreDependency) {
+                        issues.add(sourcePomLoc + ": Dependency is not packaged in the Maven repository for Debian: " + dependency.getGroupId() + ":"
+                                + dependency.getArtifactId() + ":" + dependency.getVersion());
+                    }
+                }
+            }
+            if (ignoreDependency) {
+                ignoredDependencies.add(dependency);
+                String ruleDef = dependency.getGroupId() + " " + dependency.getArtifactId() + " * *";
+                pomTransformer.getIgnoreRules().add(new DependencyRule(ruleDef));
                 if (verbose) {
-                    System.out.println("[skipped dependency or plugin management]");
+                    System.out.println("[ignored]");
                 }
                 return null;
-            } else if ("maven-plugin".equals(dependency.getType()) && packageType.equals("ant")) {
-                    if (verbose) {
-                        System.out.println("[skipped - not used in Ant build]");
-                    }
-                    return null;
             } else {
-                if (!ignoreDependency) {
-                    if (resolvingParent) {
-                        boolean noParent = askIgnoreDependency(sourcePomLoc, dependency,
-                                "The parent POM cannot be found in the Maven repository for Debian. Ignore it?");
-                        getPOMOptions(sourcePom).setNoParent(noParent);
-                        if (noParent) {
-                            if (verbose) {
-                                System.out.println("[no-parent]");
-                            }
-                            return null;
-                        }
-                    } else if (isDocumentationOrReportPlugin(dependency)) {
-                        ignoreDependency = askIgnoreDependency(sourcePomLoc, dependency,
-                                "This documentation or report plugin cannot be found in the Maven repository for Debian. Ignore this plugin?");
-                    } else if ("maven-plugin".equals(dependency.getType())) {
-                        ignoreDependency = askIgnoreDependency(sourcePomLoc, dependency, "This plugin cannot be found in the Debian Maven repository. Ignore this plugin?", false);
-                        if (!ignoreDependency) {
-                            issues.add(sourcePomLoc + ": Plugin is not packaged in the Maven repository for Debian: " + dependency.getGroupId() + ":"
-                                    + dependency.getArtifactId() + ":" + dependency.getVersion());
-                        }
-                    } else {
-                        ignoreDependency = askIgnoreDependency(sourcePomLoc, dependency, "This dependency cannot be found in the Debian Maven repository. Ignore this dependency?", false);
-                        if (!ignoreDependency) {
-                            issues.add(sourcePomLoc + ": Dependency is not packaged in the Maven repository for Debian: " + dependency.getGroupId() + ":"
-                                    + dependency.getArtifactId() + ":" + dependency.getVersion());
-                        }
-                    }
-                }
-                if (ignoreDependency) {
-                    ignoredDependencies.add(dependency);
-                    String ruleDef = dependency.getGroupId() + " " + dependency.getArtifactId() + " * *";
-                    pomTransformer.getIgnoreRules().add(new DependencyRule(ruleDef));
-                    if (verbose) {
-                        System.out.println("[ignored]");
-                    }
-                    return null;
-                } else {
-                    String pkg = searchPkg(new File("/usr/share/maven-repo/"
+                String pkg = searchPkg(new File("/usr/share/maven-repo/"
                         + dependency.getGroupId().replace('.', '/')
                         + "/" + dependency.getArtifactId()));
-                    if (pkg != null) {
-                        System.out.println("Please install the missing dependency using");
+                if (pkg != null) {
+                    String installedVersion = getPackageVersion(pkg, true);
+                    if (installedVersion != null) {
+                        System.out.println("[error] Package " + pkg + " (" + installedVersion + ") is already installed and contains a possible match," );
+                        System.out.println("but I cannot resolve library " + dependency + " in it.");
+                        System.out.println("[error] Please check manually that the library is up to date, otherwise it may be necessary to package version "
+                                + dependency.getVersion() + " in Debian.");
+                    } else {
+                        System.out.println("[warning] Please install the missing dependency with this command:");
                         System.out.println("  sudo apt-get install " + pkg);
                     }
-                    if (interactive) {
-                        System.out.println("Try again to resolve the dependency?");
-                        System.out.print("[y]/n > ");
-                        String s = readLine().trim().toLowerCase();
-                        if (!s.startsWith("n")) {
-                            System.out.println("Rescanning /usr/share/maven-repo...");
-                            pomTransformer.getRepository().scan();
-                            return resolveDependency(dependency, sourcePom, buildTime, mavenExtension, management);
-                        } 
+                }
+                if (interactive) {
+                    System.out.println("Try again to resolve the dependency?");
+                    System.out.print("[y]/n > ");
+                    String s = readLine().trim().toLowerCase();
+                    if (!s.startsWith("n")) {
+                        System.out.println("Rescanning /usr/share/maven-repo...");
+                        pomTransformer.getRepository().scan();
+                        return resolveDependency(dependency, sourcePom, buildTime, mavenExtension, management);
                     }
-                    if (verbose) {
-                        System.out.println("[error]");
-                    }
-                    throw new DependencyNotFoundException(dependency);
                 }
+                if (verbose) {
+                    System.out.println("[error]");
+                }
+                throw new DependencyNotFoundException(dependency);
             }
-
         }
 
         // Handle the case of Maven plugins built and used in a multi-module build:
@@ -1091,18 +1149,10 @@
         }
 
         // Discover the library to import for the dependency
-        String library = null;
-        if (pom.getProperties() != null) {
-            library = (String) pom.getProperties().get("debian.package");
-        }
-        if (library == null) {
-            issues.add(sourcePomLoc + ": Dependency is missing the Debian properties in its POM: " + dependency.getGroupId() + ":"
-                    + dependency.getArtifactId() + ":" + dependency.getVersion());
-            File pomFile = new File(mavenRepo, dependency.getGroupId().replace(".", "/") + "/" + dependency.getArtifactId() + "/" + dependency.getVersion() + "/" + dependency.getArtifactId() + "-" + dependency.getVersion() + ".pom");
-            library = searchPkg(pomFile);
-        }
-        if (library != null && !library.equals(getPackageName())) {
-            String libraryWithVersionConstraint = library;
+        String pkg = getPackage(pom, sourcePomLoc);
+
+        if (pkg != null && !pkg.equals(getPackageName())) {
+            String libraryWithVersionConstraint = pkg;
             String version = dependency.getVersion();
             if (version == null || (pom.getOriginalVersion() != null && version.compareTo(pom.getOriginalVersion()) > 0)) {
                 version = pom.getOriginalVersion();
@@ -1138,7 +1188,7 @@
             versionedPackagesAndDependencies.put(libraryWithVersionConstraint, dependency);
         }
 
-        String mavenRules = (String) pom.getProperties().get("debian.mavenRules");
+        String mavenRules = pom.getProperties().get("debian.mavenRules");
         if (mavenRules != null) {
             StringTokenizer st = new StringTokenizer(mavenRules, ",");
             while (st.hasMoreTokens()) {
@@ -1147,14 +1197,55 @@
             }
         }
         if (verbose) {
+            System.out.println("Dependency " + dependency + " found in package " + pkg);
             System.out.println("[ok]");
         }
+
+        if (resolvingParent) {
+            try {
+                POMInfo containerPom = getPOM(sourcePom);
+                containerPom.setParentPOM(pom);
+                
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
         return pom.getThisPom();
     }
 
-    private boolean containsDependencyIgnoreVersion(Collection dependencies, Dependency dependency) {
-        for (Iterator j = dependencies.iterator(); j.hasNext();) {
-            Dependency ignoredDependency = (Dependency) j.next();
+    private String getPackage(POMInfo pom, String sourcePomLoc) {
+        String pkg = null;
+        if (pom.getProperties() != null) {
+            pkg = pom.getProperties().get("debian.package");
+        }
+        if (pkg == null) {
+            Dependency dependency = pom.getThisPom();
+            issues.add(sourcePomLoc + ": Dependency is missing the Debian properties in its POM: " + dependency.getGroupId() + ":"
+                    + dependency.getArtifactId() + ":" + dependency.getVersion());
+            File pomFile = new File(mavenRepo, dependency.getGroupId().replace(".", "/") + "/" + dependency.getArtifactId() + "/" + dependency.getVersion() + "/" + dependency.getArtifactId() + "-" + dependency.getVersion() + ".pom");
+            pkg = searchPkg(pomFile);
+        }
+        return pkg;
+    }
+
+    private String getPackageVersion(String pkg, boolean onlyInstalled) {
+        GetPackageVersionResult packageResult = new GetPackageVersionResult();
+        executeProcess(new String[]{"dpkg", "--status", pkg}, packageResult);
+        if (packageResult.getResult() != null) {
+            return packageResult.getResult();
+        }
+        if (!onlyInstalled) {
+            GetChangelogVersionResult versionResult = new GetChangelogVersionResult(pkg);
+            executeProcess(new String[]{"apt-get", "--no-act", "--verbose-versions", "install", pkg}, versionResult);
+            if (versionResult.getResult() != null) {
+                return versionResult.getResult();
+            }
+        }
+        return null;
+    }
+
+    private boolean containsDependencyIgnoreVersion(Collection<Dependency> dependencies, Dependency dependency) {
+        for (Dependency ignoredDependency : dependencies) {
             if (ignoredDependency.equalsIgnoreVersion(dependency)) {
                 return true;
             }
@@ -1164,7 +1255,7 @@
 
     private String searchPkg(File file) {
         if (filesInPackages.containsKey(file)) {
-            return (String) filesInPackages.get(file);
+            return filesInPackages.get(file);
         }
 
         GetPackageResult packageResult = new GetPackageResult();
@@ -1198,8 +1289,7 @@
             ProcessBuilder pb = new ProcessBuilder(cmd);
             pb.redirectErrorStream(true);
             System.out.print("> ");
-            for (int i = 0; i < cmd.length; i++) {
-                String arg = cmd[i];
+            for (String arg : cmd) {
                 System.out.print(arg + " ");
             }
             System.out.println();
@@ -1224,9 +1314,9 @@
                             LineNumberReader aptIn = new LineNumberReader(br);
                             String line;
                             while ((line = aptIn.readLine()) != null) {
-                                System.out.println(line);
                                 handler.newLine(line);
                             }
+                            aptIn.close();
                         } catch (IOException ex) {
                             ex.printStackTrace();
                         }
@@ -1249,10 +1339,10 @@
         }
     }
 
-    private String toString(Set s) {
+    private String toString(Set<String> s) {
         StringBuffer sb = new StringBuffer();
-        for (Iterator i = s.iterator(); i.hasNext();) {
-            String st = (String) i.next();
+        for (Iterator<String> i = s.iterator(); i.hasNext();) {
+            String st = i.next();
             sb.append(st);
             if (i.hasNext()) {
                 sb.append(", ");
@@ -1277,6 +1367,9 @@
         private String result;
 
         public void newLine(String line) {
+            if (result != null) {
+                return;
+            }
             int colon = line.indexOf(':');
             if (colon > 0 && line.indexOf(' ') > colon) {
                 result = line.substring(0, colon);
@@ -1293,11 +1386,53 @@
             return result;
         }
 
-        public void setResult(String result) {
-            this.result = result;
+    }
+
+    static class GetPackageVersionResult implements OutputHandler {
+
+        private String result;
+
+        public void newLine(String line) {
+            if (result != null) {
+                return;
+            }
+            if (line.startsWith("Version:")) {
+                int space = line.indexOf(' ');
+                result = line.substring(space + 1, line.length()).trim();
+            }
         }
+
+        public String getResult() {
+            return result;
+        }
+
     }
 
+    static class GetChangelogVersionResult implements OutputHandler {
+
+        private String result;
+        private final Pattern pattern;
+
+        public GetChangelogVersionResult(String pkg) {
+            this.pattern = Pattern.compile(pkg + "\\s\\(.*\\)");
+        }
+
+        public void newLine(String line) {
+            if (result != null) {
+                return;
+            }
+            Matcher match = pattern.matcher(line);
+            if (match.find()) {
+                result = match.group(1);
+            }
+        }
+
+        public String getResult() {
+            return result;
+        }
+
+    }
+
     public static void main(String[] args) {
         if (args.length == 0 || "-h".equals(args[0]) || "--help".equals(args[0])) {
             System.out.println("Purpose: Solve the dependencies in the POM(s).");

Modified: trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/java/org/debian/maven/packager/DependenciesSolverTest.java	2011-12-05 00:01:31 UTC (rev 15503)
@@ -253,6 +253,7 @@
         solver.setListOfPoms(new File(listOfPoms.getParent(), listOfPoms.getName()));
         solver.setInteractive(false);
         solver.setOffline(true);
+        solver.setVerbose(true);
 
         solver.solveDependencies();
 
@@ -270,6 +271,43 @@
         assertFileEquals("buildhelper-maven-plugin.rules", "maven.rules");
     }
 
+    // TODO: fix this test
+    public void XXXtestSolvePlexusCompilerDependencies() throws Exception {
+        useFile("plexus-compiler/pom.xml", pomFile);
+        DependenciesSolver solver = new DependenciesSolver();
+        solver.setMavenRepo(getFileInClasspath("repository/root.dir").getParentFile());
+        solver.setOutputDirectory(testDir);
+        solver.setExploreProjects(false);
+        solver.setPackageName("libplexus-compiler-java");
+        solver.setPackageType("maven");
+//        solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-changelog-plugin * * * *"));
+//        solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-changes-plugin * * * *"));
+//        solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-checkstyle-plugin * * * *"));
+//        solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-enforcer-plugin * * * *"));
+//        solver.getPomTransformer().addIgnoreRule(new DependencyRule("org.apache.maven.plugins maven-project-info-reports-plugin * * * *"));
+        File listOfPoms = getFileInClasspath("libplexus-compiler-java.poms");
+        solver.setBaseDir(getFileInClasspath("plexus-compiler/pom.xml").getParentFile());
+        solver.setListOfPoms(new File(listOfPoms.getParent(), listOfPoms.getName()));
+        solver.setInteractive(false);
+        solver.setOffline(true);
+        solver.setVerbose(true);
+
+        solver.solveDependencies();
+
+        assertTrue("Did not expect any issues", solver.getIssues().isEmpty());
+
+        solver.setBaseDir(testDir);
+        solver.setListOfPoms(new File(testDir, "libplexus-compiler-java.poms"));
+
+        solver.saveListOfPoms();
+        solver.saveMavenRules();
+        solver.saveSubstvars();
+
+        assertFileEquals("libplexus-compiler-java.poms", "libplexus-compiler-java.poms");
+        assertFileEquals("libplexus-compiler-java.substvars", "libplexus-compiler-java.substvars");
+        assertFileEquals("libplexus-compiler-java.rules", "maven.rules");
+    }
+
     protected void assertFileEquals(String resource, String fileName) throws Exception {
         File file = new File(testDir, fileName);
         assertTrue(file.exists());

Modified: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/buildhelper-maven-plugin.rules
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/buildhelper-maven-plugin.rules	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/buildhelper-maven-plugin.rules	2011-12-05 00:01:31 UTC (rev 15503)
@@ -1,3 +1,2 @@
 junit junit jar s/3\..*/3.x/ * *
 org.codehaus.mojo mojo-parent pom s/.*/debian/ * *
-org.apache.maven maven-plugin-api * s/2\..*/2.x/ * *
\ No newline at end of file

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/libplexus-compiler-java.poms	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,2 @@
+pom.xml --no-parent
+plexus-compiler-api/pom.xml

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-api/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-api/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-api/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compiler</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <artifactId>plexus-compiler-api</artifactId>
+
+  <name>Plexus Compiler Api</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+  </dependencies>
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-manager/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-manager/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-manager/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compiler</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <artifactId>plexus-compiler-manager</artifactId>
+
+  <name>Plexus Compiler Manager</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-compiler-api</artifactId>
+    </dependency>
+  </dependencies>
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-test/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-test/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compiler-test/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compiler</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <artifactId>plexus-compiler-test</artifactId>
+
+  <name>Plexus Compiler Test Harness</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-compiler-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-test</artifactId>
+      <version>2.0.10</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-manager</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-settings</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+    <!-- This just needs to be present in the local repository for tests to pass. It would be preferable for the tests to resolve it directly -->
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.0</version>
+      <scope>runtime</scope>
+    </dependency>
+  </dependencies>
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-aspectj/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-aspectj/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-aspectj/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compilers</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <artifactId>plexus-compiler-aspectj</artifactId>
+
+  <name>Plexus AspectJ Compiler</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>aspectj</groupId>
+      <artifactId>aspectjrt</artifactId>
+      <version>1.5.0</version>
+    </dependency>
+    <dependency>
+      <groupId>aspectj</groupId>
+      <artifactId>aspectjtools</artifactId>
+      <version>1.5.0</version>
+    </dependency>
+  </dependencies>
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-csharp/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-csharp/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-csharp/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compilers</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <artifactId>plexus-compiler-csharp</artifactId>
+
+  <name>Plexus C# Compiler</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+  </dependencies>
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-eclipse/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-eclipse/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-eclipse/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compilers</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <artifactId>plexus-compiler-eclipse</artifactId>
+
+  <name>Plexus Eclipse Compiler</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jdt</groupId>
+      <artifactId>core</artifactId>
+      <version>3.3.0-v_771</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.eclipse.core</groupId>
+          <artifactId>resources</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.eclipse.core</groupId>
+          <artifactId>runtime</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.eclipse.core</groupId>
+          <artifactId>filesystem</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.eclipse</groupId>
+          <artifactId>text</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-javac/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-javac/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-javac/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compilers</artifactId>
+    <version>1.8.2</version>
+  </parent>
+  
+  <artifactId>plexus-compiler-javac</artifactId>
+
+  <name>Plexus Javac Component</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+  </dependencies>
+  
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-jikes/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-jikes/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/plexus-compiler-jikes/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compilers</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <artifactId>plexus-compiler-jikes</artifactId>
+
+  <name>Plexus Jikes Compiler</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+  </dependencies>
+  
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <skipTests>true</skipTests>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  
+  <profiles>
+    <profile>
+      <id>jikes-enabled</id>
+      <activation>
+        <property>
+          <name>jikes-enabled</name>
+          <value>true</value>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <skipTests>true</skipTests>
+            </configuration>
+          </plugin>
+        </plugins>      
+      </build>            
+    </profile>
+  </profiles>
+  
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/plexus-compilers/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-compiler</artifactId>
+    <version>1.8.2</version>
+  </parent>
+
+  <groupId>org.codehaus.plexus</groupId>
+  <artifactId>plexus-compilers</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Plexus Compilers</name>
+
+  <modules>
+    <module>plexus-compiler-aspectj</module>
+    <module>plexus-compiler-csharp</module>
+    <module>plexus-compiler-eclipse</module>
+    <module>plexus-compiler-jikes</module>
+    <module>plexus-compiler-javac</module>
+  </modules>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-compiler-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-compiler-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  
+</project>

Added: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/pom.xml
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/pom.xml	                        (rev 0)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/plexus-compiler/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.codehaus.plexus</groupId>
+    <artifactId>plexus-components</artifactId>
+    <version>1.1.18</version>
+  </parent>
+
+  <artifactId>plexus-compiler</artifactId>
+  <version>1.8.2</version>
+  <packaging>pom</packaging>
+
+  <name>Plexus Compiler</name>
+
+  <modules>
+    <module>plexus-compiler-api</module>
+    <module>plexus-compiler-test</module>
+    <module>plexus-compiler-manager</module>
+    <module>plexus-compilers</module>
+  </modules>
+  
+  <scm>
+    <connection>scm:git:git at github.com:sonatype/plexus-compiler.git</connection>
+    <developerConnection>scm:git:git at github.com:sonatype/plexus-compiler.git</developerConnection>
+    <url>http://github.com/sonatype/plexus-compiler</url>
+  </scm>
+  <issueManagement>
+    <system>jira</system>
+    <url>http://jira.codehaus.org/browse/PLXCOMP/component/12541</url>
+  </issueManagement>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-compiler-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-compiler-test</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-container-default</artifactId>
+      <version>1.0-alpha-9-stable-1</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.2</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-component-metadata</artifactId>
+        <version>1.5.1</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>generate-metadata</goal>
+              <goal>merge-metadata</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-gpg-plugin</artifactId>
+        <version>1.2</version>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <!--
+      Make sure maven.repo.local is passed through to the tests if set or the tests will fail to resolve artifacts
+      (c.f. SUREFIRE-491).
+      -->
+      <id>maven.repo.local</id>
+      <activation>
+        <property>
+          <name>maven.repo.local</name>
+        </property>
+      </activation>
+      <build>
+        <pluginManagement>
+          <plugins>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-surefire-plugin</artifactId>
+              <configuration>
+                <systemProperties combine.children="append">
+                  <property>
+                    <name>maven.repo.local</name>
+                    <value>${maven.repo.local}</value>
+                  </property>
+                </systemProperties>
+              </configuration>
+            </plugin>
+          </plugins>
+        </pluginManagement>
+      </build>
+    </profile>
+  </profiles>
+</project>

Modified: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/mojo/mojo-parent/debian/mojo-parent-debian.pom
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/mojo/mojo-parent/debian/mojo-parent-debian.pom	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/mojo/mojo-parent/debian/mojo-parent-debian.pom	2011-12-05 00:01:31 UTC (rev 15503)
@@ -86,7 +86,7 @@
 			<dependency>
 				<groupId>org.apache.maven</groupId>
 				<artifactId>maven-plugin-api</artifactId>
-				<version>2.x</version>
+				<version>debian</version>
 			</dependency>
 			<dependency>
 				<groupId>junit</groupId>

Modified: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom	2011-12-05 00:01:31 UTC (rev 15503)
@@ -265,7 +265,7 @@
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-			<version>debian</version>
+			<version>3.x</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>

Modified: trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.x/plexus-2.x.pom
===================================================================
--- trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.x/plexus-2.x.pom	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/maven-packager-utils/src/test/resources/repository/org/codehaus/plexus/plexus/2.x/plexus-2.x.pom	2011-12-05 00:01:31 UTC (rev 15503)
@@ -265,7 +265,7 @@
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-			<version>debian</version>
+			<version>3.x</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>

Modified: trunk/maven-debian-helper/pom.xml
===================================================================
--- trunk/maven-debian-helper/pom.xml	2011-12-04 22:57:43 UTC (rev 15502)
+++ trunk/maven-debian-helper/pom.xml	2011-12-05 00:01:31 UTC (rev 15503)
@@ -4,7 +4,7 @@
 
     <groupId>org.debian.maven</groupId>
     <artifactId>maven-debian</artifactId>
-    <version>1.4</version>
+    <version>1.5</version>
     <packaging>pom</packaging>
     <name>helper tools for using Maven to build Debian packages</name>
 
@@ -38,8 +38,45 @@
             <dependency>
                 <groupId>org.debian.maven</groupId>
                 <artifactId>maven-repo-helper</artifactId>
-                <version>1.6.1</version>
+                <version>1.7.1</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-plugin-api</artifactId>
+                <version>2.2.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-artifact</artifactId>
+                <version>2.2.1</version>
+            </dependency>
+            <dependency>
+                <groupId>classworlds</groupId>
+                <artifactId>classworlds</artifactId>
+                <version>1.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-project</artifactId>
+                <version>2.2.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.velocity</groupId>
+                <artifactId>velocity</artifactId>
+                <version>1.6.2</version>
+            </dependency>
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>3.8.2</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>1.4</version>
+                <scope>test</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 




More information about the pkg-java-commits mailing list