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