You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by jv...@apache.org on 2002/03/25 02:56:08 UTC

cvs commit: jakarta-turbine-maven/src/java/org/apache/maven PackageProjectMap.java ProjectResolver.java

jvanzyl     02/03/24 17:56:08

  Modified:    src/descriptors build.xml
               src/java/org/apache/maven PackageProjectMap.java
                        ProjectResolver.java
  Log:
  Fixing up the project resolver to make sure that projects with
  no an empty <package> element don't get through. According to the
  project resolver maven has the following direct deps :-)
  
  jakarta-ant
  jakarta-velocity
  commons-lang
  jakarta-bcel
  jakarta-oro
  
  Revision  Changes    Path
  1.5       +1 -0      jakarta-turbine-maven/src/descriptors/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/descriptors/build.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- build.xml	24 Mar 2002 21:09:07 -0000	1.4
  +++ build.xml	25 Mar 2002 01:56:08 -0000	1.5
  @@ -138,6 +138,7 @@
     <delete file="${basedir}/p3/xml-stylebook.xml"/>
     <delete file="${basedir}/p3/xml-xalan2-smoketest-tools.xml"/>
     <delete file="${basedir}/p3/xml-xalan2-smoketest.xml"/>
  +  <delete file="${basedir}/p3/mx4j-release.xml"/>
   
     <delete>
       <fileset dir="${basedir}/project">
  
  
  
  1.2       +4 -2      jakarta-turbine-maven/src/java/org/apache/maven/PackageProjectMap.java
  
  Index: PackageProjectMap.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/PackageProjectMap.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PackageProjectMap.java	24 Mar 2002 21:09:07 -0000	1.1
  +++ PackageProjectMap.java	25 Mar 2002 01:56:08 -0000	1.2
  @@ -70,7 +70,7 @@
    * references.
    *
    * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
  - * @version $Id: PackageProjectMap.java,v 1.1 2002/03/24 21:09:07 jvanzyl Exp $
  + * @version $Id: PackageProjectMap.java,v 1.2 2002/03/25 01:56:08 jvanzyl Exp $
    */
   public class PackageProjectMap
        extends AbstractExecutor
  @@ -157,7 +157,9 @@
               String projectId = p.getId();
               
               // Some of the projects may not have packages.
  -            if (projectPackage != null && projectId != null)
  +            if (projectPackage != null && 
  +                projectPackage.trim().length() > 0 && 
  +                projectId != null)
               {
                   m.put(projectPackage, projectId);
               }                
  
  
  
  1.9       +61 -9     jakarta-turbine-maven/src/java/org/apache/maven/ProjectResolver.java
  
  Index: ProjectResolver.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/ProjectResolver.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ProjectResolver.java	24 Mar 2002 23:34:07 -0000	1.8
  +++ ProjectResolver.java	25 Mar 2002 01:56:08 -0000	1.9
  @@ -55,6 +55,7 @@
    */
   
   import java.io.File;
  +import java.io.FileInputStream;
   import java.io.InputStream;
   
   import java.util.Iterator;
  @@ -64,6 +65,8 @@
   import java.util.jar.JarEntry;
   import java.util.Map;
   import java.util.StringTokenizer;
  +import java.util.Properties;
  +import java.util.HashMap;
   
   import org.apache.maven.util.JarUtil;
   import org.apache.maven.importscrubber.ClassParserWrapper;
  @@ -77,7 +80,7 @@
    * in a project descriptor.
    *
    * @author <a href="mailto:jason@zenplex.com">Jason van Zyl</a>
  - * @version $Id: ProjectResolver.java,v 1.8 2002/03/24 23:34:07 jvanzyl Exp $
  + * @version $Id: ProjectResolver.java,v 1.9 2002/03/25 01:56:08 jvanzyl Exp $
    */
   public class ProjectResolver
   {
  @@ -107,7 +110,12 @@
       /**
        * Package -> Project map.
        */
  -    private File map;
  +    private File mapFile;
  +
  +    /**
  +     * Project references.
  +     */
  +    private List projectReferences;
   
       /**
        * Default constructor.
  @@ -117,6 +125,7 @@
           packageReferences = new LinkedList();
           packageExcludes = new LinkedList();
           treeMapListener = new TreeMapListener();
  +        projectReferences = new LinkedList();
       }
       
       /**
  @@ -154,9 +163,9 @@
        *
        * @param map Location of the package -> project map.
        */
  -    public void setMap(File map)
  +    public void setMapFile(File mapFile)
       {
  -        this.map = map;
  +        this.mapFile = mapFile;
       }        
   
       /**
  @@ -171,6 +180,17 @@
       }        
   
       /**
  +     * Get the projects referenced determined by the resolution
  +     * process.
  +     *
  +     * @return List The list of project references found.
  +     */
  +    public List getProjectReferences()
  +    {
  +        return projectReferences;
  +    }        
  +
  +    /**
        * Resolve the package dependencies from the set of JARs
        * and classes used as the input.
        */
  @@ -202,6 +222,38 @@
           {
               processJAR(base.getAbsolutePath());
           }
  +        
  +        Properties map = new Properties();
  +        
  +        try
  +        {
  +            map.load(new FileInputStream(mapFile));
  +        }
  +        catch (Exception e)
  +        {
  +            e.printStackTrace();
  +        }
  +
  +        HashMap projects = new HashMap();
  +
  +        List packageReferences = getPackageReferences();
  +        for (Iterator i = packageReferences.iterator(); i.hasNext();)
  +        {
  +            String classReference = (String) i.next();
  +            
  +            for (Iterator j = map.keySet().iterator(); j.hasNext();)
  +            {
  +                String packageKey = (String) j.next();
  +                
  +                if (classReference.indexOf(packageKey) == 0)
  +                {
  +                    Object o = map.get(packageKey);
  +                    projects.put(o,o);
  +                }
  +            }
  +        }            
  +        
  +        projectReferences.addAll(projects.values());
       }
       
       /**
  @@ -246,8 +298,7 @@
        */
       private void processClassReference(String classReference)
       {
  -        // Don't care about internal classes or classes
  -        // that don't belong to a real package.
  +        // Don't care about inner classes.
           if (classReference.indexOf("$") < 0 && classReference.startsWith("[") == false)
           {
               boolean includePackage = true;
  @@ -278,12 +329,13 @@
           ProjectResolver bdr = new ProjectResolver();
           bdr.setBase(new File(args[0]));
           bdr.setPackageExcludes(args[1]);
  +        bdr.setMapFile(new File(args[2]));
           bdr.resolveDependencies();
  -        List packageReferences = bdr.getPackageReferences();
           
  -        for (Iterator i = packageReferences.iterator(); i.hasNext();)
  +        List projectReferences = bdr.getProjectReferences();
  +        for (Iterator i = projectReferences.iterator(); i.hasNext();)
           {
               System.out.println(i.next());
  -        }            
  +        } 
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>