mirror of https://github.com/apache/maven.git
Initial revision
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163924 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
55d33da355
commit
df06a3c5eb
|
@ -0,0 +1,23 @@
|
||||||
|
<project>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.maven</groupId>
|
||||||
|
<artifactId>maven</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>maven-plugin-api</artifactId>
|
||||||
|
<name>Maven Plugin API</name>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.maven</groupId>
|
||||||
|
<artifactId>maven-monitor</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>3.8.1</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
|
@ -0,0 +1,104 @@
|
||||||
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2005 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.maven.monitor.logging.Log;
|
||||||
|
import org.apache.maven.monitor.logging.SystemStreamLog;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public abstract class AbstractPlugin
|
||||||
|
implements Plugin
|
||||||
|
{
|
||||||
|
private Log log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default behaviour to mimic old behaviour.
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public void execute( PluginExecutionRequest request )
|
||||||
|
throws PluginExecutionException
|
||||||
|
{
|
||||||
|
PluginExecutionResponse response = new PluginExecutionResponse();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
execute( request, response );
|
||||||
|
}
|
||||||
|
catch ( Exception e )
|
||||||
|
{
|
||||||
|
throw new PluginExecutionException( e.getMessage(), e );
|
||||||
|
}
|
||||||
|
if ( response.isExecutionFailure() )
|
||||||
|
{
|
||||||
|
throw new PluginExecutionException( response.getFailureResponse().getSource(),
|
||||||
|
response.getFailureResponse().shortMessage(),
|
||||||
|
response.getFailureResponse().longMessage() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException(
|
||||||
|
"If you are using the old technique, you must override execute(req,resp)" );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLog( Log log )
|
||||||
|
{
|
||||||
|
this.log = log;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Log getLog()
|
||||||
|
{
|
||||||
|
synchronized ( this )
|
||||||
|
{
|
||||||
|
if ( log == null )
|
||||||
|
{
|
||||||
|
log = new SystemStreamLog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void execute()
|
||||||
|
throws PluginExecutionException
|
||||||
|
{
|
||||||
|
throw new PluginExecutionException( "You must override execute() if you implement the new paradigm" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @todo remove - harcoding.
|
||||||
|
*/
|
||||||
|
public static String getDefaultPluginArtifactId( String id )
|
||||||
|
{
|
||||||
|
return "maven-" + id + "-plugin";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @todo remove - harcoding.
|
||||||
|
*/
|
||||||
|
public static String getDefaultPluginGroupId()
|
||||||
|
{
|
||||||
|
return "org.apache.maven.plugins";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public abstract class FailureResponse
|
||||||
|
{
|
||||||
|
protected Object source;
|
||||||
|
|
||||||
|
protected FailureResponse( Object source )
|
||||||
|
{
|
||||||
|
this.source = source;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract String shortMessage();
|
||||||
|
|
||||||
|
public abstract String longMessage();
|
||||||
|
|
||||||
|
public Object getSource()
|
||||||
|
{
|
||||||
|
return source;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.maven.monitor.logging.Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public interface Plugin
|
||||||
|
{
|
||||||
|
String ROLE = Plugin.class.getName();
|
||||||
|
|
||||||
|
void execute()
|
||||||
|
throws PluginExecutionException;
|
||||||
|
|
||||||
|
/** @deprecated */
|
||||||
|
void execute( PluginExecutionRequest request )
|
||||||
|
throws PluginExecutionException;
|
||||||
|
|
||||||
|
// TODO: not sure about this here, and may want a getLog on here as well/instead
|
||||||
|
void setLog( Log log );
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2005 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A failure or exception occuring during the execution of a plugin.
|
||||||
|
*
|
||||||
|
* @author Brett Porter
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginExecutionException extends Exception
|
||||||
|
{
|
||||||
|
private Object source;
|
||||||
|
|
||||||
|
private String longMessage;
|
||||||
|
|
||||||
|
public PluginExecutionException( Object source, String shortMessage, String longMessage )
|
||||||
|
{
|
||||||
|
super( shortMessage );
|
||||||
|
this.source = source;
|
||||||
|
this.longMessage = longMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PluginExecutionException( String message, Exception cause )
|
||||||
|
{
|
||||||
|
super( message, cause );
|
||||||
|
}
|
||||||
|
|
||||||
|
public PluginExecutionException( String message )
|
||||||
|
{
|
||||||
|
super( message );
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLongMessage()
|
||||||
|
{
|
||||||
|
return longMessage;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public class PluginExecutionRequest
|
||||||
|
{
|
||||||
|
private Map parameters;
|
||||||
|
|
||||||
|
public PluginExecutionRequest( Map parameters )
|
||||||
|
{
|
||||||
|
this.parameters = parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map getParameters()
|
||||||
|
{
|
||||||
|
return parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParameters( Map parameters )
|
||||||
|
{
|
||||||
|
this.parameters = parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getParameter( String key )
|
||||||
|
{
|
||||||
|
return parameters.get( key );
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginExecutionResponse
|
||||||
|
{
|
||||||
|
private FailureResponse failureResponse = null;
|
||||||
|
|
||||||
|
public boolean isExecutionFailure()
|
||||||
|
{
|
||||||
|
return failureResponse != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExecutionFailure( FailureResponse failureResponse )
|
||||||
|
{
|
||||||
|
this.failureResponse = failureResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated please use {@link #setExecutionFailure(FailureResponse)} as there is no need to set executionFailure to false if there is a failure response
|
||||||
|
*/
|
||||||
|
public void setExecutionFailure( boolean executionFailure, FailureResponse failureResponse )
|
||||||
|
{
|
||||||
|
if ( executionFailure == false )
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException( "executionFailure should be true when passing a failureResponse" );
|
||||||
|
}
|
||||||
|
|
||||||
|
setExecutionFailure( failureResponse );
|
||||||
|
}
|
||||||
|
|
||||||
|
public FailureResponse getFailureResponse()
|
||||||
|
{
|
||||||
|
return failureResponse;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
<project>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.maven</groupId>
|
||||||
|
<artifactId>maven</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>maven-plugin-descriptor</artifactId>
|
||||||
|
<name>Maven Plugin Descriptor Model</name>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.maven</groupId>
|
||||||
|
<artifactId>maven-plugin-api</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>plexus</groupId>
|
||||||
|
<artifactId>plexus-container-default</artifactId>
|
||||||
|
<version>1.0-alpha-2</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
|
@ -0,0 +1,60 @@
|
||||||
|
package org.apache.maven.plugin.descriptor;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LICENSE
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class Dependency
|
||||||
|
{
|
||||||
|
private String groupId;
|
||||||
|
|
||||||
|
private String artifactId;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
private String version;
|
||||||
|
|
||||||
|
public String getGroupId()
|
||||||
|
{
|
||||||
|
return groupId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGroupId( String groupId )
|
||||||
|
{
|
||||||
|
this.groupId = groupId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getArtifactId()
|
||||||
|
{
|
||||||
|
return artifactId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setArtifactId( String artifactId )
|
||||||
|
{
|
||||||
|
this.artifactId = artifactId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType()
|
||||||
|
{
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType( String type )
|
||||||
|
{
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVersion()
|
||||||
|
{
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion( String version )
|
||||||
|
{
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,229 @@
|
||||||
|
package org.apache.maven.plugin.descriptor;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class MojoDescriptor
|
||||||
|
implements Cloneable
|
||||||
|
{
|
||||||
|
public static final String SINGLE_PASS_EXEC_STRATEGY = "once-per-session";
|
||||||
|
|
||||||
|
public static final String MULTI_PASS_EXEC_STRATEGY = "always";
|
||||||
|
|
||||||
|
private static final String DEFAULT_LANGUAGE = "java";
|
||||||
|
|
||||||
|
private String implementation;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private List parameters;
|
||||||
|
|
||||||
|
private Map parameterMap;
|
||||||
|
|
||||||
|
private String instantiationStrategy = "per-lookup";
|
||||||
|
|
||||||
|
private String executionStrategy = SINGLE_PASS_EXEC_STRATEGY;
|
||||||
|
|
||||||
|
private String goal;
|
||||||
|
|
||||||
|
private String phase;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
private List prereqs;
|
||||||
|
|
||||||
|
private String requiresDependencyResolution = null;
|
||||||
|
|
||||||
|
private boolean requiresProject = true;
|
||||||
|
|
||||||
|
private String language = DEFAULT_LANGUAGE;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public String getRole()
|
||||||
|
{
|
||||||
|
return "org.apache.maven.plugin.Plugin";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getImplementation()
|
||||||
|
{
|
||||||
|
return implementation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setImplementation( String implementation )
|
||||||
|
{
|
||||||
|
this.implementation = implementation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription()
|
||||||
|
{
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription( String description )
|
||||||
|
{
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInstantiationStrategy()
|
||||||
|
{
|
||||||
|
return instantiationStrategy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInstantiationStrategy( String instantiationStrategy )
|
||||||
|
{
|
||||||
|
this.instantiationStrategy = instantiationStrategy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLanguage()
|
||||||
|
{
|
||||||
|
return language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLanguage( String language )
|
||||||
|
{
|
||||||
|
this.language = language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId( String id )
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List getParameters()
|
||||||
|
{
|
||||||
|
return parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParameters( List parameters )
|
||||||
|
{
|
||||||
|
this.parameters = parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map getParameterMap()
|
||||||
|
{
|
||||||
|
if ( parameterMap == null )
|
||||||
|
{
|
||||||
|
parameterMap = new HashMap();
|
||||||
|
|
||||||
|
for ( Iterator iterator = parameters.iterator(); iterator.hasNext(); )
|
||||||
|
{
|
||||||
|
Parameter pd = (Parameter) iterator.next();
|
||||||
|
|
||||||
|
parameterMap.put( pd.getName(), pd );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return parameterMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Dependency requirement
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public void setRequiresDependencyResolution( String requiresDependencyResolution )
|
||||||
|
{
|
||||||
|
this.requiresDependencyResolution = requiresDependencyResolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRequiresDependencyResolution()
|
||||||
|
{
|
||||||
|
return requiresDependencyResolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Project requirement
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public void setRequiresProject( boolean requiresProject )
|
||||||
|
{
|
||||||
|
this.requiresProject = requiresProject;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean requiresProject()
|
||||||
|
{
|
||||||
|
return requiresProject;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Prereqs
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public List getPrereqs()
|
||||||
|
{
|
||||||
|
return prereqs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrereqs( List prereqs )
|
||||||
|
{
|
||||||
|
this.prereqs = prereqs;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public String getPhase()
|
||||||
|
{
|
||||||
|
return phase;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPhase( String phase )
|
||||||
|
{
|
||||||
|
this.phase = phase;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGoal()
|
||||||
|
{
|
||||||
|
return goal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGoal( String goal )
|
||||||
|
{
|
||||||
|
this.goal = goal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean alwaysExecute()
|
||||||
|
{
|
||||||
|
return MULTI_PASS_EXEC_STRATEGY.equals( executionStrategy );
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getExecutionStrategy()
|
||||||
|
{
|
||||||
|
return executionStrategy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExecutionStrategy( String executionStrategy )
|
||||||
|
{
|
||||||
|
this.executionStrategy = executionStrategy;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,112 @@
|
||||||
|
package org.apache.maven.plugin.descriptor;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class Parameter
|
||||||
|
{
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
private boolean required;
|
||||||
|
|
||||||
|
private String validator;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private String expression;
|
||||||
|
|
||||||
|
private String defaultValue;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName( String name )
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType()
|
||||||
|
{
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType( String type )
|
||||||
|
{
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRequired()
|
||||||
|
{
|
||||||
|
return required;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRequired( boolean required )
|
||||||
|
{
|
||||||
|
this.required = required;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValidator()
|
||||||
|
{
|
||||||
|
return validator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValidator( String validator )
|
||||||
|
{
|
||||||
|
this.validator = validator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription()
|
||||||
|
{
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription( String description )
|
||||||
|
{
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getExpression()
|
||||||
|
{
|
||||||
|
return expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExpression( String expression )
|
||||||
|
{
|
||||||
|
this.expression = expression;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultValue()
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultValue( String defaultValue )
|
||||||
|
{
|
||||||
|
this.defaultValue = defaultValue;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
package org.apache.maven.plugin.descriptor;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginDescriptor
|
||||||
|
{
|
||||||
|
private List mojos;
|
||||||
|
|
||||||
|
private String groupId;
|
||||||
|
|
||||||
|
private String artifactId;
|
||||||
|
|
||||||
|
private List dependencies;
|
||||||
|
|
||||||
|
private boolean isolatedRealm;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public List getMojos()
|
||||||
|
{
|
||||||
|
return mojos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMojos( List mojos )
|
||||||
|
{
|
||||||
|
this.mojos = new LinkedList( mojos );
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGroupId()
|
||||||
|
{
|
||||||
|
return groupId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGroupId( String groupId )
|
||||||
|
{
|
||||||
|
this.groupId = groupId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getArtifactId()
|
||||||
|
{
|
||||||
|
return artifactId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setArtifactId( String artifactId )
|
||||||
|
{
|
||||||
|
this.artifactId = artifactId;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Dependencies
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
public List getDependencies()
|
||||||
|
{
|
||||||
|
return dependencies;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDependencies( List dependencies )
|
||||||
|
{
|
||||||
|
this.dependencies = new LinkedList( dependencies );
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIsolatedRealm()
|
||||||
|
{
|
||||||
|
return isolatedRealm;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,186 @@
|
||||||
|
package org.apache.maven.plugin.descriptor;
|
||||||
|
|
||||||
|
import org.apache.maven.plugin.AbstractPlugin;
|
||||||
|
import org.codehaus.plexus.configuration.PlexusConfiguration;
|
||||||
|
import org.codehaus.plexus.configuration.PlexusConfigurationException;
|
||||||
|
import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
|
||||||
|
import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
|
||||||
|
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginDescriptorBuilder
|
||||||
|
{
|
||||||
|
public PluginDescriptor build( Reader reader )
|
||||||
|
throws PlexusConfigurationException
|
||||||
|
{
|
||||||
|
PlexusConfiguration c = buildConfiguration( reader );
|
||||||
|
|
||||||
|
PluginDescriptor pluginDescriptor = new PluginDescriptor();
|
||||||
|
|
||||||
|
pluginDescriptor.setGroupId( AbstractPlugin.getDefaultPluginGroupId() );
|
||||||
|
pluginDescriptor.setArtifactId( AbstractPlugin.getDefaultPluginArtifactId( c.getChild( "id" ).getValue() ) );
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Components
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
PlexusConfiguration[] mojoConfigurations = c.getChild( "mojos" ).getChildren( "mojo" );
|
||||||
|
|
||||||
|
List mojos = new ArrayList();
|
||||||
|
|
||||||
|
for ( int i = 0; i < mojoConfigurations.length; i++ )
|
||||||
|
{
|
||||||
|
PlexusConfiguration component = mojoConfigurations[i];
|
||||||
|
|
||||||
|
mojos.add( buildComponentDescriptor( component ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
pluginDescriptor.setMojos( mojos );
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Dependencies
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
PlexusConfiguration[] dependencyConfigurations = c.getChild( "dependencies" ).getChildren( "dependency" );
|
||||||
|
|
||||||
|
List dependencies = new ArrayList();
|
||||||
|
|
||||||
|
for ( int i = 0; i < dependencyConfigurations.length; i++ )
|
||||||
|
{
|
||||||
|
PlexusConfiguration d = dependencyConfigurations[i];
|
||||||
|
|
||||||
|
Dependency cd = new Dependency();
|
||||||
|
|
||||||
|
cd.setArtifactId( d.getChild( "artifactId" ).getValue() );
|
||||||
|
|
||||||
|
cd.setGroupId( d.getChild( "groupId" ).getValue() );
|
||||||
|
|
||||||
|
cd.setType( d.getChild( "type" ).getValue() );
|
||||||
|
|
||||||
|
cd.setVersion( d.getChild( "version" ).getValue() );
|
||||||
|
|
||||||
|
dependencies.add( cd );
|
||||||
|
}
|
||||||
|
|
||||||
|
pluginDescriptor.setDependencies( dependencies );
|
||||||
|
|
||||||
|
return pluginDescriptor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MojoDescriptor buildComponentDescriptor( PlexusConfiguration c )
|
||||||
|
throws PlexusConfigurationException
|
||||||
|
{
|
||||||
|
MojoDescriptor mojo = new MojoDescriptor();
|
||||||
|
|
||||||
|
mojo.setId( c.getChild( "id" ).getValue() );
|
||||||
|
|
||||||
|
mojo.setImplementation( c.getChild( "implementation" ).getValue() );
|
||||||
|
|
||||||
|
PlexusConfiguration langConfig = c.getChild( "language" );
|
||||||
|
|
||||||
|
if ( langConfig != null )
|
||||||
|
{
|
||||||
|
mojo.setLanguage( langConfig.getValue() );
|
||||||
|
}
|
||||||
|
|
||||||
|
String phase = c.getChild( "phase" ).getValue();
|
||||||
|
|
||||||
|
if ( phase != null )
|
||||||
|
{
|
||||||
|
mojo.setPhase( phase );
|
||||||
|
}
|
||||||
|
|
||||||
|
mojo.setInstantiationStrategy( c.getChild( "instantiationStrategy" ).getValue() );
|
||||||
|
|
||||||
|
mojo.setDescription( c.getChild( "description" ).getValue() );
|
||||||
|
|
||||||
|
String dependencyResolution = c.getChild( "requiresDependencyResolution" ).getValue();
|
||||||
|
|
||||||
|
if ( dependencyResolution != null )
|
||||||
|
{
|
||||||
|
mojo.setRequiresDependencyResolution( dependencyResolution );
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Parameters
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
PlexusConfiguration[] parameterConfigurations = c.getChild( "parameters" ).getChildren( "parameter" );
|
||||||
|
|
||||||
|
List parameters = new ArrayList();
|
||||||
|
|
||||||
|
for ( int i = 0; i < parameterConfigurations.length; i++ )
|
||||||
|
{
|
||||||
|
PlexusConfiguration d = parameterConfigurations[i];
|
||||||
|
|
||||||
|
Parameter parameter = new Parameter();
|
||||||
|
|
||||||
|
parameter.setName( d.getChild( "name" ).getValue() );
|
||||||
|
|
||||||
|
parameter.setType( d.getChild( "type" ).getValue() );
|
||||||
|
|
||||||
|
String s = d.getChild( "required" ).getValue();
|
||||||
|
|
||||||
|
if ( s != null )
|
||||||
|
{
|
||||||
|
parameter.setRequired( s.equals( "true" ) ? true : false );
|
||||||
|
}
|
||||||
|
|
||||||
|
parameter.setValidator( d.getChild( "validator" ).getValue() );
|
||||||
|
|
||||||
|
parameter.setDescription( d.getChild( "description" ).getValue() );
|
||||||
|
|
||||||
|
parameter.setExpression( d.getChild( "expression" ).getValue() );
|
||||||
|
|
||||||
|
parameter.setDefaultValue( d.getChild( "default" ).getValue() );
|
||||||
|
|
||||||
|
parameters.add( parameter );
|
||||||
|
}
|
||||||
|
|
||||||
|
mojo.setParameters( parameters );
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// Prereqs
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
PlexusConfiguration[] prereqConfigurations = c.getChild( "prereqs" ).getChildren( "prereq" );
|
||||||
|
|
||||||
|
List prereqs = new ArrayList();
|
||||||
|
|
||||||
|
for ( int i = 0; i < prereqConfigurations.length; i++ )
|
||||||
|
{
|
||||||
|
PlexusConfiguration d = prereqConfigurations[i];
|
||||||
|
|
||||||
|
prereqs.add( d.getValue() );
|
||||||
|
}
|
||||||
|
|
||||||
|
mojo.setPrereqs( prereqs );
|
||||||
|
|
||||||
|
return mojo;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
// TODO: catches Exception
|
||||||
|
public PlexusConfiguration buildConfiguration( Reader configuration )
|
||||||
|
throws PlexusConfigurationException
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return new XmlPlexusConfiguration( Xpp3DomBuilder.build( configuration ) );
|
||||||
|
}
|
||||||
|
catch ( Exception e )
|
||||||
|
{
|
||||||
|
throw new PlexusConfigurationException( "Error creating configuration", e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue