You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by bw...@apache.org on 2003/04/28 12:27:37 UTC

cvs commit: maven-new/core/src/java/org/apache/maven/classworld DefaultClassWorldService.java

bwalding    2003/04/28 03:27:37

  Modified:    core/src/java/org/apache/maven/plugin
                        DefaultPluginManager.java
               core/src/java/org/apache/maven/classworld
                        DefaultClassWorldService.java
  Log:
  DefaultClassWorldService now uses the world it is running in to initialise itself
  
  Revision  Changes    Path
  1.5       +1 -3      maven-new/core/src/java/org/apache/maven/plugin/DefaultPluginManager.java
  
  Index: DefaultPluginManager.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/plugin/DefaultPluginManager.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultPluginManager.java	27 Apr 2003 20:50:43 -0000	1.4
  +++ DefaultPluginManager.java	28 Apr 2003 10:27:37 -0000	1.5
  @@ -12,7 +12,6 @@
   import org.apache.avalon.framework.service.ServiceException;
   import org.apache.avalon.framework.service.ServiceManager;
   import org.apache.avalon.framework.service.Serviceable;
  -import org.apache.maven.DefaultMaven;
   import org.apache.maven.Maven;
   import org.apache.maven.classworld.ClassWorldService;
   import org.apache.maven.project.Dependency;
  @@ -24,7 +23,6 @@
   import com.werken.classworlds.ClassRealm;
   import com.werken.classworlds.ClassWorld;
   import com.werken.classworlds.DuplicateRealmException;
  -import com.werken.classworlds.NoSuchRealmException;
   import com.werken.werkz.Action;
   import com.werken.werkz.CyclicGoalChainException;
   import com.werken.werkz.Goal;
  @@ -82,7 +80,7 @@
                   }
                
                
  -                realm.addConstituent(getJar("maven-new", "core", "SNAPSHOT"));
  +                realm.importFrom("root.maven", "org.apache.maven");
                   realm.addConstituent(getJar("maven-new", "plugin-suiterunner", "SNAPSHOT"));
                   realm.addConstituent(getJar("avalon", "avalon-framework-api", "4.1.4"));
                   realm.addConstituent(getJar("plexus", "plexus", "0.3"));
  
  
  
  1.2       +32 -7     maven-new/core/src/java/org/apache/maven/classworld/DefaultClassWorldService.java
  
  Index: DefaultClassWorldService.java
  ===================================================================
  RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/classworld/DefaultClassWorldService.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultClassWorldService.java	27 Apr 2003 01:10:03 -0000	1.1
  +++ DefaultClassWorldService.java	28 Apr 2003 10:27:37 -0000	1.2
  @@ -56,9 +56,11 @@
    * ====================================================================
    */
   
  +import java.lang.reflect.Method;
  +
   import org.apache.avalon.framework.activity.Initializable;
  -import org.apache.maven.DefaultMaven;
   
  +import com.werken.classworlds.ClassRealm;
   import com.werken.classworlds.ClassWorld;
   
   /**
  @@ -67,18 +69,41 @@
    */
   public class DefaultClassWorldService implements ClassWorldService, Initializable
   {
  -    private ClassWorld classWorld; 
  -    
  +    private ClassWorld classWorld;
  +
       /**
        * @see org.apache.avalon.framework.activity.Initializable#initialize()
        */
       public void initialize() throws Exception
       {
  +        Class realmClassLoaderClass = Class.forName("com.werken.classworlds.RealmClassLoader");
  +
  +        ClassLoader cl = getClass().getClassLoader();
  +        while (cl != null)
  +        {
  +            if (realmClassLoaderClass.isInstance(cl))
  +            {
  +                Method method = realmClassLoaderClass.getDeclaredMethod("getRealm", new Class[0]);
  +                
  +                //This will fail in a secure environment
  +                method.setAccessible(true);
  +                
  +                ClassRealm realm = (ClassRealm) method.invoke(cl, new Object[0]);
  +                classWorld = realm.getWorld();
  +                System.out.println("Attached to existing ClassWorld");
  +                return;
  +            }
  +
  +            cl = cl.getParent();
  +        }
  +
           classWorld = new ClassWorld();
  +        System.out.println("Create new ClassWorld");
       }
  -    
  -    public ClassWorld getClassWorld() {
  +
  +    public ClassWorld getClassWorld()
  +    {
           return classWorld;
       }
  -    
  +
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org