jvanzyl 2002/07/16 15:03:10
Modified: src/java/org/apache/maven/app Maven.java PluginManager.java
Log:
o Maven.java now uses MavenUtils and the Descriptor*
o Plugin manager tries to set the jelly context/thread context classloader
so that plugins have access to basic maven resources so they don't
have to declare them again if they are only runtime requirements.
Revision Changes Path
1.70 +16 -18 jakarta-turbine-maven/src/java/org/apache/maven/app/Maven.java
Index: Maven.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/app/Maven.java,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- Maven.java 16 Jul 2002 08:01:34 -0000 1.69
+++ Maven.java 16 Jul 2002 22:03:10 -0000 1.70
@@ -57,9 +57,8 @@
*/
import org.apache.maven.ProjectVerifier;
-import org.apache.maven.build.DescriptorException;
-import org.apache.maven.build.ProjectDescriptor;
import org.apache.maven.project.Project;
+import org.apache.maven.MavenUtils;
import org.apache.maven.jelly.tags.project.MavenTagLibrary;
import org.apache.commons.cli.CommandLine;
@@ -178,8 +177,8 @@
/** Aggregate properties. */
private Properties properties;
- /** Maven project descriptor. */
- private ProjectDescriptor projectDescriptor;
+ /** Maven project. */
+ private Project project;
/** Jelly conext. */
private MavenJellyContext jellyContext;
@@ -295,13 +294,13 @@
return (this.projectBuildFile != null);
}
- /** Retrieve the maven <code>ProjectDescriptor</code>.
+ /** Retrieve the maven <code>project</code>.
*
* @return The project descriptor.
*/
- private ProjectDescriptor getProjectDescriptor()
+ private Project getProject()
{
- return this.projectDescriptor;
+ return this.project;
}
/** Retrieve the Ant project.
@@ -496,7 +495,7 @@
* descriptor from a file
*/
public void initializeCore(String[] args) throws
- ParseException, IOException, MalformedURLException, DescriptorException
+ ParseException, IOException, MalformedURLException,Exception
{
setMavenHome(new File(System.getProperty("maven.home")));
@@ -507,7 +506,7 @@
loadProperties();
- initializeProjectDescriptor();
+ initializeProject();
initializeAnt();
initializeIO();
@@ -522,10 +521,10 @@
* @throws DescriptorException If there is an error while
* reading the project descriptor.
*/
- private void initializeProjectDescriptor()
- throws DescriptorException
+ private void initializeProject()
+ throws Exception
{
- this.projectDescriptor = new ProjectDescriptor(getProjectFile());
+ this.project = MavenUtils.getProject(getProjectFile());
}
/** Initialize Jelly.
@@ -668,8 +667,7 @@
*/
private void initializeDriver() throws Exception
{
- getJellyContext().setVariable("pom",
- getProjectDescriptor().getProject());
+ getJellyContext().setVariable("pom", getProject());
File driver = getDriverFile();
@@ -1383,7 +1381,7 @@
projectVerifier.setMavenRemoteRepo(remoteRepoProp);
projectVerifier.setMavenLocalRepo(localRepoProp);
- projectVerifier.setMavenProject(getProjectDescriptor().getProject());
+ projectVerifier.setMavenProject(getProject());
projectVerifier.setProject(getAntProject());
String proxyHost = getProperty("maven.proxy.host");
if (proxyHost != null)
@@ -1403,7 +1401,7 @@
*/
public void verifyProject() throws Exception
{
- getProjectVerifier().setMavenProject(getProjectDescriptor().getProject());
+ getProjectVerifier().setMavenProject(getProject());
getProjectVerifier().doExecute();
}
@@ -1456,7 +1454,7 @@
System.err.println(e.getLocalizedMessage());
done = true;
}
- catch (DescriptorException e)
+ catch (Exception e)
{
System.err.println(e.getLocalizedMessage());
done = true;
@@ -1477,7 +1475,7 @@
Date buildStart = new Date();
- Project mavenProject = getProjectDescriptor().getProject();
+ Project mavenProject = getProject();
printConsoleMavenHeader();
System.out.println();
1.14 +12 -2
jakarta-turbine-maven/src/java/org/apache/maven/app/PluginManager.java
Index: PluginManager.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/app/PluginManager.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- PluginManager.java 16 Jul 2002 16:18:41 -0000 1.13
+++ PluginManager.java 16 Jul 2002 22:03:10 -0000 1.14
@@ -171,7 +171,7 @@
Expand unzipper = new Expand();
unzipper.setSrc(files[i]);
String directory = files[i].getName();
- directory = directory.substring(0, directory.indexOf(".jar")-1);
+ directory = directory.substring(0, directory.indexOf(".jar"));
File unzipDir = new File(getPluginsDir(), directory);
unzipper.setDest(unzipDir);
unzipper.execute();
@@ -212,11 +212,13 @@
loadPluginProperties(name);
log.debug("plugin: " + name + " -> " + getPluginDir(name));
+
Forehead.getInstance().getClassLoader("root.maven").addURL(getPluginDir(name).toURL());
// Retrieve the dependencies that this plugin requires.
Project pluginProject = MavenUtils.getProject(new
File(getPluginDir(name),"project.xml"));
getProjectVerifier().setMavenProject(pluginProject);
+ getProjectVerifier().clearFailedDependencies();
getProjectVerifier().doExecute();
log.debug("Loading plugin dependencies:");
@@ -261,11 +263,19 @@
MavenJellyContext pluginJellyContext = new
MavenJellyContext(getJellyContext());
pluginJellyContext.setInherit(true);
pluginJellyContext.setVariable("plugin.dir", getPluginDir(name));
-
+
+ // Now we want to make available to the plugins the [root.maven]
+ // classloader for convenience.
+
getJellyContext().setClassLoader(Forehead.getInstance().getClassLoader("root.maven"));
+ ClassLoader currentCL = Thread.currentThread().getContextClassLoader();
+
Thread.currentThread().setContextClassLoader(Forehead.getInstance().getClassLoader("root.maven"));
+
JellyUtils.runScript(pluginScript,
getPluginDir(name).toURL(),
pluginJellyContext,
getXMLOutput());
+
+ Thread.currentThread().setContextClassLoader(currentCL);
}
/**
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>