Compare commits

..

2 Commits

Author SHA1 Message Date
Herve Boutemy 53ff5b83b6 [maven-release-plugin] copy for tag maven-plugin-tools-3.4
git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/tags/maven-plugin-tools-3.4@1648955 13f79535-47bb-0310-9956-ffa450edef68
2015-01-01 21:57:23 +00:00
Herve Boutemy 67b53edc66 [maven-release-plugin] copy for tag maven-plugin-tools-3.4
git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/tags/maven-plugin-tools-3.4@1648758 13f79535-47bb-0310-9956-ffa450edef68
2014-12-31 17:56:44 +00:00
103 changed files with 902 additions and 3384 deletions

1
Jenkinsfile vendored
View File

@ -1 +0,0 @@
asfMavenStdBuild(javaVersions:['8','7'])

View File

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-annotations</artifactId> <artifactId>maven-plugin-annotations</artifactId>

View File

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
@ -74,10 +74,7 @@
<artifactId>maven-plugin-annotations</artifactId> <artifactId>maven-plugin-annotations</artifactId>
<!-- from stricter view, should use ${mavenPluginToolsVersion} but this is causing problems with release plugin --> <!-- from stricter view, should use ${mavenPluginToolsVersion} but this is causing problems with release plugin -->
<!--version>${mavenPluginToolsVersion}</version--> <!--version>${mavenPluginToolsVersion}</version-->
<!-- <scope>provided</scope>
Do not use 'provided' scope here. The annotations are a transitive dependency of
'maven-plugin-tools-annotations' which fails to load at runtime when not available.
-->
</dependency> </dependency>
<!-- doxia --> <!-- doxia -->
@ -167,13 +164,6 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>maven-surefire-common</artifactId>
<version>2.19.1</version>
</dependency>
<!-- other --> <!-- other -->
<dependency> <dependency>
<groupId>org.apache.velocity</groupId> <groupId>org.apache.velocity</groupId>
@ -197,17 +187,16 @@
</dependencies> </dependencies>
<build> <build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/filtered-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<pluginManagement> <pluginManagement>
<plugins> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration><!-- TODO remove when upgrading parent pom -->
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin> <plugin>
<groupId>org.apache.rat</groupId> <groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId> <artifactId>apache-rat-plugin</artifactId>
@ -264,7 +253,6 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId> <artifactId>maven-plugin-plugin</artifactId>
<version>3.5</version>
<!-- will use previous maven-plugin-plugin release to build current maven-plugin-plugin as configured in parent --> <!-- will use previous maven-plugin-plugin release to build current maven-plugin-plugin as configured in parent -->
<executions> <executions>
<execution> <execution>
@ -372,10 +360,6 @@
<sitePluginVersion>3.3</sitePluginVersion> <sitePluginVersion>3.3</sitePluginVersion>
<antVersion>${antVersion}</antVersion> <antVersion>${antVersion}</antVersion>
</filterProperties> </filterProperties>
<properties>
<maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
<maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
</properties>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>
@ -404,7 +388,7 @@
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId> <artifactId>maven-plugin-plugin</artifactId>
<configuration> <configuration>
<!-- see https://issues.apache.org/jira/browse/MNG-5346 --> <!-- see http://jira.codehaus.org/browse/MNG-5346 -->
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration> </configuration>
<executions> <executions>

View File

@ -36,8 +36,6 @@ under the License.
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- pom properties values not taken into account since invoker defines properties -->
<!-- that override what's defined in pom -->
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
</properties> </properties>
@ -72,11 +70,7 @@ under the License.
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version> <version>2.4</version>
<configuration>
<source>1.8</source><!-- avoid ${maven.compiler.source} since value is not as expected -->
<target>1.8</target><!-- avoid ${maven.compiler.target} since value is not as expected -->
</configuration>
</plugin> </plugin>
</plugins> </plugins>
</pluginManagement> </pluginManagement>

View File

@ -1,30 +0,0 @@
package fr.ca;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
public interface TestInterface {
/**
* Java 8 required to support such default method implementation
*/
public default void foo(){
}
}

View File

@ -1,47 +1,47 @@
package org.apache.maven.plugin.coreit; package org.apache.maven.plugin.coreit;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file * or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information * distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file * regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the * to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance * "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at * with the License. You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the * KIND, either express or implied. See the License for the
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.Parameter;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
/** /**
* Could not use regex in @Parameter(defaultValue) * Could not use regex in @Parameter(defaultValue)
*/ */
@Mojo( name = "mplugin-220" ) @Mojo( name = "mplugin-220" )
public class MPlugin220Mojo public class MPlugin220Mojo
extends AbstractMojo extends AbstractMojo
{ {
@Parameter( defaultValue = "[a-zA-Z]{2,}-\\\\d+" ) @Parameter( defaultValue = "[a-zA-Z]{2,}-\\\\d+" )
private String regex; private String regex;
public void execute() public void execute()
throws MojoExecutionException throws MojoExecutionException
{ {
getLog().info( "regex = " + regex ); getLog().info( "regex = " + regex );
} }
} }

View File

@ -1,18 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file # or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information # distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file # regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the # to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance # "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at # with the License. You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, # Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an # software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
invoker.goals = clean plugin:report -DskipTests invoker.goals = clean plugin:report -DskipTests

View File

@ -1,45 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
Licensed to the Apache Software Foundation (ASF) under one Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file or more contributor license agreements. See the NOTICE file
distributed with this work for additional information distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the KIND, either express or implied. See the License for the
specific language governing permissions and limitations specific language governing permissions and limitations
under the License. under the License.
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.plugins.plugin.its</groupId> <groupId>org.apache.maven.plugins.plugin.its</groupId>
<artifactId>mplugin-187</artifactId> <artifactId>mplugin-187</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<description>Verify that plugin:report succeeds</description> <description>Verify that plugin:report succeeds</description>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId> <artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version> <version>@project.version@</version>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@ -1,18 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file # or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information # distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file # regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the # to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance # "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at # with the License. You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, # Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an # software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
invoker.goals = clean compile plugin:report invoker.goals = clean compile plugin:report

View File

@ -1,81 +1,81 @@
package org.apache.maven.plugins.plugin.it; package org.apache.maven.plugins.plugin.it;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. * this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0 * The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with * (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at * the License. You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.Parameter;
import java.io.File; import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
/** /**
* Goal which touches a timestamp file. * Goal which touches a timestamp file.
*/ */
@Mojo(name = "touch", defaultPhase = LifecyclePhase.PROCESS_RESOURCES) @Mojo(name = "touch", defaultPhase = LifecyclePhase.PROCESS_RESOURCES)
public class MyMojo public class MyMojo
extends AbstractMojo extends AbstractMojo
{ {
/** /**
* Location of the file. * Location of the file.
*/ */
@Parameter(defaultValue = "${project.build.directory}", required = true) @Parameter(defaultValue = "${project.build.directory}", required = true)
private File outputDirectory; private File outputDirectory;
public void execute() public void execute()
throws MojoExecutionException throws MojoExecutionException
{ {
File f = outputDirectory; File f = outputDirectory;
if ( !f.exists() ) if ( !f.exists() )
{ {
f.mkdirs(); f.mkdirs();
} }
File touch = new File( f, "touch.txt" ); File touch = new File( f, "touch.txt" );
FileWriter w = null; FileWriter w = null;
try try
{ {
w = new FileWriter( touch ); w = new FileWriter( touch );
w.write( "touch.txt" ); w.write( "touch.txt" );
} }
catch ( IOException e ) catch ( IOException e )
{ {
throw new MojoExecutionException( "Error creating file " + touch, e ); throw new MojoExecutionException( "Error creating file " + touch, e );
} }
finally finally
{ {
if ( w != null ) if ( w != null )
{ {
try try
{ {
w.close(); w.close();
} }
catch ( IOException e ) catch ( IOException e )
{ {
// ignore // ignore
} }
} }
} }
} }
} }

View File

@ -1,24 +1,24 @@
/* /*
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. * this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0 * The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with * (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at * the License. You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
File pluginInfo = new File( basedir, "target/site/plugin-info.html" ); File pluginInfo = new File( basedir, "target/site/plugin-info.html" );
assert pluginInfo.isFile() assert pluginInfo.isFile()
File touchMojo = new File( basedir, "target/generated-site/xdoc/touch-mojo.xml" ); File touchMojo = new File( basedir, "target/generated-site/xdoc/touch-mojo.xml" );
assert touchMojo.isFile() assert touchMojo.isFile()
return true; return true;

View File

@ -1,19 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file # or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information # distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file # regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the # to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance # "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at # with the License. You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, # Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an # software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
invoker.java.version = 1.8+ invoker.java.version = 1.8+
invoker.goals.1 = clean verify invoker.goals.1 = clean verify

View File

@ -1,37 +1,37 @@
package fr.ca; package fr.ca;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file * or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information * distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file * regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the * to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance * "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at * with the License. You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the * KIND, either express or implied. See the License for the
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Mojo;
/** /**
* Created by clement.agarini on 04/08/14. * Created by clement.agarini on 04/08/14.
*/ */
@Mojo(name="test-plugin",defaultPhase = LifecyclePhase.GENERATE_SOURCES) @Mojo(name="test-plugin",defaultPhase = LifecyclePhase.GENERATE_SOURCES)
public class MyMojo extends AbstractMojo { public class MyMojo extends AbstractMojo {
@Override @Override
public void execute() throws MojoExecutionException, MojoFailureException { public void execute() throws MojoExecutionException, MojoFailureException {
} }
} }

View File

@ -1,30 +1,27 @@
package fr.ca; package fr.ca;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file * or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information * distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file * regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the * to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance * "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at * with the License. You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the * KIND, either express or implied. See the License for the
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
public interface TestInterface { public interface TestInterface {
/** public default void foo(){
* Java 8 required to support such default method implementation
*/ }
public default void foo(){ }
}
}

View File

@ -1,20 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
invoker.maven.version = 3.0+
invoker.goals.1 = clean install -DskipTests
invoker.goals.2 = --log-file help.log org.apache.maven.its.plugin:help:1.0-SNAPSHOT:help

View File

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>help</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<description>
Tests generation and compilation of the help mojo.
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>@project.version@</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version>
<executions>
<execution>
<id>default-descriptor</id>
<phase>process-classes</phase>
</execution>
<execution>
<id>help-goal</id>
<goals>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,37 +0,0 @@
package test;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.AbstractMojo;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
@Mojo( name= "test" )
public class MyMojo
extends AbstractMojo
{
@Parameter
private String empyAnnotatedParameter;
public void execute()
{
}
}

View File

@ -1,19 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
detail = true
goal = test

View File

@ -1,18 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
invoker.goals.1 = clean process-classes

View File

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.plugins.plugin.its</groupId>
<artifactId>mplugin305</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<url>https://issues.apache.org/jira/browse/MPLUGIN-305</url>
<properties>
<mavenPluginPluginVersion>@project.version@</mavenPluginPluginVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>${mavenPluginPluginVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>maven-surefire-common</artifactId>
<version>2.19.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${mavenPluginPluginVersion}</version>
<configuration>
<extractors>
<extractor>java-annotations</extractor>
</extractors>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,289 +0,0 @@
package org.apache.maven.plugins.plugin.it;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.io.File;
import java.util.List;
import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.surefire.suite.RunResult;
@Mojo(name="custom-surefire")
public class CustomSurefireMojo extends AbstractSurefireMojo {
public File getBasedir()
{
return null;
}
public File getClassesDirectory()
{
return null;
}
public String getDebugForkedProcess()
{
return null;
}
public Boolean getFailIfNoSpecifiedTests()
{
return null;
}
public int getForkedProcessTimeoutInSeconds()
{
return 0;
}
public double getParallelTestsTimeoutForcedInSeconds()
{
return 0;
}
public double getParallelTestsTimeoutInSeconds()
{
return 0;
}
public String getReportFormat()
{
return null;
}
public File getReportsDirectory()
{
return null;
}
public String getShutdown()
{
return null;
}
public int getSkipAfterFailureCount()
{
return 0;
}
public String getTest()
{
return null;
}
public File getTestClassesDirectory()
{
return null;
}
public boolean isPrintSummary()
{
return false;
}
public boolean isSkip()
{
return false;
}
public boolean isSkipExec()
{
return false;
}
public boolean isSkipTests()
{
return false;
}
public boolean isUseFile()
{
return false;
}
public boolean isUseManifestOnlyJar()
{
return false;
}
public boolean isUseSystemClassLoader()
{
return false;
}
public void setBasedir( File arg0 )
{
}
public void setClassesDirectory( File arg0 )
{
}
public void setDebugForkedProcess( String arg0 )
{
}
public void setFailIfNoSpecifiedTests( boolean arg0 )
{
}
public void setForkedProcessTimeoutInSeconds( int arg0 )
{
}
public void setParallelTestsTimeoutForcedInSeconds( double arg0 )
{
}
public void setParallelTestsTimeoutInSeconds( double arg0 )
{
}
public void setPrintSummary( boolean arg0 )
{
}
public void setReportFormat( String arg0 )
{
}
public void setReportsDirectory( File arg0 )
{
}
public void setSkip( boolean arg0 )
{
}
public void setSkipExec( boolean arg0 )
{
}
public void setSkipTests( boolean arg0 )
{
}
public void setTest( String arg0 )
{
}
public void setTestClassesDirectory( File arg0 )
{
}
public void setUseFile( boolean arg0 )
{
}
public void setUseManifestOnlyJar( boolean arg0 )
{
}
public void setUseSystemClassLoader( boolean arg0 )
{
}
@Override
protected String[] getDefaultIncludes()
{
return null;
}
@Override
public File getExcludesFile()
{
return null;
}
@Override
public List<String> getIncludes()
{
return null;
}
@Override
public File getIncludesFile()
{
return null;
}
@Override
protected String getPluginName()
{
return null;
}
@Override
protected int getRerunFailingTestsCount()
{
return 0;
}
@Override
public String getRunOrder()
{
return null;
}
@Override
public File[] getSuiteXmlFiles()
{
return null;
}
@Override
protected void handleSummary( RunResult arg0, Exception arg1 )
{
}
@Override
protected boolean hasSuiteXmlFiles()
{
return false;
}
@Override
protected boolean isSkipExecution()
{
return false;
}
@Override
public void setIncludes( List<String> arg0 )
{
}
@Override
public void setRunOrder( String arg0 )
{
}
@Override
public void setSuiteXmlFiles( File[] arg0 )
{
}
@Override
protected List<File> suiteXmlFiles()
{
return null;
}
}

View File

@ -1,26 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" );
assert descriptorFile.isFile()
def pluginDescriptor = new XmlParser().parse( descriptorFile );
assert pluginDescriptor.mojos.mojo.size() == 1
assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 50
return true;

View File

@ -1,18 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
invoker.goals.1 = clean process-classes

View File

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.plugins.plugin.its</groupId>
<artifactId>mplugin305</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<url>https://issues.apache.org/jira/browse/MPLUGIN-305</url>
<properties>
<mavenPluginPluginVersion>@project.version@</mavenPluginPluginVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>${mavenPluginPluginVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>maven-surefire-common</artifactId>
<version>2.19.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${mavenPluginPluginVersion}</version>
<configuration>
<extractors>
<extractor>java-annotations</extractor>
</extractors>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<goals>
<goal>descriptor</goal>
</goals>
<configuration>
<mojoDependencies/>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,289 +0,0 @@
package org.apache.maven.plugins.plugin.it;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.io.File;
import java.util.List;
import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.surefire.suite.RunResult;
@Mojo(name="custom-surefire")
public class CustomSurefireMojo extends AbstractSurefireMojo {
public File getBasedir()
{
return null;
}
public File getClassesDirectory()
{
return null;
}
public String getDebugForkedProcess()
{
return null;
}
public Boolean getFailIfNoSpecifiedTests()
{
return null;
}
public int getForkedProcessTimeoutInSeconds()
{
return 0;
}
public double getParallelTestsTimeoutForcedInSeconds()
{
return 0;
}
public double getParallelTestsTimeoutInSeconds()
{
return 0;
}
public String getReportFormat()
{
return null;
}
public File getReportsDirectory()
{
return null;
}
public String getShutdown()
{
return null;
}
public int getSkipAfterFailureCount()
{
return 0;
}
public String getTest()
{
return null;
}
public File getTestClassesDirectory()
{
return null;
}
public boolean isPrintSummary()
{
return false;
}
public boolean isSkip()
{
return false;
}
public boolean isSkipExec()
{
return false;
}
public boolean isSkipTests()
{
return false;
}
public boolean isUseFile()
{
return false;
}
public boolean isUseManifestOnlyJar()
{
return false;
}
public boolean isUseSystemClassLoader()
{
return false;
}
public void setBasedir( File arg0 )
{
}
public void setClassesDirectory( File arg0 )
{
}
public void setDebugForkedProcess( String arg0 )
{
}
public void setFailIfNoSpecifiedTests( boolean arg0 )
{
}
public void setForkedProcessTimeoutInSeconds( int arg0 )
{
}
public void setParallelTestsTimeoutForcedInSeconds( double arg0 )
{
}
public void setParallelTestsTimeoutInSeconds( double arg0 )
{
}
public void setPrintSummary( boolean arg0 )
{
}
public void setReportFormat( String arg0 )
{
}
public void setReportsDirectory( File arg0 )
{
}
public void setSkip( boolean arg0 )
{
}
public void setSkipExec( boolean arg0 )
{
}
public void setSkipTests( boolean arg0 )
{
}
public void setTest( String arg0 )
{
}
public void setTestClassesDirectory( File arg0 )
{
}
public void setUseFile( boolean arg0 )
{
}
public void setUseManifestOnlyJar( boolean arg0 )
{
}
public void setUseSystemClassLoader( boolean arg0 )
{
}
@Override
protected String[] getDefaultIncludes()
{
return null;
}
@Override
public File getExcludesFile()
{
return null;
}
@Override
public List<String> getIncludes()
{
return null;
}
@Override
public File getIncludesFile()
{
return null;
}
@Override
protected String getPluginName()
{
return null;
}
@Override
protected int getRerunFailingTestsCount()
{
return 0;
}
@Override
public String getRunOrder()
{
return null;
}
@Override
public File[] getSuiteXmlFiles()
{
return null;
}
@Override
protected void handleSummary( RunResult arg0, Exception arg1 )
{
}
@Override
protected boolean hasSuiteXmlFiles()
{
return false;
}
@Override
protected boolean isSkipExecution()
{
return false;
}
@Override
public void setIncludes( List<String> arg0 )
{
}
@Override
public void setRunOrder( String arg0 )
{
}
@Override
public void setSuiteXmlFiles( File[] arg0 )
{
}
@Override
protected List<File> suiteXmlFiles()
{
return null;
}
}

View File

@ -1,26 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" );
assert descriptorFile.isFile()
def pluginDescriptor = new XmlParser().parse( descriptorFile );
assert pluginDescriptor.mojos.mojo.size() == 1
assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 0
return true;

View File

@ -1,18 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
invoker.goals.1 = clean process-classes

View File

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.plugins.plugin.its</groupId>
<artifactId>mplugin305</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<url>https://issues.apache.org/jira/browse/MPLUGIN-305</url>
<properties>
<mavenPluginPluginVersion>@project.version@</mavenPluginPluginVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>${mavenPluginPluginVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>maven-surefire-common</artifactId>
<version>2.19.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${mavenPluginPluginVersion}</version>
<configuration>
<extractors>
<extractor>java-annotations</extractor>
</extractors>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
<mojoDependencies>
<mojoDependency>org.apache.maven.surefire:maven-surefire-common</mojoDependency>
</mojoDependencies>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,289 +0,0 @@
package org.apache.maven.plugins.plugin.it;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.io.File;
import java.util.List;
import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.surefire.suite.RunResult;
@Mojo(name="custom-surefire")
public class CustomSurefireMojo extends AbstractSurefireMojo {
public File getBasedir()
{
return null;
}
public File getClassesDirectory()
{
return null;
}
public String getDebugForkedProcess()
{
return null;
}
public Boolean getFailIfNoSpecifiedTests()
{
return null;
}
public int getForkedProcessTimeoutInSeconds()
{
return 0;
}
public double getParallelTestsTimeoutForcedInSeconds()
{
return 0;
}
public double getParallelTestsTimeoutInSeconds()
{
return 0;
}
public String getReportFormat()
{
return null;
}
public File getReportsDirectory()
{
return null;
}
public String getShutdown()
{
return null;
}
public int getSkipAfterFailureCount()
{
return 0;
}
public String getTest()
{
return null;
}
public File getTestClassesDirectory()
{
return null;
}
public boolean isPrintSummary()
{
return false;
}
public boolean isSkip()
{
return false;
}
public boolean isSkipExec()
{
return false;
}
public boolean isSkipTests()
{
return false;
}
public boolean isUseFile()
{
return false;
}
public boolean isUseManifestOnlyJar()
{
return false;
}
public boolean isUseSystemClassLoader()
{
return false;
}
public void setBasedir( File arg0 )
{
}
public void setClassesDirectory( File arg0 )
{
}
public void setDebugForkedProcess( String arg0 )
{
}
public void setFailIfNoSpecifiedTests( boolean arg0 )
{
}
public void setForkedProcessTimeoutInSeconds( int arg0 )
{
}
public void setParallelTestsTimeoutForcedInSeconds( double arg0 )
{
}
public void setParallelTestsTimeoutInSeconds( double arg0 )
{
}
public void setPrintSummary( boolean arg0 )
{
}
public void setReportFormat( String arg0 )
{
}
public void setReportsDirectory( File arg0 )
{
}
public void setSkip( boolean arg0 )
{
}
public void setSkipExec( boolean arg0 )
{
}
public void setSkipTests( boolean arg0 )
{
}
public void setTest( String arg0 )
{
}
public void setTestClassesDirectory( File arg0 )
{
}
public void setUseFile( boolean arg0 )
{
}
public void setUseManifestOnlyJar( boolean arg0 )
{
}
public void setUseSystemClassLoader( boolean arg0 )
{
}
@Override
protected String[] getDefaultIncludes()
{
return null;
}
@Override
public File getExcludesFile()
{
return null;
}
@Override
public List<String> getIncludes()
{
return null;
}
@Override
public File getIncludesFile()
{
return null;
}
@Override
protected String getPluginName()
{
return null;
}
@Override
protected int getRerunFailingTestsCount()
{
return 0;
}
@Override
public String getRunOrder()
{
return null;
}
@Override
public File[] getSuiteXmlFiles()
{
return null;
}
@Override
protected void handleSummary( RunResult arg0, Exception arg1 )
{
}
@Override
protected boolean hasSuiteXmlFiles()
{
return false;
}
@Override
protected boolean isSkipExecution()
{
return false;
}
@Override
public void setIncludes( List<String> arg0 )
{
}
@Override
public void setRunOrder( String arg0 )
{
}
@Override
public void setSuiteXmlFiles( File[] arg0 )
{
}
@Override
protected List<File> suiteXmlFiles()
{
return null;
}
}

View File

@ -1,26 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" );
assert descriptorFile.isFile()
def pluginDescriptor = new XmlParser().parse( descriptorFile );
assert pluginDescriptor.mojos.mojo.size() == 1
assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 50
return true;

View File

@ -1,19 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
invoker.goals = clean plugin:report
invoker.mavenOpts = -Duser.language=en -Duser.country=US -Duser.variant=US

View File

@ -1,86 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.plugins.its.plugin</groupId>
<artifactId>report-since</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>@sitePluginVersion@</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version>
</plugin>
</plugins>
</reporting>
</project>

View File

@ -1,67 +0,0 @@
package org;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.AbstractMojo;
/**
* Does nothing.
*
* @goal noop
* @phase process-sources
* @requiresDependencyResolution test
* @requiresDirectInvocation true
* @requiresOnline
* @inheritByDefault false
* @execute phase="compile"
* @aggregator
* @since 1.0
*
* @deprecated You don't use test goals, do you?
*/
public class MyMojo
extends AbstractMojo
{
/**
* This is a test.
*
* @parameter
* @required
*/
@SuppressWarnings( "unused" )
private String required;
/**
* This is a test.
*
* @parameter expression="${string}" default-value="${project.version}/</markup-must-be-escaped>"
* @deprecated Just testing.
* @since 1.1
*/
@SuppressWarnings( "unused" )
private String string;
public void execute()
{
// intentional do nothing
}
}

View File

@ -1,27 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
assert new File( basedir, 'target/generated-site' ).exists()
content = new File( basedir, 'target/generated-site/xdoc/noop-mojo.xml' ).text
assert content.contains( '<li><strong>Since</strong>: <code>1.0</code></li>' )
assert content.contains( '<li><strong>Since</strong>: <code>1.1</code></li>' )
return true

View File

@ -1,18 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
invoker.goals = process-classes javadoc:javadoc

View File

@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.plugins.plugin.its</groupId>
<artifactId>mplugin3224</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<description>
Generation javadoc for private methods should be valid
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>@project.version@</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<level>private</level>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version>
<executions>
<execution>
<id>default-descriptor</id>
<phase>process-classes</phase>
</execution>
<execution>
<id>help-goal</id>
<goals>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,68 +0,0 @@
package test;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.AbstractMojo;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
/**
* MOJO-DESCRIPTION. Some "quotation" marks and backslashes '\\', some <strong>important</strong> javadoc<br> and an
* inline link to {@link org.apache.maven.plugin.AbstractMojo}.
*
* @deprecated As of 1.0, use the "quoted" goal instead.
* @since 2.1
*/
@Mojo( name= "test" )
public class MyMojo
extends AbstractMojo
{
/**
* This parameter uses "quotation" marks and backslashes '\\' in its description. Those characters <em>must</em> be
* escaped in Java string literals.
*
* @since 2.0
*/
@Parameter( defaultValue = "escape\\backslash" )
private String defaultParam;
/**
* This parameter is deprecated.
*
* @deprecated As of version 1.0, use the {@link #defaultParam} instead.
*/
@Parameter
private String deprecatedParam;
@Parameter( property = "test.undocumented", required = true )
private String undocumentedParam;
/**
* Readonly parameter: should not be proposed for configuration.
*/
@Parameter( defaultValue = "not for configuration", readonly = true )
private String readonly;
public void execute()
{
}
}

View File

@ -0,0 +1,84 @@
package org.apache.maven.plugins.issues.plugin;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* Goal which touches a timestamp file.
*
* @goal touch
*
* @phase process-sources
*/
public class MyMojo
extends AbstractMojo
{
/**
* Location of the file.
* @parameter expression="${project.build.directory}"
* @required
*/
private File outputDirectory;
public void execute()
throws MojoExecutionException
{
File f = outputDirectory;
if ( !f.exists() )
{
f.mkdirs();
}
File touch = new File( f, "touch.txt" );
FileWriter w = null;
try
{
w = new FileWriter( touch );
w.write( "touch.txt" );
}
catch ( IOException e )
{
throw new MojoExecutionException( "Error creating file " + touch, e );
}
finally
{
if ( w != null )
{
try
{
w.close();
}
catch ( IOException e )
{
// ignore
}
}
}
}
}

View File

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<plugin>
<name>target bytecode defined by plugin configuration</name>
<description></description>
<groupId>org.apache.maven.its.plugin-info-jdk</groupId>
<artifactId>plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<goalPrefix></goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos>
<mojo>
<goal>touch</goal>
<description>Goal which touches a timestamp file.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<phase>process-sources</phase>
<implementation>org.apache.maven.plugins.issues.plugin.MyMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>false</threadSafe>
<parameters>
<parameter>
<name>outputDirectory</name>
<type>java.io.File</type>
<required>true</required>
<editable>true</editable>
<description>Location of the file.</description>
</parameter>
</parameters>
<configuration>
<outputDirectory implementation="java.io.File">${project.build.directory}</outputDirectory>
</configuration>
</mojo>
</mojos>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<type>jar</type>
<version>2.0</version>
</dependency>
</dependencies>
</plugin>

View File

@ -0,0 +1,84 @@
package org.apache.maven.plugins.issues.plugin;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* Goal which touches a timestamp file.
*
* @goal touch
*
* @phase process-sources
*/
public class MyMojo
extends AbstractMojo
{
/**
* Location of the file.
* @parameter expression="${project.build.directory}"
* @required
*/
private File outputDirectory;
public void execute()
throws MojoExecutionException
{
File f = outputDirectory;
if ( !f.exists() )
{
f.mkdirs();
}
File touch = new File( f, "touch.txt" );
FileWriter w = null;
try
{
w = new FileWriter( touch );
w.write( "touch.txt" );
}
catch ( IOException e )
{
throw new MojoExecutionException( "Error creating file " + touch, e );
}
finally
{
if ( w != null )
{
try
{
w.close();
}
catch ( IOException e )
{
// ignore
}
}
}
}
}

View File

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<plugin>
<name>target bytecode defined by pluginManagement configuration</name>
<description></description>
<groupId>org.apache.maven.its.plugin-info-jdk</groupId>
<artifactId>pluginManagement</artifactId>
<version>1.0-SNAPSHOT</version>
<goalPrefix>Management</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos>
<mojo>
<goal>touch</goal>
<description>Goal which touches a timestamp file.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<phase>process-sources</phase>
<implementation>org.apache.maven.plugins.issues.plugin.MyMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>false</threadSafe>
<parameters>
<parameter>
<name>outputDirectory</name>
<type>java.io.File</type>
<required>true</required>
<editable>true</editable>
<description>Location of the file.</description>
</parameter>
</parameters>
<configuration>
<outputDirectory implementation="java.io.File">${project.build.directory}</outputDirectory>
</configuration>
</mojo>
</mojos>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<type>jar</type>
<version>2.0</version>
</dependency>
</dependencies>
</plugin>

View File

@ -59,9 +59,6 @@ under the License.
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId> <artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version> <version>@project.version@</version>
<configuration>
<skipDescriptor>true</skipDescriptor>
</configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>

View File

@ -0,0 +1,84 @@
package org.apache.maven.plugins.issues.plugin;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* Goal which touches a timestamp file.
*
* @goal touch
*
* @phase process-sources
*/
public class MyMojo
extends AbstractMojo
{
/**
* Location of the file.
* @parameter expression="${project.build.directory}"
* @required
*/
private File outputDirectory;
public void execute()
throws MojoExecutionException
{
File f = outputDirectory;
if ( !f.exists() )
{
f.mkdirs();
}
File touch = new File( f, "touch.txt" );
FileWriter w = null;
try
{
w = new FileWriter( touch );
w.write( "touch.txt" );
}
catch ( IOException e )
{
throw new MojoExecutionException( "Error creating file " + touch, e );
}
finally
{
if ( w != null )
{
try
{
w.close();
}
catch ( IOException e )
{
// ignore
}
}
}
}
}

View File

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<plugin>
<name>target bytecode defined by maven.compiler.target property</name>
<description></description>
<groupId>org.apache.maven.its.plugin-info-jdk</groupId>
<artifactId>property</artifactId>
<version>1.0-SNAPSHOT</version>
<goalPrefix>property</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos>
<mojo>
<goal>touch</goal>
<description>Goal which touches a timestamp file.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<phase>process-sources</phase>
<implementation>org.apache.maven.plugins.issues.plugin.MyMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>false</threadSafe>
<parameters>
<parameter>
<name>outputDirectory</name>
<type>java.io.File</type>
<required>true</required>
<editable>true</editable>
<description>Location of the file.</description>
</parameter>
</parameters>
<configuration>
<outputDirectory implementation="java.io.File">${project.build.directory}</outputDirectory>
</configuration>
</mojo>
</mojos>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<type>jar</type>
<version>2.0</version>
</dependency>
</dependencies>
</plugin>

View File

@ -0,0 +1,84 @@
package org.apache.maven.plugins.issues.plugin;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* Goal which touches a timestamp file.
*
* @goal touch
*
* @phase process-sources
*/
public class MyMojo
extends AbstractMojo
{
/**
* Location of the file.
* @parameter expression="${project.build.directory}"
* @required
*/
private File outputDirectory;
public void execute()
throws MojoExecutionException
{
File f = outputDirectory;
if ( !f.exists() )
{
f.mkdirs();
}
File touch = new File( f, "touch.txt" );
FileWriter w = null;
try
{
w = new FileWriter( touch );
w.write( "touch.txt" );
}
catch ( IOException e )
{
throw new MojoExecutionException( "Error creating file " + touch, e );
}
finally
{
if ( w != null )
{
try
{
w.close();
}
catch ( IOException e )
{
// ignore
}
}
}
}
}

View File

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<plugin>
<name>target bytecode defined by report jdk requirement configuration</name>
<description></description>
<groupId>org.apache.maven.its.plugin-info-jdk</groupId>
<artifactId>requirement</artifactId>
<version>1.0-SNAPSHOT</version>
<goalPrefix>requirement</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos>
<mojo>
<goal>touch</goal>
<description>Goal which touches a timestamp file.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<phase>process-sources</phase>
<implementation>org.apache.maven.plugins.issues.plugin.MyMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>false</threadSafe>
<parameters>
<parameter>
<name>outputDirectory</name>
<type>java.io.File</type>
<required>true</required>
<editable>true</editable>
<description>Location of the file.</description>
</parameter>
</parameters>
<configuration>
<outputDirectory implementation="java.io.File">${project.build.directory}</outputDirectory>
</configuration>
</mojo>
</mojos>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<type>jar</type>
<version>2.0</version>
</dependency>
</dependencies>
</plugin>

View File

@ -1,18 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
maven.compiler.source=1.3
maven.compiler.target=1.3

View File

@ -62,16 +62,6 @@ under the License.
<build> <build>
<plugins> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<!-- old maven-parent, so fix it like this. -->
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId> <artifactId>maven-plugin-plugin</artifactId>

View File

@ -1,19 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one # Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file # or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information # distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file # regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the # to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance # "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at # with the License. You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, # Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an # software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations # specific language governing permissions and limitations
# under the License. # under the License.
invoker.goals = install -DskipTests invoker.goals = install -DskipTests
invoker.mavenOpts = -Dmaven.plugin.skip=true invoker.mavenOpts = -Dmaven.plugin.skip=true

View File

@ -1,23 +1,23 @@
/* /*
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file * or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information * distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file * regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the * to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance * "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at * with the License. You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the * KIND, either express or implied. See the License for the
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" ); File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" );
assert !descriptorFile.isFile() assert !descriptorFile.isFile()
return true; return true;

View File

@ -1,93 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<component-set>
<components>
<!--
| MAVEN PLUGIN
|-->
<component>
<role>org.apache.maven.artifact.handler.ArtifactHandler</role>
<role-hint>maven-plugin</role-hint>
<implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
<configuration>
<type>maven-plugin</type>
<extension>jar</extension>
<language>java</language>
<addedToClasspath>true</addedToClasspath>
</configuration>
</component>
<!--
| Defining the phases with their appropriate plugins
! and versions which will be executed during the 'default'
! life cycle.
-->
<!--
| MAVEN PLUGIN
|-->
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>maven-plugin</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<!-- START SNIPPET: maven-plugin-lifecycle -->
<phases>
<process-resources>
org.apache.maven.plugins:maven-resources-plugin:3.0.1:resources
</process-resources>
<compile>
org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile
</compile>
<process-classes>
org.apache.maven.plugins:maven-plugin-plugin:${project.version}:descriptor
</process-classes>
<process-test-resources>
org.apache.maven.plugins:maven-resources-plugin:3.0.1:testResources
</process-test-resources>
<test-compile>
org.apache.maven.plugins:maven-compiler-plugin:3.5.1:testCompile
</test-compile>
<test>
org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test
</test>
<package>
org.apache.maven.plugins:maven-jar-plugin:3.0.2:jar,
org.apache.maven.plugins:maven-plugin-plugin:${project.version}:addPluginArtifactMetadata
</package>
<install>
org.apache.maven.plugins:maven-install-plugin:2.5.2:install
</install>
<deploy>
org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy
</deploy>
</phases>
<!-- END SNIPPET: maven-plugin-lifecycle -->
</lifecycle>
</lifecycles>
</configuration>
</component>
</components>
</component-set>

View File

@ -21,8 +21,6 @@ package org.apache.maven.plugin.plugin;
import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.resolver.filter.IncludesArtifactFilter;
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException; import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
@ -42,7 +40,6 @@ import org.codehaus.plexus.util.ReaderFactory;
import java.io.File; import java.io.File;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -132,16 +129,6 @@ public abstract class AbstractGeneratorMojo
*/ */
@Parameter( defaultValue = "${project.artifacts}", required = true, readonly = true ) @Parameter( defaultValue = "${project.artifacts}", required = true, readonly = true )
protected Set<Artifact> dependencies; protected Set<Artifact> dependencies;
/**
* Specify the dependencies as {@code groupId:artifactId} containing (abstract) Mojos.
* If not specified in the configuration, this is {@code null} and all dependencies are scanned.
* If specified with no children, no dependencies are scanned.
*
* @since 3.5
*/
@Parameter
private List<String> mojoDependencies;
/** /**
* List of Remote Repositories used by the resolver * List of Remote Repositories used by the resolver
@ -236,38 +223,13 @@ public abstract class AbstractGeneratorMojo
if ( encoding == null || encoding.length() < 1 ) if ( encoding == null || encoding.length() < 1 )
{ {
getLog().warn( "Using platform encoding (" + ReaderFactory.FILE_ENCODING getLog().warn( "Using platform encoding (" + ReaderFactory.FILE_ENCODING
+ " actually) to read mojo source files, i.e. build is platform dependent!" ); + " actually) to read mojo metadata, i.e. build is platform dependent!" );
} }
else else
{ {
getLog().info( "Using '" + encoding + "' encoding to read mojo source files." ); getLog().info( "Using '" + encoding + "' encoding to read mojo metadata." );
} }
Set<Artifact> requestDependencies;
if ( mojoDependencies == null )
{
requestDependencies = dependencies;
}
else if ( mojoDependencies == null )
{
requestDependencies = null;
}
else
{
requestDependencies = new LinkedHashSet<Artifact>();
ArtifactFilter filter = new IncludesArtifactFilter( mojoDependencies );
for ( Artifact artifact : dependencies )
{
if ( filter.include( artifact ) )
{
requestDependencies.add( artifact );
}
}
}
try try
{ {
List<ComponentDependency> deps = GeneratorUtils.toComponentDependencies( project.getRuntimeDependencies() ); List<ComponentDependency> deps = GeneratorUtils.toComponentDependencies( project.getRuntimeDependencies() );
@ -276,7 +238,7 @@ public abstract class AbstractGeneratorMojo
PluginToolsRequest request = new DefaultPluginToolsRequest( project, pluginDescriptor ); PluginToolsRequest request = new DefaultPluginToolsRequest( project, pluginDescriptor );
request.setEncoding( encoding ); request.setEncoding( encoding );
request.setSkipErrorNoDescriptorsFound( skipErrorNoDescriptorsFound ); request.setSkipErrorNoDescriptorsFound( skipErrorNoDescriptorsFound );
request.setDependencies( requestDependencies ); request.setDependencies( dependencies );
request.setLocal( this.local ); request.setLocal( this.local );
request.setRemoteRepos( this.remoteRepos ); request.setRemoteRepos( this.remoteRepos );

View File

@ -19,35 +19,19 @@ package org.apache.maven.plugin.plugin;
* under the License. * under the License.
*/ */
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.siterenderer.Renderer; import org.apache.maven.doxia.siterenderer.Renderer;
import org.apache.maven.execution.RuntimeInformation;
import org.apache.maven.model.Plugin; import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException; import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Execute; import org.apache.maven.plugins.annotations.Execute;
import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.plugin.descriptor.MNG6109PluginDescriptorBuilder;
import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.AbstractMavenReport; import org.apache.maven.reporting.AbstractMavenReport;
import org.apache.maven.reporting.AbstractMavenReportRenderer; import org.apache.maven.reporting.AbstractMavenReportRenderer;
@ -61,10 +45,18 @@ import org.apache.maven.tools.plugin.generator.PluginXdocGenerator;
import org.apache.maven.tools.plugin.scanner.MojoScanner; import org.apache.maven.tools.plugin.scanner.MojoScanner;
import org.apache.maven.tools.plugin.util.PluginUtils; import org.apache.maven.tools.plugin.util.PluginUtils;
import org.codehaus.plexus.component.repository.ComponentDependency; import org.codehaus.plexus.component.repository.ComponentDependency;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3Dom;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
/** /**
* Generates the Plugin's documentation report: <code>plugin-info.html</code> plugin overview page, * Generates the Plugin's documentation report: <code>plugin-info.html</code> plugin overview page,
* and one <code><i>goal</i>-mojo.html</code> per goal. * and one <code><i>goal</i>-mojo.html</code> per goal.
@ -190,12 +182,6 @@ public class PluginReport
*/ */
@Parameter( defaultValue = "${localRepository}", required = true, readonly = true ) @Parameter( defaultValue = "${localRepository}", required = true, readonly = true )
protected ArtifactRepository local; protected ArtifactRepository local;
/**
* @since 3.5.1
*/
@Component
private RuntimeInformation rtInfo;
/** /**
* {@inheritDoc} * {@inheritDoc}
@ -260,22 +246,6 @@ public class PluginReport
private PluginDescriptor extractPluginDescriptor() private PluginDescriptor extractPluginDescriptor()
throws MavenReportException throws MavenReportException
{ {
PluginDescriptorBuilder builder = getPluginDescriptorBuilder();
try
{
return builder.build( new FileReader( new File( project.getBuild().getOutputDirectory(),
"META-INF/maven/plugin.xml" ) ) );
}
catch ( FileNotFoundException e )
{
getLog().debug( "Failed to read META-INF/maven/plugin.xml, fall back to mojoScanner" );
}
catch ( PlexusConfigurationException e )
{
getLog().debug( "Failed to read META-INF/maven/plugin.xml, fall back to mojoScanner" );
}
// Copy from AbstractGeneratorMojo#execute() // Copy from AbstractGeneratorMojo#execute()
String defaultGoalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId( project.getArtifactId() ); String defaultGoalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId( project.getArtifactId() );
if ( goalPrefix == null ) if ( goalPrefix == null )
@ -330,38 +300,6 @@ public class PluginReport
return pluginDescriptor; return pluginDescriptor;
} }
/**
* Return the pluginDescriptorBuilder to use based on the Maven version: either use the original from the
* maven-plugin-api or a patched version for Maven versions before the MNG-6109 fix
* (because of Maven MNG-6109 bug that won't give accurate 'since' info when reading plugin.xml).
*
* @return the proper pluginDescriptorBuilder
* @see https://issues.apache.org/jira/browse/MNG-6109
* @see https://issues.apache.org/jira/browse/MPLUGIN-319
*/
private PluginDescriptorBuilder getPluginDescriptorBuilder()
{
PluginDescriptorBuilder pluginDescriptorBuilder;
try
{
VersionRange versionRange = VersionRange.createFromVersionSpec( "(3.3.9,)" );
if ( versionRange.containsVersion( rtInfo.getApplicationVersion() ) )
{
pluginDescriptorBuilder = new PluginDescriptorBuilder();
}
else
{
pluginDescriptorBuilder = new MNG6109PluginDescriptorBuilder();
}
}
catch ( InvalidVersionSpecificationException e )
{
return new MNG6109PluginDescriptorBuilder();
}
return pluginDescriptorBuilder;
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */

View File

@ -1,62 +0,0 @@
package org.apache.maven.plugins.plugin.descriptor;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
/**
* Reads the plugin descriptor and adds the fix for MNG-6109 when using Maven-3.3.9 and before.
* Class can be removed once Maven 3.5.0 is the prerequisite for this plugin.
*
* @author Robert Scholte
* @since 3.5.1
*/
public class MNG6109PluginDescriptorBuilder extends PluginDescriptorBuilder
{
@Override
public MojoDescriptor buildComponentDescriptor( PlexusConfiguration c, PluginDescriptor pluginDescriptor )
throws PlexusConfigurationException
{
MojoDescriptor mojoDescriptor = super.buildComponentDescriptor( c, pluginDescriptor );
// ----------------------------------------------------------------------
// Parameters
// ----------------------------------------------------------------------
PlexusConfiguration[] parameterConfigurations = c.getChild( "parameters" ).getChildren( "parameter" );
for ( PlexusConfiguration d : parameterConfigurations )
{
String parameterName = d.getChild( "name" ).getValue();
Parameter pd = (Parameter) mojoDescriptor.getParameterMap().get( parameterName );
String parameterSince = d.getChild( "since" ).getValue();
pd.setSince( parameterSince );
}
return mojoDescriptor;
}
}

View File

@ -24,18 +24,16 @@
~~ under the License. ~~ under the License.
~~ NOTE: For help with the syntax of this file, see: ~~ NOTE: For help with the syntax of this file, see:
~~ https://maven.apache.org/doxia/references/apt-format.html ~~ http://maven.apache.org/doxia/references/apt-format.html
Using Plugin Tools Java5 Annotations Using Plugin Tools Java5 Annotations
Since version 3.0 of the maven-plugin-plugin, you can use Java5 annotations to generate the Since version 3.0, you can use Java5 annotations to generate the plugin descriptor file.
plugin descriptor file.
<<NOTE>> With annotations, your Mojo super class does not any more require to be in the same project. Provided that the super class also uses annotations, it <<NOTE>> With annotations, your Mojo super class does not any more require to be in the same project. Provided that the super class also uses annotations, it
can now come from reactor projects or external dependencies. By default all dependencies are scanned, but this can be reduced with the <<<mojoDependencies>>> can now come from reactor projects or external dependencies. As javadoc doclet are still useful for <<<@since>>>, <<<@deprecated>>> and comments,
parameter. As javadoc doclet are still useful for <<<@since>>>, <<<@deprecated>>> and comments, the sources are still scanned. So if you use an external the sources are still scanned. So if you use an external dependency, you must still provide an artifact with sources (<<<sources>>> classifier) to
dependency, you must still provide an artifact with sources (<<<sources>>> classifier) to provide documentation (the tooling will skip error if this artifact provide documentation (the tooling will skip error if this artifact sources is missing).
sources is missing).
* Annotations * Annotations
@ -94,7 +92,7 @@ Using Plugin Tools Java5 Annotations
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId> <artifactId>maven-plugin-annotations</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<optional>true</optional> <!-- annotations are not used at runtime because @Retention(value=CLASS), they are needed only to build the plugin --> <scope>provided</scope><!-- annotations are needed only to build the plugin -->
</dependency> </dependency>
</dependencies> </dependencies>
... ...
@ -147,7 +145,7 @@ Using Plugin Tools Java5 Annotations
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId> <artifactId>maven-plugin-plugin</artifactId>
<configuration> <configuration>
<!-- see https://issues.apache.org/jira/browse/MNG-5346 --> <!-- see http://jira.codehaus.org/browse/MNG-5346 -->
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration> </configuration>
<executions> <executions>

View File

@ -29,13 +29,13 @@ under the License.
<href>http://maven.apache.org/</href> <href>http://maven.apache.org/</href>
</bannerLeft> </bannerLeft>
<bannerRight> <bannerRight>
<src>https://maven.apache.org/images/maven-logo-black-on-white.png</src> <src>http://maven.apache.org/images/maventxt_logo_200.gif</src>
</bannerRight> </bannerRight>
<skin> <skin>
<groupId>org.apache.maven.skins</groupId> <groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId> <artifactId>maven-fluido-skin</artifactId>
<version>1.5</version> <version>1.2.1</version>
</skin> </skin>
<custom> <custom>
@ -53,7 +53,7 @@ under the License.
<item name="Usage" href="usage.html"/> <item name="Usage" href="usage.html"/>
<item name="FAQ" href="faq.html"/> <item name="FAQ" href="faq.html"/>
<item name="Release Notes" href="jira-report.html"/> <item name="Release Notes" href="jira-report.html"/>
<!-- According to https://issues.apache.org/jira/browse/MNGSITE-152 --> <!-- According to http://jira.codehaus.org/browse/MNGSITE-152 -->
<item name="License" href="http://www.apache.org/licenses/"/> <item name="License" href="http://www.apache.org/licenses/"/>
<item name="Download" href="../download.html"/> <item name="Download" href="../download.html"/>
</menu> </menu>

View File

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-annotations</artifactId> <artifactId>maven-plugin-tools-annotations</artifactId>
@ -97,10 +97,6 @@
</exclusions> </exclusions>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
</dependency>
</dependencies> </dependencies>

View File

@ -601,7 +601,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
// not a component but a Maven object to be transformed into an expression/property: deprecated // not a component but a Maven object to be transformed into an expression/property: deprecated
getLogger().warn( "Deprecated @Component annotation for '" + parameter.getName() + "' field in " getLogger().warn( "Deprecated @Component annotation for '" + parameter.getName() + "' field in "
+ mojoAnnotatedClass.getClassName() + mojoAnnotatedClass.getClassName()
+ ": replace with @Parameter( defaultValue = \"" + expression + ": replace with @Parameter( default-value = \"" + expression
+ "\", readonly = true )" ); + "\", readonly = true )" );
parameter.setDefaultValue( expression ); parameter.setDefaultValue( expression );
parameter.setType( componentAnnotationContent.getRoleClassName() ); parameter.setType( componentAnnotationContent.getRoleClassName() );

View File

@ -19,18 +19,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.scanner;
* under the License. * under the License.
*/ */
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Execute; import org.apache.maven.plugins.annotations.Execute;
@ -53,6 +41,17 @@ import org.codehaus.plexus.util.reflection.ReflectorException;
import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassReader;
import org.objectweb.asm.Type; import org.objectweb.asm.Type;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
/** /**
* @author Olivier Lamy * @author Olivier Lamy
* @since 3.0 * @since 3.0
@ -62,9 +61,6 @@ public class DefaultMojoAnnotationsScanner
extends AbstractLogEnabled extends AbstractLogEnabled
implements MojoAnnotationsScanner implements MojoAnnotationsScanner
{ {
// classes with a dash must be ignored
private static final Pattern SCANNABLE_CLASS = Pattern.compile( "[^-]+\\.class" );
private Reflector reflector = new Reflector(); private Reflector reflector = new Reflector();
public Map<String, MojoAnnotatedClass> scan( MojoAnnotationsScannerRequest request ) public Map<String, MojoAnnotatedClass> scan( MojoAnnotationsScannerRequest request )
@ -130,28 +126,19 @@ public class DefaultMojoAnnotationsScanner
ZipInputStream archiveStream = new ZipInputStream( new FileInputStream( archiveFile ) ); ZipInputStream archiveStream = new ZipInputStream( new FileInputStream( archiveFile ) );
String zipEntryName = null;
try try
{ {
for ( ZipEntry zipEntry = archiveStream.getNextEntry(); zipEntry != null; for ( ZipEntry zipEntry = archiveStream.getNextEntry(); zipEntry != null;
zipEntry = archiveStream.getNextEntry() ) zipEntry = archiveStream.getNextEntry() )
{ {
zipEntryName = zipEntry.getName(); if ( !zipEntry.getName().endsWith( ".class" ) )
if ( !SCANNABLE_CLASS.matcher( zipEntryName ).matches() )
{ {
continue; continue;
} }
analyzeClassStream( mojoAnnotatedClasses, archiveStream, artifact, excludeMojo ); analyzeClassStream( mojoAnnotatedClasses, archiveStream, artifact, excludeMojo );
} }
} }
catch ( IllegalArgumentException e )
{
// In case of a class with newer specs an IllegalArgumentException can be thrown
getLogger().error( "Failed to analyze " + archiveFile.getAbsolutePath() + "!/" + zipEntryName );
throw e;
}
finally finally
{ {
IOUtil.close( archiveStream ); IOUtil.close( archiveStream );
@ -187,7 +174,7 @@ public class DefaultMojoAnnotationsScanner
for ( String classFile : classFiles ) for ( String classFile : classFiles )
{ {
if ( !SCANNABLE_CLASS.matcher( classFile ).matches() ) if ( !classFile.endsWith( ".class" ) )
{ {
continue; continue;
} }

View File

@ -41,7 +41,7 @@ public class MojoAnnotationVisitor
MojoAnnotationVisitor( Logger logger, String annotationClassName ) MojoAnnotationVisitor( Logger logger, String annotationClassName )
{ {
super( Opcodes.ASM5 ); super( Opcodes.ASM4 );
this.logger = logger; this.logger = logger;
this.annotationClassName = annotationClassName; this.annotationClassName = annotationClassName;
} }

View File

@ -53,7 +53,7 @@ public class MojoClassVisitor
public MojoClassVisitor( Logger logger ) public MojoClassVisitor( Logger logger )
{ {
super( Opcodes.ASM5 ); super( Opcodes.ASM4 );
this.logger = logger; this.logger = logger;
} }

View File

@ -44,7 +44,7 @@ public class MojoFieldVisitor
MojoFieldVisitor( Logger logger, String fieldName, String className ) MojoFieldVisitor( Logger logger, String fieldName, String className )
{ {
super( Opcodes.ASM5 ); super( Opcodes.ASM4 );
this.logger = logger; this.logger = logger;
this.fieldName = fieldName; this.fieldName = fieldName;
this.className = className; this.className = className;

View File

@ -50,7 +50,7 @@ public class TestAnnotationsReader
MojoAnnotationsScanner mojoAnnotationsScanner = (MojoAnnotationsScanner) lookup( MojoAnnotationsScanner.ROLE ); MojoAnnotationsScanner mojoAnnotationsScanner = (MojoAnnotationsScanner) lookup( MojoAnnotationsScanner.ROLE );
MojoAnnotationsScannerRequest request = new MojoAnnotationsScannerRequest(); MojoAnnotationsScannerRequest request = new MojoAnnotationsScannerRequest();
request.setClassesDirectories( Collections.singletonList( new File( getBasedir(), "target/test-classes" ) ) ); request.setClassesDirectories( Collections.singletonList( new File( "target/test-classes" ) ) );
request.setIncludePatterns( Arrays.asList( "**/FooMojo.class" ) ); request.setIncludePatterns( Arrays.asList( "**/FooMojo.class" ) );
request.setProject( new MavenProject() ); request.setProject( new MavenProject() );

View File

@ -1,48 +0,0 @@
package org.apache.maven.tools.plugin.extractor.annotations.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 static org.easymock.EasyMock.*;
import java.io.File;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.logging.Logger;
public class DefaultMojoAnnotationsScannerTest
extends PlexusTestCase
{
private DefaultMojoAnnotationsScanner scanner = new DefaultMojoAnnotationsScanner();
public void testSkipModuleInfoClassInArchive() throws Exception
{
scanner.scanArchive( new File( getBasedir(), "target/test-classes/java9-module.jar"), null, false );
}
public void testJava8Annotations() throws Exception
{
Logger logger = createMock( Logger.class );
expect( logger.isDebugEnabled() ).andReturn( false );
replay( logger );
scanner.enableLogging( logger );
scanner.scanArchive( new File( getBasedir(), "target/test-classes/java8-annotations.jar"), null, false );
}
}

View File

@ -25,7 +25,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-api</artifactId> <artifactId>maven-plugin-tools-api</artifactId>

View File

@ -88,15 +88,15 @@ public class DefaultMojoScanner
if ( extractor == null ) if ( extractor == null )
{ {
throw new ExtractionException( "No mojo extractor with '" + extractorId + "' id." ); throw new ExtractionException( "No mojo extractor with id: " + extractorId );
} }
logger.debug( "Applying " + extractorId + " mojo extractor" ); logger.debug( "Applying mojo extractor with id: " + extractorId );
List<MojoDescriptor> extractorDescriptors = extractor.execute( request ); List<MojoDescriptor> extractorDescriptors = extractor.execute( request );
logger.info( extractorId + " mojo extractor found " + extractorDescriptors.size() logger.info( "Mojo extractor with id: " + extractorId + " found " + extractorDescriptors.size()
+ " mojo descriptor" + ( extractorDescriptors.size() > 1 ? "s" : "" ) + "." ); + " mojo descriptors." );
numMojoDescriptors += extractorDescriptors.size(); numMojoDescriptors += extractorDescriptors.size();
for ( MojoDescriptor descriptor : extractorDescriptors ) for ( MojoDescriptor descriptor : extractorDescriptors )

View File

@ -25,7 +25,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-generators</artifactId> <artifactId>maven-plugin-tools-generators</artifactId>

View File

@ -473,9 +473,9 @@ public class PluginXdocGenerator
{ {
Parameter parameter = parameters.next(); Parameter parameter = parameters.next();
w.startElement( "h4" ); w.startElement( "p" );
w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.name_internal", parameter.getName() ) ); w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.name_internal", parameter.getName() ) );
w.endElement(); w.endElement(); //p
if ( StringUtils.isNotEmpty( parameter.getDeprecated() ) ) if ( StringUtils.isNotEmpty( parameter.getDeprecated() ) )
{ {
@ -543,10 +543,6 @@ public class PluginXdocGenerator
addedUl = addUl( w, addedUl, parameter.getDefaultValue() ); addedUl = addUl( w, addedUl, parameter.getDefaultValue() );
writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.default" ), writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.default" ),
escapeXml( parameter.getDefaultValue() ), w ); escapeXml( parameter.getDefaultValue() ), w );
addedUl = addUl( w, addedUl, parameter.getAlias() );
writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.alias" ), escapeXml( parameter.getAlias() ),
w );
if ( addedUl ) if ( addedUl )
{ {
@ -723,13 +719,6 @@ public class PluginXdocGenerator
if ( property != null ) if ( property != null )
{ {
w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.property.description", property ) ); w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.property.description", property ) );
w.writeMarkup( "<br/>" );
}
if ( StringUtils.isNotEmpty( parameter.getAlias() ) )
{
w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.alias.description",
escapeXml( parameter.getAlias() ) ) );
} }
w.endElement(); //td w.endElement(); //td

View File

@ -321,11 +321,7 @@ public class HelpMojo
String parameterName = getValue( parameter, "name" ); String parameterName = getValue( parameter, "name" );
String parameterDescription = getValue( parameter, "description" ); String parameterDescription = getValue( parameter, "description" );
Element fieldConfigurationElement = null; Element fieldConfigurationElement = (Element) findSingleChild( configurationElement, parameterName );
if ( configurationElement != null )
{
fieldConfigurationElement = (Element) findSingleChild( configurationElement, parameterName );
}
String parameterDefaultValue = ""; String parameterDefaultValue = "";
if ( fieldConfigurationElement != null && fieldConfigurationElement.hasAttribute( "default-value" ) ) if ( fieldConfigurationElement != null && fieldConfigurationElement.hasAttribute( "default-value" ) )
@ -359,7 +355,7 @@ public class HelpMojo
* @param str String to repeat * @param str String to repeat
* @param repeat number of times to repeat str * @param repeat number of times to repeat str
* @return String with repeated String * @return String with repeated String
* @throws NegativeArraySizeException if <code>repeat &lt; 0</code> * @throws NegativeArraySizeException if <code>repeat < 0</code>
* @throws NullPointerException if str is <code>null</code> * @throws NullPointerException if str is <code>null</code>
*/ */
private static String repeat( String str, int repeat ) private static String repeat( String str, int repeat )
@ -398,7 +394,7 @@ public class HelpMojo
* @param indentSize The size of each indentation, must not be negative. * @param indentSize The size of each indentation, must not be negative.
* @param lineLength The length of the line, must not be negative. * @param lineLength The length of the line, must not be negative.
* @return The sequence of display lines, never <code>null</code>. * @return The sequence of display lines, never <code>null</code>.
* @throws NegativeArraySizeException if <code>indent &lt; 0</code> * @throws NegativeArraySizeException if <code>indent < 0</code>
*/ */
private static List<String> toLines( String text, int indent, int indentSize, int lineLength ) private static List<String> toLines( String text, int indent, int indentSize, int lineLength )
{ {

View File

@ -42,8 +42,8 @@ pluginxdoc.mojodescriptor.inheritedByDefault=Is NOT inherited by default in mult
pluginxdoc.mojodescriptor.parameter.details=Parameter Details pluginxdoc.mojodescriptor.parameter.details=Parameter Details
pluginxdoc.mojodescriptor.parameter.deprecated=<strong>Deprecated.</strong> {0} pluginxdoc.mojodescriptor.parameter.deprecated=<strong>Deprecated.</strong> {0}
pluginxdoc.mojodescriptor.parameter.name=Name pluginxdoc.mojodescriptor.parameter.name=Name
pluginxdoc.mojodescriptor.parameter.name_link=<code><a href="#{0}">&lt;{0}&gt;</a></code> pluginxdoc.mojodescriptor.parameter.name_link=<strong><a href="#{0}">{0}</a></strong>
pluginxdoc.mojodescriptor.parameter.name_internal=<strong><a name="{0}">&lt;{0}&gt;</a></strong> pluginxdoc.mojodescriptor.parameter.name_internal=<strong><a name="{0}">{0}</a>:</strong>
pluginxdoc.mojodescriptor.parameter.description=Description pluginxdoc.mojodescriptor.parameter.description=Description
pluginxdoc.mojodescriptor.parameter.type=Type pluginxdoc.mojodescriptor.parameter.type=Type
pluginxdoc.mojodescriptor.parameter.since=Since pluginxdoc.mojodescriptor.parameter.since=Since
@ -53,8 +53,6 @@ pluginxdoc.mojodescriptor.parameter.property=User Property
pluginxdoc.mojodescriptor.parameter.property.description=<strong>User property is</strong>: <code>{0}</code>. pluginxdoc.mojodescriptor.parameter.property.description=<strong>User property is</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.parameter.default=Default pluginxdoc.mojodescriptor.parameter.default=Default
pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Default value is</strong>: <code>{0}</code>. pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Default value is</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.parameter.alias=Alias
pluginxdoc.mojodescriptor.parameter.alias.description=<strong>Alias is</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.requiredParameters=Required Parameters pluginxdoc.mojodescriptor.requiredParameters=Required Parameters
pluginxdoc.mojodescriptor.optionalParameters=Optional Parameters pluginxdoc.mojodescriptor.optionalParameters=Optional Parameters
pluginxdoc.mojodescriptor.parameters=Parameters pluginxdoc.mojodescriptor.parameters=Parameters

View File

@ -47,8 +47,6 @@ pluginxdoc.mojodescriptor.parameter.required=Erforderlich
pluginxdoc.mojodescriptor.parameter.expression=Ausdruck pluginxdoc.mojodescriptor.parameter.expression=Ausdruck
pluginxdoc.mojodescriptor.parameter.default=Standard pluginxdoc.mojodescriptor.parameter.default=Standard
pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Standardwert ist</strong>: <code>{0}</code>. pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Standardwert ist</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.parameter.alias=Alias
pluginxdoc.mojodescriptor.parameter.alias.description=<strong>Alias ist</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.requiredParameters=Erforderliche Parameter pluginxdoc.mojodescriptor.requiredParameters=Erforderliche Parameter
pluginxdoc.mojodescriptor.optionalParameters=Optionale Parameter pluginxdoc.mojodescriptor.optionalParameters=Optionale Parameter
pluginxdoc.mojodescriptor.parameters=Parameter pluginxdoc.mojodescriptor.parameters=Parameter

View File

@ -42,6 +42,7 @@ pluginxdoc.mojodescriptor.inheritedByDefault=N'est PAS h\u00e9rit\u00e9 par d\u0
pluginxdoc.mojodescriptor.parameter.details=D\u00e9tails des param\u00e8tres pluginxdoc.mojodescriptor.parameter.details=D\u00e9tails des param\u00e8tres
pluginxdoc.mojodescriptor.parameter.deprecated=<strong>Obsol\u00e8te.</strong> {0} pluginxdoc.mojodescriptor.parameter.deprecated=<strong>Obsol\u00e8te.</strong> {0}
pluginxdoc.mojodescriptor.parameter.name=Nom pluginxdoc.mojodescriptor.parameter.name=Nom
pluginxdoc.mojodescriptor.parameter.name_internal=<strong><a name="{0}">{0}</a> :</strong>
pluginxdoc.mojodescriptor.parameter.description=Description pluginxdoc.mojodescriptor.parameter.description=Description
pluginxdoc.mojodescriptor.parameter.type=Type pluginxdoc.mojodescriptor.parameter.type=Type
pluginxdoc.mojodescriptor.parameter.since=Depuis pluginxdoc.mojodescriptor.parameter.since=Depuis
@ -51,8 +52,6 @@ pluginxdoc.mojodescriptor.parameter.property=Propri\u00e9t\u00e9 utilisateur
pluginxdoc.mojodescriptor.parameter.property.description=<strong>Propri\u00e9t\u00e9 utilisateur</strong> : <code>{0}</code>. pluginxdoc.mojodescriptor.parameter.property.description=<strong>Propri\u00e9t\u00e9 utilisateur</strong> : <code>{0}</code>.
pluginxdoc.mojodescriptor.parameter.default=D\u00e9faut pluginxdoc.mojodescriptor.parameter.default=D\u00e9faut
pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Valeur par d\u00e9faut</strong> : <code>{0}</code>. pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Valeur par d\u00e9faut</strong> : <code>{0}</code>.
pluginxdoc.mojodescriptor.parameter.alias=Alias
pluginxdoc.mojodescriptor.parameter.alias.description=<strong>Alias</strong> : <code>{0}</code>.
pluginxdoc.mojodescriptor.requiredParameters=Param\u00e8tres requis pluginxdoc.mojodescriptor.requiredParameters=Param\u00e8tres requis
pluginxdoc.mojodescriptor.optionalParameters=Param\u00e8tres optionnels pluginxdoc.mojodescriptor.optionalParameters=Param\u00e8tres optionnels
pluginxdoc.mojodescriptor.parameters=Param\u00e8tres pluginxdoc.mojodescriptor.parameters=Param\u00e8tres

View File

@ -77,7 +77,6 @@ public abstract class AbstractGeneratorTestCase
param.setRequired( true ); param.setRequired( true );
param.setType( "java.lang.String" ); param.setType( "java.lang.String" );
param.setDescription( "Test parameter description" ); param.setDescription( "Test parameter description" );
param.setAlias( "some.alias" );
params.add( param ); params.add( param );

View File

@ -115,7 +115,6 @@ public class PluginDescriptorGeneratorTest
assertEquals( "dir", parameter.getName() ); assertEquals( "dir", parameter.getName() );
assertEquals( String.class.getName(), parameter.getType() ); assertEquals( String.class.getName(), parameter.getType() );
assertTrue( parameter.isRequired() ); assertTrue( parameter.isRequired() );
assertEquals( "some.alias", parameter.getAlias() );
} }
private void checkDependency( String groupId, String artifactId, String version, ComponentDependency dependency ) private void checkDependency( String groupId, String artifactId, String version, ComponentDependency dependency )

View File

@ -25,7 +25,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-java</artifactId> <artifactId>maven-plugin-tools-java</artifactId>

View File

@ -233,28 +233,4 @@ public class JavaMojoDescriptorExtractorTest
assertEquals( 1, results.size() ); assertEquals( 1, results.size() );
} }
public void testSingleTypeImportWithFullyQualifiedClassName()
throws Exception
{
List<MojoDescriptor> results = extract( "MPLUGIN-314" );
assertEquals( 1, results.size() );
}
public void testMethodReferenceInEnumConstructor()
throws Exception
{
List<MojoDescriptor> results = extract( "MPLUGIN-320" );
assertNull( results );
}
public void testEnumWithRegexPattern()
throws Exception
{
List<MojoDescriptor> results = extract( "MPLUGIN-290" );
assertNull( results );
}
} }

View File

@ -1,32 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.regex.Pattern;
public enum Test
{
Test( Pattern.compile( "a" ) );
private Test( Pattern p )
{
}
}

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you 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.
-->
<plugin>
<name></name>
<description></description>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<goalPrefix>test</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos/>
<dependencies/>
</plugin>

View File

@ -1,41 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.artifact.resolver.ArtifactResolver;
import org.apache.maven.plugin.AbstractMojo;
/**
* Tests that using an import and the same fully qualified class name results in a correct requirement role generated.
*
* @goal test
*/
public class MyMojo
extends AbstractMojo
{
/**
* @component
*/
private org.apache.maven.artifact.resolver.ArtifactResolver resolver;
public void execute()
{
}
}

View File

@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you 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.
-->
<plugin>
<name></name>
<description></description>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<goalPrefix>test</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos>
<mojo>
<goal>test</goal>
<description>Tests that using an import and the same fully qualified class name results in a correct requirement role generated.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<implementation>MyMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>false</threadSafe>
<parameters/>
<requirements>
<requirement>
<role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
<field-name>resolver</field-name>
</requirement>
</requirements>
</mojo>
</mojos>
<dependencies/>
</plugin>

View File

@ -1,32 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.function.Supplier;
public enum Exceptions {
NPE(NullPointerException::new),
IAE(IllegalArgumentException::new);
private final Supplier<? extends Exception> supplier;
<T extends Exception> Exceptions(Supplier<T> supplier) {
this.supplier = supplier;
}
}

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you 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.
-->
<plugin>
<name></name>
<description></description>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<goalPrefix>test</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<mojos/>
<dependencies/>
</plugin>

View File

@ -55,7 +55,7 @@ public class Full
protected String[] parameter; protected String[] parameter;
/** /**
* @parameter alias="myAlias" property="aSystemProperty" default-value="${anExpression}" * @parameter alias="myAlias" expression="${aSystemProperty}" default-value="${anExpression}"
* @readonly * @readonly
* @required * @required
* @since tomorrow * @since tomorrow

View File

@ -25,7 +25,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-javadoc</artifactId> <artifactId>maven-plugin-tools-javadoc</artifactId>
@ -74,7 +74,6 @@
<name>java.vendor</name> <name>java.vendor</name>
<value>Sun Microsystems Inc.</value> <value>Sun Microsystems Inc.</value>
</property> </property>
<jdk>(,1.9)</jdk>
</activation> </activation>
<dependencies> <dependencies>
<dependency> <dependency>
@ -93,7 +92,6 @@
<name>java.vendor</name> <name>java.vendor</name>
<value>Oracle Corporation</value> <value>Oracle Corporation</value>
</property> </property>
<jdk>(,1.9)</jdk>
</activation> </activation>
<dependencies> <dependencies>
<dependency> <dependency>
@ -110,9 +108,7 @@
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId> <artifactId>maven-invoker-plugin</artifactId>
<version>${mavenInvokerPluginVersion}</version>
<configuration> <configuration>
<debug>true</debug> <debug>true</debug>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo> <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>

View File

@ -43,7 +43,7 @@ under the License.
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId> <artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version> <version>2.3</version>
<configuration> <configuration>
<outputDirectory>${basedir}/target/site/apidocs</outputDirectory> <outputDirectory>${basedir}/target/site/apidocs</outputDirectory>

View File

@ -25,7 +25,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-script</artifactId> <artifactId>maven-script</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-ant</artifactId> <artifactId>maven-plugin-tools-ant</artifactId>

View File

@ -29,14 +29,14 @@ import java.util.Set;
import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException; import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.Parameter; import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.plugin.tools.model.PluginMetadataParseException;
import org.apache.maven.plugin.tools.model.PluginMetadataParser;
import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProject;
import org.apache.maven.project.path.PathTranslator; import org.apache.maven.project.path.PathTranslator;
import org.apache.maven.tools.plugin.PluginToolsRequest; import org.apache.maven.tools.plugin.PluginToolsRequest;
import org.apache.maven.tools.plugin.extractor.AbstractScriptedMojoDescriptorExtractor; import org.apache.maven.tools.plugin.extractor.AbstractScriptedMojoDescriptorExtractor;
import org.apache.maven.tools.plugin.extractor.ExtractionException; import org.apache.maven.tools.plugin.extractor.ExtractionException;
import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor; import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor;
import org.apache.maven.tools.plugin.extractor.model.PluginMetadataParseException;
import org.apache.maven.tools.plugin.extractor.model.PluginMetadataParser;
import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.component.repository.ComponentRequirement;
import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.StringUtils;

View File

@ -19,16 +19,6 @@ package org.apache.maven.tools.plugin.extractor.ant;
* under the License. * under the License.
*/ */
import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import junit.framework.TestCase;
import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException; import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.Parameter; import org.apache.maven.plugin.descriptor.Parameter;
@ -39,6 +29,18 @@ import org.apache.maven.tools.plugin.DefaultPluginToolsRequest;
import org.apache.maven.tools.plugin.PluginToolsRequest; import org.apache.maven.tools.plugin.PluginToolsRequest;
import org.apache.maven.tools.plugin.extractor.ExtractionException; import org.apache.maven.tools.plugin.extractor.ExtractionException;
import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.component.repository.ComponentRequirement;
import org.codehaus.plexus.util.StringUtils;
import java.io.File;
import java.net.URL;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import junit.framework.TestCase;
public class AntMojoDescriptorExtractorTest public class AntMojoDescriptorExtractorTest
extends TestCase extends TestCase
@ -98,47 +100,39 @@ public class AntMojoDescriptorExtractorTest
assertEquals( "Mojo descriptor: " + desc.getGoal() + " is missing 'PathTranslator' component requirement.", PathTranslator.class.getName(), req.getRole() ); assertEquals( "Mojo descriptor: " + desc.getGoal() + " is missing 'PathTranslator' component requirement.", PathTranslator.class.getName(), req.getRole() );
} }
} }
private Map buildTestMap( String resourceDirName ) private Map buildTestMap( String resourceDirName )
{ {
try Map result = new HashMap();
ClassLoader cloader = Thread.currentThread().getContextClassLoader();
URL mojosXmlUrl = cloader.getResource( resourceDirName + "/test.mojos.xml" );
if ( mojosXmlUrl == null )
{ {
Map result = new HashMap(); fail( "No classpath resource named: '" + resourceDirName + "/test.mojos.xml' could be found." );
ClassLoader cloader = Thread.currentThread().getContextClassLoader();
URL mojosXmlUrl = cloader.getResource( resourceDirName + "/test.mojos.xml" );
if ( mojosXmlUrl == null )
{
fail( "No classpath resource named: '" + resourceDirName + "/test.mojos.xml' could be found." );
}
// TODO As of JDK 7, replace with Paths.get( resource.toURI() ).toFile()
File mojosXml = new File( mojosXmlUrl.toURI() );
File dir = mojosXml.getParentFile();
Set scripts = new HashSet();
String[] listing = dir.list();
for ( int i = 0; listing != null && i < listing.length; i++ )
{
if ( listing[i].endsWith( ".mojos.xml" ) )
{
File f = new File( dir, listing[i] ).getAbsoluteFile();
scripts.add( f );
}
}
result.put( dir.getAbsolutePath(), scripts );
return result;
} }
catch ( final URISyntaxException e )
File mojosXml = new File( StringUtils.replace( mojosXmlUrl.getPath(), "%20", " " ) );
File dir = mojosXml.getParentFile();
Set scripts = new HashSet();
String[] listing = dir.list();
for ( int i = 0; listing != null && i < listing.length; i++ )
{ {
throw new AssertionError( e ); if ( listing[i].endsWith( ".mojos.xml" ) )
{
File f = new File( dir, listing[i] ).getAbsoluteFile();
scripts.add( f );
}
} }
result.put( dir.getAbsolutePath(), scripts );
return result;
} }
// TODO // TODO
} }

View File

@ -25,7 +25,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-script</artifactId> <artifactId>maven-script</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-beanshell</artifactId> <artifactId>maven-plugin-tools-beanshell</artifactId>

View File

@ -25,7 +25,7 @@
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-script</artifactId> <artifactId>maven-script</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-plugin-tools-model</artifactId> <artifactId>maven-plugin-tools-model</artifactId>

View File

@ -1,4 +1,4 @@
package org.apache.maven.tools.plugin.extractor.model; package org.apache.maven.plugin.tools.model;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one

View File

@ -1,4 +1,4 @@
package org.apache.maven.tools.plugin.extractor.model; package org.apache.maven.plugin.tools.model;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
@ -29,7 +29,7 @@ import java.util.Set;
import org.apache.maven.plugin.descriptor.DuplicateParameterException; import org.apache.maven.plugin.descriptor.DuplicateParameterException;
import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.Parameter; import org.apache.maven.plugin.descriptor.Parameter;
import org.apache.maven.tools.plugin.extractor.model.io.xpp3.PluginMetadataXpp3Reader; import org.apache.maven.plugin.tools.model.io.xpp3.PluginMetadataXpp3Reader;
import org.codehaus.plexus.component.repository.ComponentRequirement; import org.codehaus.plexus.component.repository.ComponentRequirement;
import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory; import org.codehaus.plexus.util.ReaderFactory;
@ -78,9 +78,6 @@ public class PluginMetadataParser
descriptors.add( descriptor ); descriptors.add( descriptor );
} }
} }
reader.close();
reader = null;
} }
catch ( IOException e ) catch ( IOException e )
{ {
@ -139,11 +136,11 @@ public class PluginMetadataParser
descriptor.setExecuteGoal( le.getGoal() ); descriptor.setExecuteGoal( le.getGoal() );
} }
List<org.apache.maven.tools.plugin.extractor.model.Parameter> parameters = mojo.getParameters(); List<org.apache.maven.plugin.tools.model.Parameter> parameters = mojo.getParameters();
if ( parameters != null && !parameters.isEmpty() ) if ( parameters != null && !parameters.isEmpty() )
{ {
for ( org.apache.maven.tools.plugin.extractor.model.Parameter param : parameters ) for ( org.apache.maven.plugin.tools.model.Parameter param : parameters )
{ {
Parameter dParam = new Parameter(); Parameter dParam = new Parameter();
dParam.setAlias( param.getAlias() ); dParam.setAlias( param.getAlias() );

View File

@ -78,7 +78,7 @@
<defaults> <defaults>
<default> <default>
<key>package</key> <key>package</key>
<value>org.apache.maven.tools.plugin.extractor.model</value> <value>org.apache.maven.plugin.tools.model</value>
</default> </default>
</defaults> </defaults>
<classes> <classes>

View File

@ -1,4 +1,4 @@
package org.apache.maven.tools.plugin.extractor.model; package org.apache.maven.plugin.tools.model;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
@ -19,12 +19,14 @@ package org.apache.maven.tools.plugin.extractor.model;
* under the License. * under the License.
*/ */
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.codehaus.plexus.util.StringUtils;
import java.io.File; import java.io.File;
import java.net.URISyntaxException;
import java.net.URL; import java.net.URL;
import java.util.Set; import java.util.Set;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
public class PluginMetadataParserTest public class PluginMetadataParserTest
extends TestCase extends TestCase
@ -55,24 +57,16 @@ public class PluginMetadataParserTest
assertTrue( desc.getImplementation().endsWith( ":test2" ) ); assertTrue( desc.getImplementation().endsWith( ":test2" ) );
assertEquals( "test2", desc.getGoal() ); assertEquals( "test2", desc.getGoal() );
} }
private File getMetadataFile( String name ) private File getMetadataFile( String name )
{ {
try URL resource = Thread.currentThread().getContextClassLoader().getResource( name );
if ( resource == null )
{ {
URL resource = Thread.currentThread().getContextClassLoader().getResource( name ); fail( "Cannot find classpath resource: '" + name + "'." );
if ( resource == null )
{
fail( "Cannot find classpath resource: '" + name + "'." );
}
// TODO As of JDK 7, replace with Paths.get( resource.toURI() ).toFile()
return new File( resource.toURI() );
}
catch ( final URISyntaxException e )
{
throw new AssertionError( e );
} }
return new File( StringUtils.replace( resource.getPath(), "%20", " " ) );
} }
} }

View File

@ -23,7 +23,7 @@ under the License.
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-script</artifactId> <artifactId>maven-script</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-script-ant</artifactId> <artifactId>maven-script-ant</artifactId>
@ -68,7 +68,7 @@ under the License.
<artifactId>maven-core</artifactId> <artifactId>maven-core</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.easymock</groupId> <groupId>easymock</groupId>
<artifactId>easymock</artifactId> <artifactId>easymock</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>

View File

@ -19,20 +19,6 @@ package org.apache.maven.script.ant;
* under the License. * under the License.
*/ */
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.Reader;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Build; import org.apache.maven.model.Build;
@ -56,10 +42,23 @@ import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger; import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.IOUtil;
import static org.easymock.EasyMock.createMock; import org.codehaus.plexus.util.StringUtils;
import static org.easymock.EasyMock.expect; import org.easymock.MockControl;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.Reader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
public class AntMojoWrapperTest public class AntMojoWrapperTest
extends TestCase extends TestCase
@ -67,7 +66,7 @@ public class AntMojoWrapperTest
public void test2xStylePlugin() public void test2xStylePlugin()
throws PlexusConfigurationException, IOException, ComponentInstantiationException, MojoExecutionException, throws PlexusConfigurationException, IOException, ComponentInstantiationException, MojoExecutionException,
ComponentConfigurationException, ArchiverException, URISyntaxException ComponentConfigurationException, ArchiverException
{ {
String pluginXml = "META-INF/maven/plugin-2.1.xml"; String pluginXml = "META-INF/maven/plugin-2.1.xml";
@ -87,7 +86,7 @@ public class AntMojoWrapperTest
public void test20StylePlugin() public void test20StylePlugin()
throws PlexusConfigurationException, IOException, ComponentInstantiationException, MojoExecutionException, throws PlexusConfigurationException, IOException, ComponentInstantiationException, MojoExecutionException,
ComponentConfigurationException, ArchiverException, URISyntaxException ComponentConfigurationException, ArchiverException
{ {
String pluginXml = "META-INF/maven/plugin-2.0.xml"; String pluginXml = "META-INF/maven/plugin-2.0.xml";
@ -126,7 +125,7 @@ public class AntMojoWrapperTest
private List<String> run( String pluginXml, boolean includeImplied ) private List<String> run( String pluginXml, boolean includeImplied )
throws PlexusConfigurationException, IOException, ComponentInstantiationException, MojoExecutionException, throws PlexusConfigurationException, IOException, ComponentInstantiationException, MojoExecutionException,
ComponentConfigurationException, ArchiverException, URISyntaxException ComponentConfigurationException, ArchiverException
{ {
StackTraceElement stack = new Throwable().getStackTrace()[1]; StackTraceElement stack = new Throwable().getStackTrace()[1];
System.out.println( "\n\nRunning: " + stack.getMethodName() + "\n\n" ); System.out.println( "\n\nRunning: " + stack.getMethodName() + "\n\n" );
@ -144,8 +143,6 @@ public class AntMojoWrapperTest
{ {
reader = new InputStreamReader( resource.openStream() ); reader = new InputStreamReader( resource.openStream() );
pd = new PluginDescriptorBuilder().build( reader, pluginXml ); pd = new PluginDescriptorBuilder().build( reader, pluginXml );
reader.close();
reader = null;
} }
finally finally
{ {
@ -163,13 +160,11 @@ public class AntMojoWrapperTest
wrapper.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) ); wrapper.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
Artifact artifact = createMock( Artifact.class ); MockControl artifactCtl = null;
PathTranslator pt = createMock( PathTranslator.class ); MockControl pathTranslatorCtl = null;
if ( includeImplied ) if ( includeImplied )
{ {
// TODO As of JDK 7, replace with Paths.get( resource.toURI() ).toFile() File pluginXmlFile = new File( StringUtils.replace( resource.getPath(), "%20", " " ) );
File pluginXmlFile = new File( resource.toURI() );
File jarFile = File.createTempFile( "AntMojoWrapperTest.", ".test.jar" ); File jarFile = File.createTempFile( "AntMojoWrapperTest.", ".test.jar" );
jarFile.deleteOnExit(); jarFile.deleteOnExit();
@ -180,12 +175,29 @@ public class AntMojoWrapperTest
archiver.addFile( pluginXmlFile, pluginXml ); archiver.addFile( pluginXmlFile, pluginXml );
archiver.createArchive(); archiver.createArchive();
expect( artifact.getFile() ).andReturn( jarFile ).anyTimes(); artifactCtl = MockControl.createControl( Artifact.class );
expect( artifact.getGroupId() ).andReturn( "groupId" ).anyTimes(); Artifact artifact = (Artifact) artifactCtl.getMock();
expect( artifact.getArtifactId() ).andReturn( "artifactId" ).anyTimes();
expect( artifact.getVersion() ).andReturn( "1" ).anyTimes(); artifact.getFile();
expect( artifact.getId() ).andReturn( "groupId:artifactId:jar:1" ).anyTimes(); artifactCtl.setReturnValue( jarFile, MockControl.ZERO_OR_MORE );
expect( artifact.getClassifier() ).andReturn( null ).anyTimes();
artifact.getGroupId();
artifactCtl.setReturnValue( "groupId", MockControl.ZERO_OR_MORE );
artifact.getArtifactId();
artifactCtl.setReturnValue( "artifactId", MockControl.ZERO_OR_MORE );
artifact.getVersion();
artifactCtl.setReturnValue( "1", MockControl.ZERO_OR_MORE );
artifact.getId();
artifactCtl.setReturnValue( "groupId:artifactId:jar:1", MockControl.ZERO_OR_MORE );
artifact.getClassifier();
artifactCtl.setReturnValue( null, MockControl.ZERO_OR_MORE );
pathTranslatorCtl = MockControl.createControl( PathTranslator.class );
PathTranslator pt = (PathTranslator) pathTranslatorCtl.getMock();
Model model = new Model(); Model model = new Model();
@ -197,7 +209,8 @@ public class AntMojoWrapperTest
MavenProject project = new MavenProject( model ); MavenProject project = new MavenProject( model );
project.setFile( new File( "pom.xml" ).getAbsoluteFile() ); project.setFile( new File( "pom.xml" ).getAbsoluteFile() );
replay( artifact, pt ); artifactCtl.replay();
pathTranslatorCtl.replay();
pd.setPluginArtifact( artifact ); pd.setPluginArtifact( artifact );
pd.setArtifacts( Collections.singletonList( artifact ) ); pd.setArtifacts( Collections.singletonList( artifact ) );
@ -235,7 +248,8 @@ public class AntMojoWrapperTest
if ( includeImplied ) if ( includeImplied )
{ {
verify( artifact, pt ); artifactCtl.verify();
pathTranslatorCtl.verify();
} }
List<String> messages = new ArrayList<String>(); List<String> messages = new ArrayList<String>();

View File

@ -23,7 +23,7 @@ under the License.
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-script</artifactId> <artifactId>maven-script</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-script-beanshell</artifactId> <artifactId>maven-script-beanshell</artifactId>

View File

@ -23,7 +23,7 @@ under the License.
<parent> <parent>
<groupId>org.apache.maven.plugin-tools</groupId> <groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools</artifactId> <artifactId>maven-plugin-tools</artifactId>
<version>3.5.1-SNAPSHOT</version> <version>3.4</version>
</parent> </parent>
<artifactId>maven-script</artifactId> <artifactId>maven-script</artifactId>

Some files were not shown because too many files have changed in this diff Show More