You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-commits@maven.apache.org by sj...@apache.org on 2023/11/07 22:03:59 UTC
svn commit: r1913661 [14/30] - in /maven/website/components/plugin-testing-archives/LATEST: ./ css/ fonts/ js/ maven-plugin-testing-harness/ maven-plugin-testing-harness/apidocs/ maven-plugin-testing-harness/apidocs/legal/ maven-plugin-testing-harness/...
Modified: maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/cpd.html
==============================================================================
--- maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/cpd.html (original)
+++ maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/cpd.html Tue Nov 7 22:03:57 2023
@@ -2,8 +2,8 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-pmd-plugin:3.19.0:cpd at 2023-02-15
- | Rendered using Apache Maven Fluido Skin 1.11.1
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-pmd-plugin:3.21.0:cpd at 2023-11-07
+ | Rendered using Apache Maven Fluido Skin 1.11.2
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
@@ -11,10 +11,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
<title>Maven Plugin Testing Mechanism – CPD Results</title>
- <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.1.min.css" />
+ <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.2.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
- <script src="./js/apache-maven-fluido-1.11.1.min.js"></script>
+ <script src="./js/apache-maven-fluido-1.11.2.min.js"></script>
<!-- Matomo -->
<script>
@@ -44,14 +44,13 @@
<div id="breadcrumbs">
<ul class="breadcrumb">
- <li class=""><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
- <li class=""><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li>
- <li class=""><a href="http://maven.apache.org/index.html" class="externalLink" title="Maven">Maven</a><span class="divider">/</span></li>
- <li class=""><a href="http://maven.apache.org/plugin-testing/index.html" class="externalLink" title="Plugin Testing">Plugin Testing</a><span class="divider">/</span></li>
- <li class=""><a href="index.html" title="Maven Plugin Testing Mechanism">Maven Plugin Testing Mechanism</a><span class="divider">/</span></li>
+ <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+ <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li>
+ <li><a href="../index.html" title="Maven Plugin Testing">Maven Plugin Testing</a><span class="divider">/</span></li>
+ <li><a href="index.html" title="Maven Plugin Testing Mechanism">Maven Plugin Testing Mechanism</a><span class="divider">/</span></li>
<li class="active ">CPD Results</li>
- <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2023-02-15</li>
- <li id="projectVersion" class="pull-right">Version: 4.0.0-alpha-1</li>
+ <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2023-11-07</li>
+ <li id="projectVersion" class="pull-right">Version: 4.0.0-alpha-2</li>
</ul>
</div>
</header>
@@ -74,7 +73,7 @@
<li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
<li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-down"></span>Project Reports</a>
<ul class="nav nav-list">
- <li><a href="surefire-report.html" title="Surefire Report"><span class="none"></span>Surefire Report</a></li>
+ <li><a href="surefire-report.html" title="Surefire"><span class="none"></span>Surefire</a></li>
<li><a href="checkstyle.html" title="Checkstyle"><span class="none"></span>Checkstyle</a></li>
<li class="active"><a><span class="none"></span>CPD</a></li>
<li><a href="pmd.html" title="PMD"><span class="none"></span>PMD</a></li>
@@ -84,22 +83,27 @@
<li><a href="apidocs/index.html" title="Javadoc"><span class="none"></span>Javadoc</a></li>
</ul></li>
<li class="nav-header">Maven Projects</li>
- <li><a href="../../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li>
- <li><a href="../../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li>
- <li><a href="../../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li>
- <li><a href="../../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li>
- <li><a href="../../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li>
<li><a href="../../ref/current" title="Maven"><span class="none"></span>Maven</a></li>
+ <li><a href="../../archetypes/index.html" title="Archetypes"><span class="none"></span>Archetypes</a></li>
+ <li><a href="../../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li>
<li><a href="../../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li>
<li><a href="../../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li>
- <li><a href="../index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li>
- <li><a href="../../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li>
- <li><a href="../../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li>
- <li><a href="../../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li>
- <li><a href="../../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li>
<li><a href="../../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li>
- <li><a href="../../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li>
- <li><a href="../../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li>
+ <li><a href="" title=""><span class="icon-chevron-down"></span></a>
+ <ul class="nav nav-list">
+ <li><a href="../../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li>
+ <li><a href="../../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li>
+ <li><a href="../../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li>
+ <li><a href="../../maven-indexer/index.html" title="Indexer"><span class="none"></span>Indexer</a></li>
+ <li><a href="../../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li>
+ <li><a href="../index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li>
+ <li><a href="../../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li>
+ <li><a href="../../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li>
+ <li><a href="../../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li>
+ <li><a href="../../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li>
+ <li><a href="../../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li>
+ <li><a href="../../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li>
+ </ul></li>
<li class="nav-header">ASF</li>
<li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li>
<li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li>
@@ -119,22 +123,255 @@
</header>
<main id="bodyColumn" class="span10" >
<section>
-<h2><a name="CPD_Results"></a>CPD Results</h2>
-<p>The following document contains the results of PMD's <a class="externalLink" href="https://pmd.github.io/latest/pmd_userdocs_cpd.html">CPD</a> 6.49.0.</p></section><section>
-<h2><a name="Duplications"></a>Duplications</h2>
+<h2><a name="CPD_Results"></a>CPD Results</h2><a name="CPD_Results"></a>
+<p>The following document contains the results of PMD's <a class="externalLink" href="https://pmd.github.io/latest/pmd_userdocs_cpd.html">CPD</a> 6.55.0.</p><section>
+<h3><a name="Duplications"></a>Duplications</h3><a name="Duplications"></a>
<table border="0" class="table table-striped">
<tr class="a">
<th>File</th>
<th>Line</th></tr>
<tr class="b">
-<td>org/apache/maven/api/plugin/testing/ResolverExpressionEvaluatorStub.java</td>
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L320">320</a></td></tr>
+<tr class="a">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L343">343</a></td></tr>
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">}
+
+ /**
+ * sometimes the parent element might contain the correct value so generalize that access
+ *
+ * TODO find out where this is probably done elsewhere
+ */
+ private static String resolveFromRootThenParent(Xpp3Dom pluginPomDom, String element) throws Exception {
+ return Optional.ofNullable(child(pluginPomDom, element).orElseGet(() -> child(pluginPomDom, "parent")
+ .flatMap(e -> child(e, element))
+ .orElse(null)))
+ .map(Xpp3Dom::getValue)
+ .orElseThrow(() -> new Exception("unable to determine " + element));
+ }
+
+ /**
+ * Convenience method to obtain the value of a variable on a mojo that might not have a getter.
+ * <br>
+ * NOTE: the caller is responsible for casting to what the desired type is.
+ */
+ public static Object getVariableValueFromObject(Object object, String variable) throws IllegalAccessException {
+ Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses(variable, object.getClass());
+ field.setAccessible(true);
+ return field.get(object);
+ }
+
+ /**
+ * Convenience method to obtain all variables and values from the mojo (including its superclasses)
+ * <br>
+ * Note: the values in the map are of type Object so the caller is responsible for casting to desired types.
+ */
+ public static Map<String, Object> getVariablesAndValuesFromObject(Object object) throws IllegalAccessException {
+ return getVariablesAndValuesFromObject(object.getClass(), object);
+ }
+
+ /**
+ * Convenience method to obtain all variables and values from the mojo (including its superclasses)
+ * <br>
+ * Note: the values in the map are of type Object so the caller is responsible for casting to desired types.
+ *
+ * @return map of variable names and values
+ */
+ public static Map<String, Object> getVariablesAndValuesFromObject(Class<?> clazz, Object object)
+ throws IllegalAccessException {
+ Map<String, Object> map = new HashMap<>();
+ Field[] fields = clazz.getDeclaredFields();
+ AccessibleObject.setAccessible(fields, true);
+ for (Field field : fields) {
+ map.put(field.getName(), field.get(object));
+ }
+ Class<?> superclass = clazz.getSuperclass();
+ if (!Object.class.equals(superclass)) {
+ map.putAll(getVariablesAndValuesFromObject(superclass, object));
+ }
+ return map;
+ }
+
+ /**
+ * Convenience method to set values to variables in objects that don't have setters
+ */
+ public static void setVariableValueToObject(Object object, String variable, Object value)
+ throws IllegalAccessException {
+ Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses(variable, object.getClass());
+ Objects.requireNonNull(field, "Field " + variable + " not found");
+ field.setAccessible(true);
+ field.set(object, value);
+ }
+
+ static class WrapEvaluator implements TypeAwareExpressionEvaluator {
+
+ private final PlexusContainer container;
+ private final TypeAwareExpressionEvaluator evaluator;
+
+ WrapEvaluator(PlexusContainer container, TypeAwareExpressionEvaluator evaluator) {
+ this.container = container;
+ this.evaluator = evaluator;
+ }
+
+ @Override
+ public Object evaluate(String expression) throws ExpressionEvaluationException {
+ return evaluate(expression, null);
+ }
+
+ @Override
+ public Object evaluate(String expression, Class<?> type) throws ExpressionEvaluationException {
+ Object value = evaluator.evaluate(expression, type);
+ if (value == null) {
+ String expr = stripTokens(expression);
+ if (expr != null) {
+ try {
+ value = container.lookup(type, expr);
+ } catch (ComponentLookupException e) {
+ // nothing
+ }
+ }
+ }
+ return value;
+ }
+
+ private String stripTokens(String expr) {
+ if (expr.startsWith("${") && expr.endsWith("}")) {
+ return expr.substring(2, expr.length() - 1);
+ }
+ return null;
+ }
+
+ @Override
+ public File alignToBaseDirectory(File path) {
+ return evaluator.alignToBaseDirectory(path);
+ }
+ }
+}</pre></div></td></tr></table>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>File</th>
+<th>Line</th></tr>
+<tr class="b">
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L91">91</a></td></tr>
+<tr class="a">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L93">93</a></td></tr>
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">public class MojoExtension extends PlexusExtension implements ParameterResolver {
+
+ @Override
+ public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
+ throws ParameterResolutionException {
+ return parameterContext.isAnnotated(InjectMojo.class)
+ || parameterContext.getDeclaringExecutable().isAnnotationPresent(InjectMojo.class);
+ }
+
+ @Override
+ public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
+ throws ParameterResolutionException {
+ try {
+ InjectMojo injectMojo = parameterContext
+ .findAnnotation(InjectMojo.class)
+ .orElseGet(() -> parameterContext.getDeclaringExecutable().getAnnotation(InjectMojo.class));
+
+ Set<MojoParameter> mojoParameters =
+ new HashSet<>(parameterContext.findRepeatableAnnotations(MojoParameter.class));
+
+ Optional.ofNullable(parameterContext.getDeclaringExecutable().getAnnotation(MojoParameter.class))
+ .ifPresent(mojoParameters::add);
+
+ Optional.ofNullable(parameterContext.getDeclaringExecutable().getAnnotation(MojoParameters.class))
+ .map(MojoParameters::value)
+ .map(Arrays::asList)
+ .ifPresent(mojoParameters::addAll);
+
+ Class<?> holder = parameterContext.getTarget().get().getClass();
+ PluginDescriptor descriptor = extensionContext
+ .getStore(ExtensionContext.Namespace.GLOBAL)
+ .get(PluginDescriptor.class, PluginDescriptor.class);
+ return lookupMojo(holder, injectMojo, mojoParameters, descriptor);
+ } catch (Exception e) {
+ throw new ParameterResolutionException("Unable to resolve parameter", e);
+ }
+ }
+
+ @Override
+ public void beforeEach(ExtensionContext context) throws Exception {
+ // TODO provide protected setters in PlexusExtension
+ Field field = PlexusExtension.class.getDeclaredField("basedir");
+ field.setAccessible(true);
+ field.set(null, getBasedir());
+ field = PlexusExtension.class.getDeclaredField("context");
+ field.setAccessible(true);
+ field.set(this, context);
+
+ getContainer().addComponent(getContainer(), PlexusContainer.class.getName());
+
+ ((DefaultPlexusContainer) getContainer()).addPlexusInjector(Collections.emptyList(), binder -> {
+ binder.install(ProviderMethodsModule.forObject(context.getRequiredTestInstance()));
+ binder.requestInjection(context.getRequiredTestInstance());
+ binder.bind(Log.class).toInstance(new DefaultLog(LoggerFactory.getLogger("anonymous")));</pre></div></td></tr></table>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>File</th>
+<th>Line</th></tr>
+<tr class="b">
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L164">164</a></td></tr>
+<tr class="a">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L189">189</a></td></tr>
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">}
+
+ protected String getPluginDescriptorLocation() {
+ return "META-INF/maven/plugin.xml";
+ }
+
+ private Mojo lookupMojo(
+ Class<?> holder,
+ InjectMojo injectMojo,
+ Collection<MojoParameter> mojoParameters,
+ PluginDescriptor descriptor)
+ throws Exception {
+ String goal = injectMojo.goal();
+ String pom = injectMojo.pom();
+ String[] coord = mojoCoordinates(goal);
+ Xpp3Dom pomDom;
+ if (pom.startsWith("file:")) {
+ Path path = Paths.get(getBasedir()).resolve(pom.substring("file:".length()));
+ pomDom = Xpp3DomBuilder.build(ReaderFactory.newXmlReader(path.toFile()));
+ } else if (pom.startsWith("classpath:")) {
+ URL url = holder.getResource(pom.substring("classpath:".length()));
+ if (url == null) {
+ throw new IllegalStateException("Unable to find pom on classpath: " + pom);
+ }
+ pomDom = Xpp3DomBuilder.build(ReaderFactory.newXmlReader(url.openStream()));
+ } else if (pom.contains("<project>")) {
+ pomDom = Xpp3DomBuilder.build(new StringReader(pom));
+ } else {
+ Path path = Paths.get(getBasedir()).resolve(pom);
+ pomDom = Xpp3DomBuilder.build(ReaderFactory.newXmlReader(path.toFile()));
+ }</pre></div></td></tr></table>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>File</th>
+<th>Line</th></tr>
+<tr class="b">
+<td align="left">org/apache/maven/api/plugin/testing/ResolverExpressionEvaluatorStub.java</td>
<td><a href="./xref/org/apache/maven/api/plugin/testing/ResolverExpressionEvaluatorStub.html#L52">52</a></td></tr>
<tr class="a">
-<td>org/apache/maven/plugin/testing/ResolverExpressionEvaluatorStub.java</td>
+<td align="left">org/apache/maven/plugin/testing/ResolverExpressionEvaluatorStub.java</td>
<td><a href="./xref/org/apache/maven/plugin/testing/ResolverExpressionEvaluatorStub.html#L37">37</a></td></tr>
-<tr class="b"><td colspan='2'>
-<div>
-<pre>public Object evaluate(String expr, Class<?> type) throws ExpressionEvaluationException {
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">public Object evaluate(String expr, Class<?> type) throws ExpressionEvaluationException {
Object value = null;
@@ -166,14 +403,85 @@
<th>File</th>
<th>Line</th></tr>
<tr class="b">
-<td>org/apache/maven/api/plugin/testing/MojoExtension.java</td>
-<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L357">357</a></td></tr>
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L144">144</a></td></tr>
+<tr class="a">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L148">148</a></td></tr>
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">binder.bind(Log.class).toInstance(new DefaultLog(LoggerFactory.getLogger("anonymous")));
+ });
+
+ Map<Object, Object> map = getContainer().getContext().getContextData();
+
+ ClassLoader classLoader = context.getRequiredTestClass().getClassLoader();
+ try (InputStream is = Objects.requireNonNull(
+ classLoader.getResourceAsStream(getPluginDescriptorLocation()),
+ "Unable to find plugin descriptor: " + getPluginDescriptorLocation());
+ Reader reader = new BufferedReader(new XmlStreamReader(is));
+ InterpolationFilterReader interpolationReader = new InterpolationFilterReader(reader, map, "${", "}")) {
+
+ PluginDescriptor pluginDescriptor = new PluginDescriptorBuilder().build(interpolationReader);
+
+ context.getStore(ExtensionContext.Namespace.GLOBAL).put(PluginDescriptor.class, pluginDescriptor);
+
+ for (ComponentDescriptor<?> desc : pluginDescriptor.getComponents()) {
+ getContainer().addComponentDescriptor(desc);
+ }
+ }
+ }</pre></div></td></tr></table>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>File</th>
+<th>Line</th></tr>
+<tr class="b">
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L201">201</a></td></tr>
+<tr class="a">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L231">231</a></td></tr>
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">pluginConfiguration = XmlNode.merge(config, pluginConfiguration);
+ }
+ Mojo mojo = lookupMojo(coord, pluginConfiguration, descriptor);
+ return mojo;
+ }
+
+ protected String[] mojoCoordinates(String goal) throws Exception {
+ if (goal.matches(".*:.*:.*:.*")) {
+ return goal.split(":");
+ } else {
+ Path pluginPom = Paths.get(getBasedir(), "pom.xml");
+ Xpp3Dom pluginPomDom = Xpp3DomBuilder.build(ReaderFactory.newXmlReader(pluginPom.toFile()));
+ String artifactId = pluginPomDom.getChild("artifactId").getValue();
+ String groupId = resolveFromRootThenParent(pluginPomDom, "groupId");
+ String version = resolveFromRootThenParent(pluginPomDom, "version");
+ return new String[] {groupId, artifactId, version, goal};
+ }
+ }
+
+ /**
+ * lookup the mojo while we have all the relevent information
+ */
+ protected Mojo lookupMojo(String[] coord, XmlNode pluginConfiguration, PluginDescriptor descriptor)</pre></div></td></tr></table>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>File</th>
+<th>Line</th></tr>
+<tr class="b">
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L362">362</a></td></tr>
<tr class="a">
-<td>org/apache/maven/plugin/testing/AbstractMojoTestCase.java</td>
-<td><a href="./xref/org/apache/maven/plugin/testing/AbstractMojoTestCase.html#L635">635</a></td></tr>
-<tr class="b"><td colspan='2'>
-<div>
-<pre>public static Map<String, Object> getVariablesAndValuesFromObject(Class<?> clazz, Object object)
+<td align="left">org/apache/maven/plugin/testing/AbstractMojoTestCase.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/AbstractMojoTestCase.html#L638">638</a></td></tr>
+<tr class="b">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L385">385</a></td></tr>
+<tr class="a">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">public static Map<String, Object> getVariablesAndValuesFromObject(Class<?> clazz, Object object)
throws IllegalAccessException {
Map<String, Object> map = new HashMap<>();
Field[] fields = clazz.getDeclaredFields();
@@ -186,7 +494,56 @@
map.putAll(getVariablesAndValuesFromObject(superclass, object));
}
return map;
- }</pre></div></td></tr></table></section>
+ }</pre></div></td></tr></table>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>File</th>
+<th>Line</th></tr>
+<tr class="b">
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L223">223</a></td></tr>
+<tr class="a">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L253">253</a></td></tr>
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">protected Mojo lookupMojo(String[] coord, XmlNode pluginConfiguration, PluginDescriptor descriptor)
+ throws Exception {
+ // pluginkey = groupId : artifactId : version : goal
+ Mojo mojo = lookup(Mojo.class, coord[0] + ":" + coord[1] + ":" + coord[2] + ":" + coord[3]);
+ for (MojoDescriptor mojoDescriptor : descriptor.getMojos()) {
+ if (Objects.equals(
+ mojoDescriptor.getImplementation(), mojo.getClass().getName())) {
+ if (pluginConfiguration != null) {
+ pluginConfiguration = finalizeConfig(pluginConfiguration, mojoDescriptor);
+ }
+ }
+ }
+ if (pluginConfiguration != null) {</pre></div></td></tr></table>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>File</th>
+<th>Line</th></tr>
+<tr class="b">
+<td align="left">org/apache/maven/api/plugin/testing/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/api/plugin/testing/MojoExtension.html#L308">308</a></td></tr>
+<tr class="a">
+<td align="left">org/apache/maven/plugin/testing/junit5/MojoExtension.java</td>
+<td><a href="./xref/org/apache/maven/plugin/testing/junit5/MojoExtension.html#L331">331</a></td></tr>
+<tr class="b">
+<td colspan="2" align="left">
+<div class="source"><pre class="prettyprint linenums">public static XmlNode extractPluginConfiguration(String artifactId, Xpp3Dom pomDom) throws Exception {
+ Xpp3Dom pluginConfigurationElement = child(pomDom, "build")
+ .flatMap(buildElement -> child(buildElement, "plugins"))
+ .map(MojoExtension::children)
+ .orElseGet(Stream::empty)
+ .filter(e -> e.getChild("artifactId").getValue().equals(artifactId))
+ .findFirst()
+ .flatMap(buildElement -> child(buildElement, "configuration"))
+ .orElseThrow(
+ () -> new ConfigurationException("Cannot find a configuration element for a plugin with an "
+ + "artifactId of " + artifactId + "."));
+ return pluginConfigurationElement.getDom();</pre></div></td></tr></table></section></section>
</main>
</div>
</div>
Added: maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/css/apache-maven-fluido-1.11.2.min.css
==============================================================================
--- maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/css/apache-maven-fluido-1.11.2.min.css (added)
+++ maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/css/apache-maven-fluido-1.11.2.min.css Tue Nov 7 22:03:57 2023
@@ -0,0 +1,20 @@
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2013 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world by @mdo and @fat.
[... 14 lines stripped ...]
Propchange: maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/css/apache-maven-fluido-1.11.2.min.css
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/css/print.css
==============================================================================
--- maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/css/print.css (original)
+++ maven/website/components/plugin-testing-archives/LATEST/maven-plugin-testing-harness/css/print.css Tue Nov 7 22:03:57 2023
@@ -17,5 +17,19 @@
* under the License.
*/
-#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {display: none !important;}
-#bodyColumn, body.docs div.docs {margin: 0 !important;border: none !important}
\ No newline at end of file
+#banner,
+#footer,
+#leftcol,
+#breadcrumbs,
+.docs #toc,
+.docs .courtesylinks,
+#leftColumn,
+#navColumn {
+ display: none !important;
+}
+
+#bodyColumn,
+body.docs div.docs {
+ margin: 0 !important;
+ border: none !important;
+}
\ No newline at end of file