You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/06/16 19:50:28 UTC
[maven-site-plugin] branch MSITE-833 updated (831d6a36 -> 5ada43f2)
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a change to branch MSITE-833
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git
discard 831d6a36 [MSITE-833] Remove dependency to maven-compat
add 5118a42d Bump maven-shared-utils from 3.3.4 to 3.4.1 (#151)
new 5ada43f2 [MSITE-833] Remove dependency to maven-compat
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (831d6a36)
\
N -- N -- N refs/heads/MSITE-833 (5ada43f2)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[maven-site-plugin] 01/01: [MSITE-833] Remove dependency to maven-compat
Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch MSITE-833
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git
commit 5ada43f2235e4f99486ec4116b382d6d0f1211d1
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Wed May 27 10:36:33 2020 +0200
[MSITE-833] Remove dependency to maven-compat
This closes #155
---
pom.xml | 2 +-
.../plugins/site/deploy/AbstractDeployMojo.java | 169 ++++++---------------
.../site/deploy/AbstractSiteDeployWebDavTest.java | 7 +-
.../plugins/site/deploy/SiteDeployMojoTest.java | 6 +-
4 files changed, 53 insertions(+), 131 deletions(-)
diff --git a/pom.xml b/pom.xml
index a62a54aa..db5a1510 100644
--- a/pom.xml
+++ b/pom.xml
@@ -244,7 +244,7 @@ under the License.
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>${mavenVersion}</version>
- <scope>provided</scope>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
diff --git a/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java b/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java
index 1cfd07e0..204f2fc6 100644
--- a/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java
+++ b/src/main/java/org/apache/maven/plugins/site/deploy/AbstractDeployMojo.java
@@ -23,10 +23,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Locale;
-import java.util.Set;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.doxia.site.inheritance.URIPathDescriptor;
import org.apache.maven.doxia.tools.SiteTool;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -39,6 +36,7 @@ import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.site.AbstractSiteMojo;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Proxy;
+import org.apache.maven.settings.Server;
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
import org.apache.maven.settings.crypto.SettingsDecrypter;
@@ -48,7 +46,6 @@ import org.apache.maven.wagon.CommandExecutor;
import org.apache.maven.wagon.ConnectionException;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
-import org.apache.maven.wagon.UnsupportedProtocolException;
import org.apache.maven.wagon.Wagon;
import org.apache.maven.wagon.authentication.AuthenticationException;
import org.apache.maven.wagon.authentication.AuthenticationInfo;
@@ -56,12 +53,8 @@ import org.apache.maven.wagon.authorization.AuthorizationException;
import org.apache.maven.wagon.observers.Debug;
import org.apache.maven.wagon.proxy.ProxyInfo;
import org.apache.maven.wagon.repository.Repository;
-import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
/**
* Abstract base class for deploy mojos.
@@ -70,7 +63,7 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
* @author ltheussl
* @since 2.3
*/
-public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Contextualizable {
+public abstract class AbstractDeployMojo extends AbstractSiteMojo {
/**
* Directory containing the generated project sites and report distributions.
*
@@ -114,11 +107,6 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
@Parameter(property = "maven.site.deploy.skip", defaultValue = "false")
private boolean skipDeploy;
- /**
- */
- @Component
- private WagonManager wagonManager; // maven-compat
-
/**
* The current user system settings for use in Maven.
*/
@@ -135,8 +123,12 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
private Site deploySite;
+ @Component
private PlexusContainer container;
+ @Component
+ SettingsDecrypter settingsDecrypter;
+
/**
* {@inheritDoc}
*/
@@ -261,11 +253,9 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
private void deploy(final File directory, final Repository repository) throws MojoExecutionException {
// TODO: work on moving this into the deployer like the other deploy methods
- final Wagon wagon = getWagon(repository, wagonManager);
+ final Wagon wagon = getWagon(repository);
try {
- SettingsDecrypter settingsDecrypter = container.lookup(SettingsDecrypter.class);
-
ProxyInfo proxyInfo = getProxy(repository, settingsDecrypter);
push(directory, repository, wagon, proxyInfo, getLocales(), getDeployModuleDirectory());
@@ -273,8 +263,6 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
if (chmod) {
chmod(wagon, repository, chmodOptions, chmodMode);
}
- } catch (ComponentLookupException cle) {
- throw new MojoExecutionException("Unable to lookup SettingsDecrypter: " + cle.getMessage(), cle);
} finally {
try {
wagon.disconnect();
@@ -284,44 +272,47 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
}
}
- private Wagon getWagon(final Repository repository, final WagonManager manager) throws MojoExecutionException {
- final Wagon wagon;
-
+ private Wagon getWagon(final Repository repository) throws MojoExecutionException {
+ String protocol = repository.getProtocol();
+ if (protocol == null) {
+ throw new MojoExecutionException("Unspecified protocol");
+ }
try {
- wagon = manager.getWagon(repository);
- } catch (UnsupportedProtocolException e) {
- String shortMessage = "Unsupported protocol: '" + repository.getProtocol() + "' for site deployment to "
- + "distributionManagement.site.url=" + repository.getUrl() + ".";
- String longMessage =
- "\n" + shortMessage + "\n" + "Currently supported protocols are: " + getSupportedProtocols() + ".\n"
- + " Protocols may be added through wagon providers.\n" + " For more information, see "
- + "https://maven.apache.org/plugins/maven-site-plugin/examples/adding-deploy-protocol.html";
-
- getLog().error(longMessage);
-
- throw new MojoExecutionException(shortMessage);
- } catch (TransferFailedException e) {
- throw new MojoExecutionException("Unable to configure Wagon: '" + repository.getProtocol() + "'", e);
+ Wagon wagon = container.lookup(Wagon.class, protocol.toLowerCase(Locale.ROOT));
+ if (!wagon.supportsDirectoryCopy()) {
+ throw new MojoExecutionException(
+ "Wagon protocol '" + repository.getProtocol() + "' doesn't support directory copying");
+ }
+ return wagon;
+ } catch (ComponentLookupException e) {
+ throw new MojoExecutionException("Cannot find wagon which supports the requested protocol: " + protocol, e);
}
+ }
- if (!wagon.supportsDirectoryCopy()) {
- throw new MojoExecutionException(
- "Wagon protocol '" + repository.getProtocol() + "' doesn't support directory copying");
- }
+ public AuthenticationInfo getAuthenticationInfo(String id) {
+ if (id != null) {
+ List<Server> servers = settings.getServers();
- return wagon;
- }
+ if (servers != null) {
+ for (Server server : servers) {
+ if (id.equalsIgnoreCase(server.getId())) {
+ SettingsDecryptionResult result =
+ settingsDecrypter.decrypt(new DefaultSettingsDecryptionRequest(server));
+ server = result.getServer();
- private String getSupportedProtocols() {
- try {
- Set<String> protocols = container.lookupMap(Wagon.class).keySet();
+ AuthenticationInfo authInfo = new AuthenticationInfo();
+ authInfo.setUserName(server.getUsername());
+ authInfo.setPassword(server.getPassword());
+ authInfo.setPrivateKey(server.getPrivateKey());
+ authInfo.setPassphrase(server.getPassphrase());
- return StringUtils.join(protocols.iterator(), ", ");
- } catch (ComponentLookupException e) {
- // in the unexpected case there is a problem when instantiating a wagon provider
- getLog().error(e);
+ return authInfo;
+ }
+ }
+ }
}
- return "";
+
+ return null;
}
private void push(
@@ -332,9 +323,10 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
final List<Locale> localesList,
final String relativeDir)
throws MojoExecutionException {
- AuthenticationInfo authenticationInfo = wagonManager.getAuthenticationInfo(repository.getId());
- getLog().debug("authenticationInfo with id '" + repository.getId() + "': "
- + ((authenticationInfo == null) ? "-" : authenticationInfo.getUserName()));
+ AuthenticationInfo authenticationInfo = getAuthenticationInfo(repository.getId());
+ if (authenticationInfo != null) {
+ getLog().debug("authenticationInfo with id '" + repository.getId() + "'");
+ }
try {
if (getLog().isDebugEnabled()) {
@@ -348,7 +340,7 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
if (proxyInfo != null) {
getLog().debug("connect with proxyInfo");
wagon.connect(repository, authenticationInfo, proxyInfo);
- } else if (proxyInfo == null && authenticationInfo != null) {
+ } else if (authenticationInfo != null) {
getLog().debug("connect with authenticationInfo and without proxyInfo");
wagon.connect(repository, authenticationInfo);
} else {
@@ -394,66 +386,6 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
}
}
- /**
- * Get proxy information.
- * <p>
- * Get the <code>ProxyInfo</code> of the proxy associated with the <code>host</code>
- * and the <code>protocol</code> of the given <code>repository</code>.
- * </p>
- * <p>
- * Extract from <a href="https://docs.oracle.com/javase/1.5.0/docs/guide/net/properties.html">
- * J2SE Doc : Networking Properties - nonProxyHosts</a> : "The value can be a list of hosts,
- * each separated by a |, and in addition a wildcard character (*) can be used for matching"
- * </p>
- * <p>
- * Defensively support comma (",") and semi colon (";") in addition to pipe ("|") as separator.
- * </p>
- *
- * @param repository the Repository to extract the ProxyInfo from
- * @param wagonManager the WagonManager used to connect to the Repository
- * @return a ProxyInfo object instantiated or <code>null</code> if no matching proxy is found
- */
- public static ProxyInfo getProxyInfo(Repository repository, WagonManager wagonManager) {
- ProxyInfo proxyInfo = wagonManager.getProxy(repository.getProtocol());
-
- if (proxyInfo == null) {
- return null;
- }
-
- String host = repository.getHost();
- String nonProxyHostsAsString = proxyInfo.getNonProxyHosts();
- for (String nonProxyHost : StringUtils.split(nonProxyHostsAsString, ",;|")) {
- if (StringUtils.contains(nonProxyHost, "*")) {
- // Handle wildcard at the end, beginning or middle of the nonProxyHost
- final int pos = nonProxyHost.indexOf('*');
- String nonProxyHostPrefix = nonProxyHost.substring(0, pos);
- String nonProxyHostSuffix = nonProxyHost.substring(pos + 1);
- // prefix*
- if ((nonProxyHostPrefix != null && !nonProxyHostPrefix.isEmpty())
- && host.startsWith(nonProxyHostPrefix)
- && (nonProxyHostSuffix == null || nonProxyHostSuffix.isEmpty())) {
- return null;
- }
- // *suffix
- if ((nonProxyHostPrefix == null || nonProxyHostPrefix.isEmpty())
- && (nonProxyHostSuffix != null && !nonProxyHostSuffix.isEmpty())
- && host.endsWith(nonProxyHostSuffix)) {
- return null;
- }
- // prefix*suffix
- if ((nonProxyHostPrefix != null && !nonProxyHostPrefix.isEmpty())
- && host.startsWith(nonProxyHostPrefix)
- && (nonProxyHostSuffix != null && !nonProxyHostSuffix.isEmpty())
- && host.endsWith(nonProxyHostSuffix)) {
- return null;
- }
- } else if (host.equals(nonProxyHost)) {
- return null;
- }
- }
- return proxyInfo;
- }
-
/**
* Get proxy information.
*
@@ -472,7 +404,7 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
// but the real protocol (transport layer) is http(s)
// and it's the one use in wagon to find the proxy arghhh
// so we will check both
- if (StringUtils.equalsIgnoreCase("dav", protocol) && url.startsWith("dav:")) {
+ if ("dav".equalsIgnoreCase(protocol) && url.startsWith("dav:")) {
url = url.substring(4);
if (url.startsWith("http")) {
try {
@@ -526,13 +458,6 @@ public abstract class AbstractDeployMojo extends AbstractSiteMojo implements Con
return null;
}
- /**
- * {@inheritDoc}
- */
- public void contextualize(Context context) throws ContextException {
- container = (PlexusContainer) context.get(PlexusConstants.PLEXUS_KEY);
- }
-
/**
* Extract the distributionManagement site from the given MavenProject.
*
diff --git a/src/test/java/org/apache/maven/plugins/site/deploy/AbstractSiteDeployWebDavTest.java b/src/test/java/org/apache/maven/plugins/site/deploy/AbstractSiteDeployWebDavTest.java
index 792fb9a6..7f1cbbe8 100644
--- a/src/test/java/org/apache/maven/plugins/site/deploy/AbstractSiteDeployWebDavTest.java
+++ b/src/test/java/org/apache/maven/plugins/site/deploy/AbstractSiteDeployWebDavTest.java
@@ -26,7 +26,7 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
-import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.doxia.tools.SiteTool;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -194,15 +194,12 @@ public abstract class AbstractSiteDeployWebDavTest extends AbstractMojoTestCase
if (ReflectionUtils.getFieldByNameIncludingSuperclasses("inputDirectory", mojo.getClass()) != null) {
setVariableValueToObject(mojo, "inputDirectory", inputDirectory);
} else {
- ArtifactRepositoryFactory artifactRepositoryFactory =
- getContainer().lookup(ArtifactRepositoryFactory.class);
-
setVariableValueToObject(mojo, "stagingDirectory", inputDirectory);
setVariableValueToObject(mojo, "reactorProjects", Collections.emptyList());
setVariableValueToObject(
mojo,
"localRepository",
- artifactRepositoryFactory.createArtifactRepository("local", "foo", "default", null, null));
+ MavenRepositorySystem.createArtifactRepository("local", "foo", null, null, null));
setVariableValueToObject(mojo, "siteTool", getContainer().lookup(SiteTool.class));
setVariableValueToObject(mojo, "siteDirectory", new File("foo"));
setVariableValueToObject(mojo, "remoteProjectRepositories", Collections.emptyList());
diff --git a/src/test/java/org/apache/maven/plugins/site/deploy/SiteDeployMojoTest.java b/src/test/java/org/apache/maven/plugins/site/deploy/SiteDeployMojoTest.java
index 7373f90d..5569df36 100644
--- a/src/test/java/org/apache/maven/plugins/site/deploy/SiteDeployMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/site/deploy/SiteDeployMojoTest.java
@@ -18,8 +18,8 @@
*/
package org.apache.maven.plugins.site.deploy;
-import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.wagon.Wagon;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -30,14 +30,14 @@ import org.junit.runners.JUnit4;
*/
@RunWith(JUnit4.class)
public class SiteDeployMojoTest extends AbstractMojoTestCase {
- private WagonManager wagonManager;
+ private Wagon wagon;
// private Repository repository;
@Before
public void setUp() throws Exception {
super.setUp();
- wagonManager = getContainer().lookup(WagonManager.class);
+ // wagon = getContainer().lookup( Wagon.class, "scp" );
// repository = new Repository( "my-repository", "scp://repository-host/var/maven2" );
}