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/27 22:50:43 UTC
cvs commit: maven-new/core/src/java/org/apache/maven DefaultMaven.java
bwalding 2003/04/27 13:50:43
Modified: core/src/test/org/apache/maven DefaultMavenTest.java
core/src/java/org/apache/maven/plugin
DefaultPluginManager.java
core/src/java/org/apache/maven DefaultMaven.java
Removed: core/src/java/org/apache/maven/plugins/suiterunner
DefaultSuiteRunnerPlugin.java
SuiteRunnerPlugin.java
core/src/test/org/apache/maven/plugins/suiterunner
SuiteRunnerComponentTest.xml test-project.xml
SuiteRunnerComponentTest.java
Log:
Revision Changes Path
1.2 +5 -3 maven-new/core/src/test/org/apache/maven/DefaultMavenTest.java
Index: DefaultMavenTest.java
===================================================================
RCS file: /home/cvs/maven-new/core/src/test/org/apache/maven/DefaultMavenTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultMavenTest.java 26 Apr 2003 16:52:16 -0000 1.1
+++ DefaultMavenTest.java 27 Apr 2003 20:50:43 -0000 1.2
@@ -70,7 +70,7 @@
public void testGetComponent() throws Exception
{
Maven maven = (Maven) getComponent(Maven.ROLE);
- assertNotNull(maven);
+ assertNotNull(maven);
}
public void testComponent() throws Exception
@@ -78,8 +78,10 @@
Maven maven = (Maven) getComponent(Maven.ROLE);
assertNotNull(maven);
maven.setProjectFile(new File(System.getProperty("basedir") + "/src/test-input/project.xml"));
+ maven.setMavenHome(new File(System.getProperty("maven.home")));
+ maven.setMavenRepoLocal(new File(System.getProperty("maven.home"), "repository"));
- maven.addGoal("suiterunner:test");
- maven.attainGoals();
+ //maven.addGoal("suiterunner:test");
+ //maven.attainGoals();
}
}
1.4 +76 -15 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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DefaultPluginManager.java 27 Apr 2003 01:10:04 -0000 1.3
+++ DefaultPluginManager.java 27 Apr 2003 20:50:43 -0000 1.4
@@ -1,5 +1,8 @@
package org.apache.maven.plugin;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -9,12 +12,19 @@
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.plugins.suiterunner.DefaultSuiteRunnerPlugin;
+import org.apache.maven.classworld.ClassWorldService;
+import org.apache.maven.project.Dependency;
import org.apache.maven.project.Project;
+import org.apache.maven.repository.GenericArtifact;
import org.apache.plexus.context.DefaultContext;
import org.apache.plexus.logging.AbstractLogEnabled;
+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;
@@ -24,6 +34,7 @@
public class DefaultPluginManager extends AbstractLogEnabled implements PluginManager, Serviceable
{
private ServiceManager serviceManager;
+ private ClassWorldService classWorldService;
/* (non-Javadoc)
* @see org.apache.maven.plugin.PluginManager#getPlugin(java.lang.String)
@@ -33,11 +44,12 @@
for (Iterator iter = getPlugins().iterator(); iter.hasNext();)
{
Plugin plugin = (Plugin) iter.next();
- if (plugin.getId().equals(id)) {
+ if (plugin.getId().equals(id))
+ {
return plugin;
}
}
-
+
throw new RuntimeException("No plugin found : " + id);
}
@@ -47,13 +59,46 @@
List plugins = null;
public List getPlugins()
{
- if (plugins == null) {
+ if (plugins == null)
+ {
List l = new ArrayList();
-
- //XXX plexusify
- l.add(new DefaultSuiteRunnerPlugin());
-
+
//XXX plexusify
+ try
+ {
+ ClassRealm realm = null;
+
+ ClassWorld classWorld = classWorldService.getClassWorld();
+ for (Iterator iter = classWorld.getRealms().iterator(); iter.hasNext();)
+ {
+ ClassRealm r = (ClassRealm) iter.next();
+ System.out.println("Known Realm:" + r.getId());
+ }
+
+ try {
+ realm = classWorldService.getClassWorld().newRealm("maven-new:plugin-suiterunner");
+ } catch (DuplicateRealmException e) {
+ realm = classWorldService.getClassWorld().getRealm("maven-new:plugin-suiterunner");
+ }
+
+
+ realm.addConstituent(getJar("maven-new", "core", "SNAPSHOT"));
+ 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"));
+ //realm.importFrom(DefaultMaven.ROOT_REALM, "org.apache.maven.plugin");
+ //realm.importFrom(DefaultMaven.ROOT_REALM, "org.apache.maven");
+
+ //XXX plexusify
+ Class c = realm.loadClass("org.apache.maven.plugins.suiterunner.DefaultSuiteRunnerPlugin");
+ System.out.println(c.getInterfaces()[0]);
+ l.add(c.newInstance());
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ throw new RuntimeException(e.getLocalizedMessage());
+ }
/*
JellyPlugin jp = new DefaultJellyPlugin();
File pluginPath = new File(System.getProperty(MavenConstants.MAVEN_HOME) + "/plugins/maven-eclipse-plugin-1.3");
@@ -61,12 +106,26 @@
jp.load(pluginPath);
l.add(jp);
*/
-
+
plugins = Collections.unmodifiableList(l);
}
return plugins;
}
+ URL getJar(String groupId, String artifactId, String version) throws DuplicateRealmException, MalformedURLException
+ {
+ Dependency d = new Dependency();
+ d.setId(groupId + ":" + artifactId);
+ d.setVersion(version);
+ d.setType("jar");
+ GenericArtifact arti = new GenericArtifact(d);
+
+ File artif = new File(System.getProperty("maven.home") + "/repository/" + arti.getPath());
+ URL url = artif.toURL();
+ System.out.println("Adding JAR:" + url);
+ return url;
+ }
+
/* (non-Javadoc)
* @see org.apache.maven.plugin.PluginManager#attainGoals(org.apache.avalon.framework.context.Context)
*/
@@ -81,14 +140,14 @@
while (goalIter.hasNext())
{
String goal = (String) goalIter.next();
- werkzProject.attainGoal(goal,session);
+ werkzProject.attainGoal(goal, session);
}
}
catch (Exception ex)
{
ex.printStackTrace();
throw new RuntimeException(ex.getLocalizedMessage());
- }
+ }
}
/**
@@ -107,17 +166,20 @@
final DefaultContext goalExecutionContext = new DefaultContext();
final WerkzProject werkzProject = new WerkzProject();
-
+
public void service(ServiceManager serviceManager) throws ServiceException
{
this.serviceManager = serviceManager;
-
+ classWorldService = (ClassWorldService) serviceManager.lookup(ClassWorldService.ROLE);
//For each plugin
Iterator pluginIter = getPlugins().iterator();
while (pluginIter.hasNext())
{
- final Plugin plugin = (Plugin) pluginIter.next();
+ Object o = pluginIter.next();
+ System.out.println("Object:" + o);
+ final Plugin plugin = (Plugin) o;
+
Iterator goalIter = plugin.getGoals().iterator();
while (goalIter.hasNext())
{
@@ -169,5 +231,4 @@
}
-
}
1.5 +32 -21 maven-new/core/src/java/org/apache/maven/DefaultMaven.java
Index: DefaultMaven.java
===================================================================
RCS file: /home/cvs/maven-new/core/src/java/org/apache/maven/DefaultMaven.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DefaultMaven.java 27 Apr 2003 13:49:02 -0000 1.4
+++ DefaultMaven.java 27 Apr 2003 20:50:43 -0000 1.5
@@ -112,7 +112,7 @@
// ------------------------------------------------------------
/** */
- private static final String ROOT_REALM = "root";
+ public static final String ROOT_REALM = "root";
// ----------------------------------------------------------------------
// Options
@@ -160,7 +160,7 @@
/** Execution time. */
private Date startTime;
private Date endTime;
-
+
// ----------------------------------------------------------------------
// Errors
// ----------------------------------------------------------------------
@@ -210,8 +210,28 @@
// ----------------------------------------------------------------------
public void service(ServiceManager serviceManager) throws ServiceException
{
- System.out.println("service called : serviceManager:" + serviceManager.getClass());
+ ClassWorldService cws = (ClassWorldService) serviceManager.lookup(ClassWorldService.ROLE);
+ try
+ {
+ rootClassRealm = cws.getClassWorld().getRealm(ROOT_REALM);
+ }
+ catch (NoSuchRealmException nre)
+ {
+ try
+ {
+ rootClassRealm = cws.getClassWorld().newRealm(ROOT_REALM);
+ }
+ catch (DuplicateRealmException dre)
+ {
+ //We shouldn't be able to get here.
+ dre.printStackTrace();
+ }
+ }
+ Thread.currentThread().setContextClassLoader(rootClassRealm.getClassLoader());
+
+ System.out.println("service called : serviceManager:" + serviceManager.getClass());
+
projectBuilder = (ProjectBuilder) serviceManager.lookup(ProjectBuilder.ROLE);
projectUnmarshaller = (ProjectUnmarshaller) serviceManager.lookup(ProjectUnmarshaller.ROLE);
dependencyVerifier = (DependencyVerifier) serviceManager.lookup(DependencyVerifier.ROLE);
@@ -221,18 +241,7 @@
System.out.println("projectUnmarshaller: " + projectUnmarshaller);
System.out.println("localSettingsVerifier: " + localSettingsVerifier);
System.out.println("dependencyVerifier: " + dependencyVerifier);
- ClassWorldService cws = (ClassWorldService) serviceManager.lookup(ClassWorldService.ROLE);
- try {
- rootClassRealm = cws.getClassWorld().getRealm(ROOT_REALM);
- } catch (NoSuchRealmException nre) {
- try {
- rootClassRealm = cws.getClassWorld().newRealm(ROOT_REALM);
- } catch (DuplicateRealmException dre) {
- //We shouldn't be able to get here.
- dre.printStackTrace();
- }
- }
-
+
}
/** Perform pre-build initialization.
@@ -253,6 +262,10 @@
public void setProjectFile(File projectFile)
{
this.projectFile = projectFile;
+ //XXX BAD!
+ String basedir = projectFile.getParentFile().getName();
+ System.setProperty("basedir", basedir);
+ System.out.println("basedir is set to " + basedir);
}
public void setProject(Project project)
@@ -269,7 +282,7 @@
System.out.println("ProjectUnmarshaller:" + projectUnmarshaller);
project = projectUnmarshaller.parse(new FileReader(projectFile));
}
-
+
return project;
}
catch (Exception e)
@@ -366,10 +379,9 @@
public long getExecutionDuration()
{
- return getEndTime().getTime() - getStartTime().getTime();
+ return getEndTime().getTime() - getStartTime().getTime();
}
-
/**
*
* @return
@@ -540,7 +552,6 @@
setEndTime(new Date());
-
return returnCode;
}
@@ -552,7 +563,7 @@
//FIXME BRW: Shouldn't be hardwired to plexus (I think)
DefaultContext context = new DefaultContext();
context.put(Project.CONTEXT_KEY, getRootProject());
-
+
getPluginManager().attainGoals(context, goals);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org