diff --git a/artifact/project.xml b/artifact/project.xml index 0b1076d0..fd3ad2d2 100644 --- a/artifact/project.xml +++ b/artifact/project.xml @@ -46,6 +46,14 @@ 2.0-beta1 jar + + + commons-lang + commons-lang + 1.0 + jar + + diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java b/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java index dd572b5c..659b8c5d 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java +++ b/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java @@ -62,12 +62,10 @@ import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang.StringUtils; import org.apache.maven.MavenConstants; import org.apache.maven.MavenException; -import org.apache.maven.artifact.deployer.deploy.Deployer; -import org.apache.maven.artifact.deployer.deploy.FtpDeployer; -import org.apache.maven.artifact.deployer.deploy.HttpDeployer; -import org.apache.maven.artifact.deployer.deploy.SshDeployer; +import org.apache.maven.deploy.DeployTool; import org.apache.maven.project.Project; /** @@ -75,7 +73,7 @@ import org.apache.maven.project.Project; * Default implemenataion of Artifact Deployer interface * * @author Michal Maczka - * @version $Id: DefaultArtifactDeployer.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: DefaultArtifactDeployer.java,v 1.2 2003/06/17 22:06:00 michal Exp $ */ public class DefaultArtifactDeployer implements ArtifactDeployer { @@ -191,72 +189,64 @@ public class DefaultArtifactDeployer implements ArtifactDeployer String version) throws MavenException { - String repoPath = getRepositoryPath(type, project, version); - String host = getDistributionHost(project); - String remotePath = getDistributionDirectory(project) + "/" + repoPath; - Deployer deployer = getDeployer(host); - - //Cut of protcol prefix from host name - - host = host.substring( host.indexOf("://") + 3 ); - + + DeployTool deployTool = new DeployTool(); + + // trick add special values to context for default repository; + + String repos = + (String) project.getContext().getVariable("maven.deploy.repos"); + + String distSite = project.getDistributionSite(); + if (distSite != null && distSite.length() > 0) + { + project.getContext().setVariable( + "maven.deploy.default.url", + project.getDistributionSite()); + project.getContext().setVariable( + "maven.deploy.default.dir", + project.getDistributionDirectory()); + + repos = "default, " + repos; + } + + String repositoryPath = getRepositoryPath(type, project, version); + + String[] repoArray = StringUtils.split(repos, ","); + System.out.println( - "Deploying: '" - + artifact - + "' to host: '" - + host - + "' remote path: '" - + remotePath); - MavenAuthenticationInfo authInfo = new MavenAuthenticationInfo(project); - deployer.deploy(authInfo, host, artifact, remotePath); - System.out.println("Deployment finished"); - } - - /** - * @param project - * @return - */ - private String getDistributionHost(Project project) throws MavenException - { - String host = host = project.getDistributionSite(); - if (host == null || host.length() == 0) + "Will deploy to " + repoArray.length + " repo(s): " + repos); + for (int i = 0; i < repoArray.length; i++) { - host = - (String) project.getContext().getVariable( - "maven.deployer.host"); - } - if (host == null) - { - throw new MavenException("Distribution host is not set"); - } - return host; - } + String repo = repoArray[i]; + System.out.println("Deploying to repo: " + repo); - /** - * - * @param project - * @return - * @throws MavenException - */ - private String getDistributionDirectory(Project project) - throws MavenException - { + MavenDeployRequest request = + new MavenDeployRequest( + project, + repo, + artifact, + repositoryPath, + getRepositoryFile(type, project, version)); - String dir = project.getDistributionDirectory(); - - if (dir == null || dir.length() == 0) - { - dir = - (String) project.getContext().getVariable( - "maven.deployer.remote.directory"); + System.out.println( + "Deploying: '" + + artifact + + "' to host: '" + + request.getHost() + + "' remote path: '" + + request.getOutputDir()); + try + { + deployTool.performUpload(request); + } + catch (Exception e) + { + throw new MavenException("Cannot deploy", e); + } } - if (dir == null) - { - throw new MavenException("Distribution directory is not set"); - } - return dir; } @@ -285,14 +275,21 @@ public class DefaultArtifactDeployer implements ArtifactDeployer path.append(project.getArtifactDirectory()); path.append("/"); path.append(type + "s"); - path.append("/"); + return path.toString(); + } + + private String getRepositoryFile( + String type, + Project project, + String version) + { + StringBuffer path = new StringBuffer(); path.append(project.getArtifactId()); path.append("-"); path.append(version); path.append("."); path.append(extensionForType(type)); return path.toString(); - } /** @@ -320,37 +317,4 @@ public class DefaultArtifactDeployer implements ArtifactDeployer return type; } - /** - * - * @param host - * @param project - * @return - * @throws MavenException - */ - private Deployer getDeployer(String host) throws MavenException - { - Deployer deployer = null; - - if (host.startsWith("http://")) - { - deployer = new HttpDeployer(); - } - else - if (host.startsWith("ssh://")) - { - deployer = new SshDeployer(); - } - else - if (host.startsWith("ftp://")) - { - deployer = new FtpDeployer(); - } - else - { - throw new MavenException( - "unsupported protocol: '" + host + "'"); - } - return deployer; - } - } diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/MavenDeployRequest.java b/artifact/src/main/org/apache/maven/artifact/deployer/MavenDeployRequest.java new file mode 100644 index 00000000..32d64b15 --- /dev/null +++ b/artifact/src/main/org/apache/maven/artifact/deployer/MavenDeployRequest.java @@ -0,0 +1,168 @@ +package org.apache.maven.artifact.deployer; + +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache MavenSession" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache MavenSession", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * ==================================================================== + */ + +import org.apache.maven.deploy.DeployRequest; +import org.apache.maven.project.Project; + +/** + * + * The Bean which serves as Proxy for Jelly scripts To Artifact Deployement API + * + * @author Michal Maczka + * @version $Id: MavenDeployRequest.java,v 1.1 2003/06/17 22:06:00 michal Exp $ + */ +public class MavenDeployRequest extends DeployRequest +{ + + /** + * + * @param project + * @param repository This is alias name of the repository + * like repo1 taken from maven.deploy.repos= repo1, repo2 + * @param inputDir + * @param outputDir + * @param outputFile + */ + public MavenDeployRequest( + Project project, + String repository, + String inputFile, + String outputDir, + String outputFile) + { + super(); + String username = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".username"); + + System.out.println(repository + " username:" + username); + String password = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".password"); + + System.out.println(repository + " password: '" + password + "'"); + + String passphrase = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".passphrase"); + + String privateKey = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".privatekey"); + + String url = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".url"); + + String dir = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".dir"); + + String port = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".port"); + + String proxyHost = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".proxy.host"); + String proxyUser = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".proxy.username"); + String proxyPassword = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".proxy.password"); + + String proxyPort = + (String) project.getContext().getVariable( + "maven.deploy." + repository + ".proxy.port"); + + setUser(username); + setPass(password); + setPassphrase(passphrase); + setPrivateKey(url); + setUrl(url); + + try + { + setPort(Integer.parseInt(port)); + } + catch (Exception e) + { + + setProxyHost(proxyHost); + setProxyUser(proxyUser); + setProxyPass(proxyPassword); + } + try + { + setProxyPort(Integer.parseInt(proxyPort)); + } + catch (Exception e) + { + + } + + setInputFile(inputFile); + + String ouputDir = dir + "/" + outputDir; + setOutputFile(outputFile); + setOutputDir(ouputDir); + + } + +} diff --git a/artifact/src/main/org/apache/maven/deploy/DeployRequest.java b/artifact/src/main/org/apache/maven/deploy/DeployRequest.java new file mode 100644 index 00000000..753828c3 --- /dev/null +++ b/artifact/src/main/org/apache/maven/deploy/DeployRequest.java @@ -0,0 +1,357 @@ +package org.apache.maven.deploy; + +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2003 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache Maven" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache Maven", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * ==================================================================== + */ + +/** + * + * @author Michal Maczka + * @version $Id: DeployRequest.java,v 1.1 2003/06/17 22:06:00 michal Exp $ + */ +public class DeployRequest +{ + public final static int UNKNOWN_PORT = -1; + + private String url; + private int port = UNKNOWN_PORT; + private String outputDir; + private String outputFile; + private String inputFile; + + /* + * Resource access user / pass /group + */ + private String user; + private String pass; + private String group; + private String passphrase; + private String privateKey; + + public DeployRequest() + { + + } + + public DeployRequest(String url) + { + this.url = url; + } + + // private boolean resumeDownload = false; + private String headerUserAgent = "Maven-Deploy-" + DeployTool.VERSION; + + /* + * Proxy settings. If proxyHost is not null, settings will be used. + */ + private String proxyHost = null; + private String proxyUser = null; + private String proxyPass = null; + private int proxyPort = UNKNOWN_PORT; + + /** + * @return + */ + public int getPort() + { + return port; + } + + /** + * @param port + */ + public void setPort(int port) + { + this.port = port; + } + + /** + * @return + */ + public String getPassphrase() + { + return passphrase; + } + + /** + * @param passphrase + */ + public void setPassphrase(String passphrase) + { + this.passphrase = passphrase; + } + + /** + * @return + */ + public String getPrivateKey() + { + return privateKey; + } + + /** + * @param privateKey + */ + public void setPrivateKey(String privateKey) + { + this.privateKey = privateKey; + } + + /** + * @return + */ + public String getGroup() + { + return group; + } + + /** + * @param group + */ + public void setGroup(String group) + { + this.group = group; + } + + /** + * @return + */ + public String getHeaderUserAgent() + { + return headerUserAgent; + } + + /** + * @param headerUserAgent + */ + public void setHeaderUserAgent(String headerUserAgent) + { + this.headerUserAgent = headerUserAgent; + } + + /** + * @return + */ + public String getInputFile() + { + return inputFile; + } + + /** + * @param inputFile + */ + public void setInputFile(String inputFile) + { + this.inputFile = inputFile; + } + + /** + * @return + */ + public String getOutputDir() + { + return outputDir; + } + + /** + * @param outputDir + */ + public void setOutputDir(String outputDir) + { + this.outputDir = outputDir; + } + + /** + * @return + */ + public String getOutputFile() + { + return outputFile; + } + + /** + * @param outputFile + */ + public void setOutputFile(String outputFile) + { + this.outputFile = outputFile; + } + + /** + * @return + */ + public String getPass() + { + return pass; + } + + /** + * @param pass + */ + public void setPass(String pass) + { + this.pass = pass; + } + + /** + * @return + */ + public String getProxyHost() + { + return proxyHost; + } + + /** + * @param proxyHost + */ + public void setProxyHost(String proxyHost) + { + this.proxyHost = proxyHost; + } + + /** + * @return + */ + public String getProxyPass() + { + return proxyPass; + } + + /** + * @param proxyPass + */ + public void setProxyPass(String proxyPass) + { + this.proxyPass = proxyPass; + } + + /** + * @return + */ + public int getProxyPort() + { + return proxyPort; + } + + /** + * @param proxyPort + */ + public void setProxyPort(int proxyPort) + { + this.proxyPort = proxyPort; + } + + /** + * @return + */ + public String getProxyUser() + { + return proxyUser; + } + + /** + * @param proxyUser + */ + public void setProxyUser(String proxyUser) + { + this.proxyUser = proxyUser; + } + + /** + * @return + */ + public String getUrl() + { + return url; + } + + /** + * @param url + */ + public void setUrl(String url) + { + this.url = url; + } + + /** + * @return + */ + public String getUser() + { + return user; + } + + /** + * @param user + */ + public void setUser(String user) + { + this.user = user; + } + + /** + * Cut of protocol from the URL + * @return + */ + public String getHost() + { + if (url == null ) + { + return "localhost"; + } + return url.substring(url.indexOf("://") + 3); + } + +} diff --git a/artifact/src/main/org/apache/maven/deploy/DeployTool.java b/artifact/src/main/org/apache/maven/deploy/DeployTool.java new file mode 100644 index 00000000..358d39c9 --- /dev/null +++ b/artifact/src/main/org/apache/maven/deploy/DeployTool.java @@ -0,0 +1,107 @@ +package org.apache.maven.deploy; + +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2003 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache Maven" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache Maven", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * ==================================================================== + */ + +import org.apache.maven.deploy.deployers.Deployer; +import org.apache.maven.deploy.deployers.FileDeployer; +import org.apache.maven.deploy.deployers.FtpDeployer; +import org.apache.maven.deploy.deployers.HttpDeployer; +import org.apache.maven.deploy.deployers.SshDeployer; +import org.apache.maven.deploy.exceptions.DeployException; +import org.apache.maven.deploy.exceptions.UnsupportedProtocolDeployException; + + +/** + * + * @author Michal Maczka + * @version $Id: DeployTool.java,v 1.1 2003/06/17 22:06:00 michal Exp $ + */ +public class DeployTool +{ + public static final String VERSION = "1.0-dev"; + + public void performUpload(DeployRequest request) throws DeployException + { + + String url = request.getUrl(); + Deployer deployer = null; + + if (url.startsWith("http://")) + { + deployer = new HttpDeployer(); + } + + if (url.startsWith("file://")) + { + deployer = new FileDeployer(); + } + if (url.startsWith("ssh://")) + { + deployer = new SshDeployer(); + } + if (url.startsWith("ftp://")) + { + deployer = new FtpDeployer(); + } + if (deployer == null) + { + throw new UnsupportedProtocolDeployException(url); + } + deployer.deploy(request); + + } +} diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/AbstractDeployer.java b/artifact/src/main/org/apache/maven/deploy/deployers/AbstractDeployer.java similarity index 91% rename from artifact/src/main/org/apache/maven/artifact/deployer/deploy/AbstractDeployer.java rename to artifact/src/main/org/apache/maven/deploy/deployers/AbstractDeployer.java index f4b97923..c227ba13 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/AbstractDeployer.java +++ b/artifact/src/main/org/apache/maven/deploy/deployers/AbstractDeployer.java @@ -1,4 +1,4 @@ -package org.apache.maven.artifact.deployer.deploy; +package org.apache.maven.deploy.deployers; /* ==================================================================== * The Apache Software License, Version 1.1 * @@ -60,18 +60,9 @@ package org.apache.maven.artifact.deployer.deploy; * * @author Jason van Zyl * @author Michal Maczka - * @version $Id: AbstractDeployer.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: AbstractDeployer.java,v 1.1 2003/06/17 22:05:59 michal Exp $ */ public abstract class AbstractDeployer implements Deployer { - /** - * - */ - public abstract void deploy( - AuthenticationInfo authInfo, - String host, - String localPath, - String remotePath); - } diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/Deployer.java b/artifact/src/main/org/apache/maven/deploy/deployers/Deployer.java similarity index 89% rename from artifact/src/main/org/apache/maven/artifact/deployer/deploy/Deployer.java rename to artifact/src/main/org/apache/maven/deploy/deployers/Deployer.java index a9d35d48..ffbdb59e 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/Deployer.java +++ b/artifact/src/main/org/apache/maven/deploy/deployers/Deployer.java @@ -1,4 +1,7 @@ -package org.apache.maven.artifact.deployer.deploy; +package org.apache.maven.deploy.deployers; + +import org.apache.maven.deploy.DeployRequest; +import org.apache.maven.deploy.exceptions.DeployException; /* ==================================================================== * The Apache Software License, Version 1.1 @@ -60,20 +63,13 @@ package org.apache.maven.artifact.deployer.deploy; * Interface for all Maven deployers. * * @author Jason van Zyl - * @version $Id: Deployer.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: Deployer.java,v 1.1 2003/06/17 22:05:59 michal Exp $ */ public interface Deployer { /** * - * @param authInfo - * @param host - * @param localPath - * @param remotePath + * @param request */ - public void deploy( - AuthenticationInfo authInfo, - String host, - String localPath, - String remotePath); + public void deploy(DeployRequest request) throws DeployException; } diff --git a/artifact/src/main/org/apache/maven/deploy/deployers/FileDeployer.java b/artifact/src/main/org/apache/maven/deploy/deployers/FileDeployer.java new file mode 100644 index 00000000..d78fd1e5 --- /dev/null +++ b/artifact/src/main/org/apache/maven/deploy/deployers/FileDeployer.java @@ -0,0 +1,91 @@ +package org.apache.maven.deploy.deployers; + +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2003 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache Maven" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache Maven", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * ==================================================================== + */ + +import java.io.File; +import java.io.IOException; + +import org.apache.commons.io.FileUtils; +import org.apache.maven.deploy.DeployRequest; +import org.apache.maven.deploy.exceptions.DeployException; + + +/** + * + * @author Michal Maczka + * @version $Id: FileDeployer.java,v 1.1 2003/06/17 22:05:59 michal Exp $ + */ +public class FileDeployer implements Deployer +{ + + /** + * @see org.apache.maven.fetch.fetchers.Fetcher#fetchUrl(java.lang.String, java.io.OutputStream) + */ + public void deploy(DeployRequest request) throws DeployException + { + try + { + File inputFile = new File( request.getInputFile() ); + File outputFile = new File( request.getOutputDir(), request.getOutputFile()); + FileUtils.copyFile(inputFile, outputFile); + } + catch (IOException e) + { + throw new DeployException("Cannot copy file: " + e.getMessage()); + } + } +} diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/FtpDeployer.java b/artifact/src/main/org/apache/maven/deploy/deployers/FtpDeployer.java similarity index 83% rename from artifact/src/main/org/apache/maven/artifact/deployer/deploy/FtpDeployer.java rename to artifact/src/main/org/apache/maven/deploy/deployers/FtpDeployer.java index dcfba96c..ed7c8acc 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/FtpDeployer.java +++ b/artifact/src/main/org/apache/maven/deploy/deployers/FtpDeployer.java @@ -1,4 +1,4 @@ -package org.apache.maven.artifact.deployer.deploy; +package org.apache.maven.deploy.deployers; /* ==================================================================== * The Apache Software License, Version 1.1 @@ -65,6 +65,8 @@ import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPConnectionClosedException; import org.apache.commons.net.ftp.FTPReply; +import org.apache.maven.deploy.DeployRequest; +import org.apache.maven.deploy.exceptions.DeployException; @@ -75,30 +77,40 @@ import org.apache.commons.net.ftp.FTPReply; * * @author Jason van Zyl * - * @version $Id: FtpDeployer.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: FtpDeployer.java,v 1.1 2003/06/17 22:05:59 michal Exp $ * * @todo account for username and password. */ public class FtpDeployer extends AbstractDeployer { - + /** * Description of the Method */ - public void deploy(AuthenticationInfo authInfo, String host, String localPath, String remotePath) + public void deploy(DeployRequest request) throws DeployException { - String username = authInfo.getUsername(); - String password = authInfo.getPassword(); - + String username = request.getUser(); + String password = request.getPass(); + String host = request.getHost(); + FTPClient ftp = new FTPClient(); + + ftp.addProtocolCommandListener( new PrintCommandListener(new PrintWriter(System.out))); try { int reply; - ftp.connect(host); + if ( request.getPort()!= DeployRequest.UNKNOWN_PORT) + { + ftp.connect(host, request.getPort()); + } + else + { + ftp.connect(host); + } System.out.println("Connected to " + host + "."); // After connection attempt, you should check the reply code to verify @@ -106,10 +118,10 @@ public class FtpDeployer extends AbstractDeployer reply = ftp.getReplyCode(); if (FTPReply.isPositiveCompletion(reply) == false) - { + { ftp.disconnect(); - System.err.println("FTP server refused connection."); - System.exit(1); + System.err.println(); + throw new DeployException("FTP server refused connection."); } } catch (IOException e) @@ -124,10 +136,8 @@ public class FtpDeployer extends AbstractDeployer { // do nothing } - } - System.err.println("Could not connect to server."); - e.printStackTrace(); - System.exit(1); + } + throw new DeployException("Could not connect to server."); } __main : try @@ -145,20 +155,18 @@ public class FtpDeployer extends AbstractDeployer // Use passive mode as default because most of us are // behind firewalls these days. ftp.enterLocalPassiveMode(); - String workingDir = remotePath.substring(0, remotePath.lastIndexOf("/")); - String filename = remotePath.substring(remotePath.lastIndexOf("/")+1); + String workingDir = request.getOutputDir(); + String filename = request.getOutputFile(); System.out.println("Working directory " + workingDir); - System.out.println("Filename: " + filename); - System.out.println("LocalPath: " + localPath); + System.out.println("Filename: " + filename); ftp.makeDirectory(workingDir); ftp.changeWorkingDirectory( workingDir); - ftp.storeFile(filename, new FileInputStream(localPath)); + ftp.storeFile(filename, new FileInputStream(request.getInputFile())); ftp.logout(); } catch (FTPConnectionClosedException e) - { - System.err.println("Server closed connection."); - e.printStackTrace(); + { + throw new DeployException("Server closed connection."); } catch (IOException e) { diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/HttpDeployer.java b/artifact/src/main/org/apache/maven/deploy/deployers/HttpDeployer.java similarity index 87% rename from artifact/src/main/org/apache/maven/artifact/deployer/deploy/HttpDeployer.java rename to artifact/src/main/org/apache/maven/deploy/deployers/HttpDeployer.java index 0589bb37..0520fbd0 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/HttpDeployer.java +++ b/artifact/src/main/org/apache/maven/deploy/deployers/HttpDeployer.java @@ -1,4 +1,4 @@ -package org.apache.maven.artifact.deployer.deploy; +package org.apache.maven.deploy.deployers; /* ==================================================================== * The Apache Software License, Version 1.1 @@ -56,7 +56,8 @@ package org.apache.maven.artifact.deployer.deploy; * ==================================================================== */ -import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; @@ -66,17 +67,16 @@ import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HostConfiguration; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.URI; -import org.apache.commons.httpclient.URIException; import org.apache.commons.httpclient.UsernamePasswordCredentials; import org.apache.commons.httpclient.methods.PutMethod; - +import org.apache.maven.deploy.DeployRequest; +import org.apache.maven.deploy.exceptions.DeployException; /** * An HTTP deployer based the Commons HttpClient library. * * @author Jason van Zyl - * @version $Id: HttpDeployer.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: HttpDeployer.java,v 1.1 2003/06/17 22:05:59 michal Exp $ * * @todo still have to account for differing setups for people deploying to * their own sites and to the central repository. @@ -90,16 +90,12 @@ public class HttpDeployer extends AbstractDeployer /** * Description of the Method */ - public void deploy( - AuthenticationInfo authInfo, - String host, - String localPath, - String remotePath) + public void deploy(DeployRequest request) throws DeployException { URL url = null; try { - url = new URL(remotePath); + url = new URL(request.getUrl()); } catch (MalformedURLException murle) { @@ -107,11 +103,12 @@ public class HttpDeployer extends AbstractDeployer Credentials creds = new UsernamePasswordCredentials( - authInfo.getUsername(), - authInfo.getPassphrase()); + request.getUser(), + request.getPass()); //create a singular HttpClient object HttpClient client = new HttpClient(); + //establish a connection within 5 seconds client.setConnectionTimeout(5000); @@ -124,21 +121,21 @@ public class HttpDeployer extends AbstractDeployer // HostConfiguration hc = new HostConfiguration(); - try - { - hc.setHost(new URI(url)); - } - catch (URIException e) - { - throw new RuntimeException(e.toString()); - } - + hc.setHost(request.getHost()); //start a session with the webserver client.setHostConfiguration(hc); //create a method object PutMethod method = new PutMethod(url.getPath()); - method.setRequestBody(new File(localPath).toString()); + + try + { + method.setRequestBody(new FileInputStream(request.getInputFile())); + } + catch(FileNotFoundException io) + { + throw new DeployException("input file: '"+ request.getInputFile() + " not found "); + } //turn follow redirects off method.setFollowRedirects(false); diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/SshDeployer.java b/artifact/src/main/org/apache/maven/deploy/deployers/SshDeployer.java similarity index 84% rename from artifact/src/main/org/apache/maven/artifact/deployer/deploy/SshDeployer.java rename to artifact/src/main/org/apache/maven/deploy/deployers/SshDeployer.java index d6f5c30f..298a51ac 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/SshDeployer.java +++ b/artifact/src/main/org/apache/maven/deploy/deployers/SshDeployer.java @@ -1,4 +1,4 @@ -package org.apache.maven.artifact.deployer.deploy; +package org.apache.maven.deploy.deployers; /* ==================================================================== * The Apache Software License, Version 1.1 @@ -67,7 +67,7 @@ import java.io.FileInputStream; import java.io.PipedInputStream; import java.io.PipedOutputStream; - +import org.apache.maven.deploy.DeployRequest; /** * An ssh2 deployer that uses the JSch library and the JCE. We will first try to @@ -76,35 +76,34 @@ import java.io.PipedOutputStream; * assuming the standard port of 22. * * @author Jason van Zyl - * @version $Id: SshDeployer.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: SshDeployer.java,v 1.1 2003/06/17 22:05:59 michal Exp $ * @todo still have to account for differing setups for people deploying to * their own sites and to the central repository. */ public class SshDeployer extends AbstractDeployer { - private AuthenticationInfo authInfo = null; - + public final static int DEFAULT_SSH_PORT = 22; /** * @see Deployer#project */ - public void deploy( - AuthenticationInfo authInfo, - String host, - String localArtifactPath, - String remoteArtifactPath) + public void deploy(DeployRequest request) { try { - this.authInfo = authInfo; JSch jsch = new JSch(); - Session session = jsch.getSession(host, 22); + + int port = request.getPort(); + if (port == DeployRequest.UNKNOWN_PORT) + { + port = DEFAULT_SSH_PORT; + } + Session session = + jsch.getSession(request.getHost(), port); + //22 // Look for the private key and use it if available. - File privateKey = - new File( - new File(System.getProperty("user.home"), ".ssh"), - "id_dsa"); + File privateKey = new File(request.getPrivateKey()); if (privateKey.exists()) { @@ -112,12 +111,17 @@ public class SshDeployer extends AbstractDeployer } // username and password will be given via UserInfo interface. - UserInfo ui = new MavenUserInfo(); + UserInfo ui = new MavenUserInfo(request); session.setUserInfo(ui); session.connect(); + String inputFile = request.getInputFile(); // exec 'scp -t remoteArtifactPath' remotely - String command = "scp -t " + remoteArtifactPath; + String command = + "scp -t " + + request.getOutputDir() + + "/" + + request.getOutputFile(); Channel channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand(command); @@ -139,18 +143,8 @@ public class SshDeployer extends AbstractDeployer while (tmp[0] != 0); // send "C0644 filesize filename", where filename should not include '/' - int filesize = (int) (new File(localArtifactPath)).length(); - command = "C0644 " + filesize + " "; - if (localArtifactPath.lastIndexOf('/') > 0) - { - command - += localArtifactPath.substring( - localArtifactPath.lastIndexOf('/') + 1); - } - else - { - command += localArtifactPath; - } + int filesize = (int) (new File( inputFile )).length(); + command = "C0644 " + filesize + " " + inputFile; command += "\n"; out.write(command.getBytes()); out.flush(); @@ -163,7 +157,7 @@ public class SshDeployer extends AbstractDeployer while (tmp[0] != 0); // send a content of localArtifactPath - FileInputStream fis = new FileInputStream(localArtifactPath); + FileInputStream fis = new FileInputStream(inputFile); byte[] buf = new byte[1024]; while (true) { @@ -201,14 +195,19 @@ public class SshDeployer extends AbstractDeployer public class MavenUserInfo implements UserInfo { - - + DeployRequest request; + + MavenUserInfo(DeployRequest request) + { + this.request = request; + } + /** * Gets the name attribute of the MavenUserInfo object */ public String getName() { - return authInfo.getUsername(); + return request.getUser(); } /** @@ -216,7 +215,7 @@ public class SshDeployer extends AbstractDeployer */ public String getPassword() { - return authInfo.getPassword(); + return request.getPass(); } /** @@ -224,7 +223,7 @@ public class SshDeployer extends AbstractDeployer */ public String getPassphrase(String message) { - return authInfo.getPassphrase(); + return request.getPassphrase(); } /** diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/AuthenticationInfo.java b/artifact/src/main/org/apache/maven/deploy/exceptions/DeployException.java similarity index 71% rename from artifact/src/main/org/apache/maven/artifact/deployer/deploy/AuthenticationInfo.java rename to artifact/src/main/org/apache/maven/deploy/exceptions/DeployException.java index 9d5f85aa..0d775a7b 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/AuthenticationInfo.java +++ b/artifact/src/main/org/apache/maven/deploy/exceptions/DeployException.java @@ -1,9 +1,9 @@ -package org.apache.maven.artifact.deployer.deploy; +package org.apache.maven.deploy.exceptions; /* ==================================================================== * The Apache Software License, Version 1.1 * - * Copyright (c) 2001 The Apache Software Foundation. All rights + * Copyright (c) 2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,12 +26,12 @@ package org.apache.maven.artifact.deployer.deploy; * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache MavenSession" must not be used to endorse or promote products + * "Apache Maven" must not be used to endorse or promote products * derived from this software without prior written permission. For * written permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", - * "Apache MavenSession", nor may "Apache" appear in their name, without + * "Apache Maven", nor may "Apache" appear in their name, without * prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED @@ -58,44 +58,40 @@ package org.apache.maven.artifact.deployer.deploy; /** - * Holder of the infomarmation which is used to authentificate user - * during deployment process. * * @author Michal Maczka - * @version $Revision: 1.1 $ $Date: 2003/06/16 14:26:01 $ + * @version $Id: DeployException.java,v 1.1 2003/06/17 22:06:00 michal Exp $ */ -public interface AuthenticationInfo +public class DeployException extends Exception { + private final String message; + private final Throwable cause; + public DeployException(String message, Throwable cause) + { + this.message = message; + this.cause = cause; + } + + public DeployException(String message) + { + this.message = message; + this.cause = null; + } + /** * @return */ - public abstract String getPassphrase(); - /** - * @param passphrase - */ - public abstract void setPassphrase(String passphrase); + public Throwable getCause() + { + return cause; + } + /** * @return */ - public abstract String getPassword(); - /** - * @param password - */ - public abstract void setPassword(String password); - /** - * @return - */ - public abstract String getUsername(); - /** - * @param username - */ - public abstract void setUsername(String username); - /** - * @return - */ - public abstract String getRemoteGroup(); - /** - * @param remoteGroup - */ - public abstract void setRemoteGroup(String remoteGroup); -} \ No newline at end of file + public String getMessage() + { + return message; + } + +} diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/GenericAuthenticationInfo.java b/artifact/src/main/org/apache/maven/deploy/exceptions/NotAuthorizedDeployException.java similarity index 63% rename from artifact/src/main/org/apache/maven/artifact/deployer/deploy/GenericAuthenticationInfo.java rename to artifact/src/main/org/apache/maven/deploy/exceptions/NotAuthorizedDeployException.java index 269963e3..cede75b0 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/deploy/GenericAuthenticationInfo.java +++ b/artifact/src/main/org/apache/maven/deploy/exceptions/NotAuthorizedDeployException.java @@ -1,9 +1,9 @@ -package org.apache.maven.artifact.deployer.deploy; +package org.apache.maven.deploy.exceptions; /* ==================================================================== * The Apache Software License, Version 1.1 * - * Copyright (c) 2001 The Apache Software Foundation. All rights + * Copyright (c) 2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,12 +26,12 @@ package org.apache.maven.artifact.deployer.deploy; * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache MavenSession" must not be used to endorse or promote products + * "Apache Maven" must not be used to endorse or promote products * derived from this software without prior written permission. For * written permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", - * "Apache MavenSession", nor may "Apache" appear in their name, without + * "Apache Maven", nor may "Apache" appear in their name, without * prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED @@ -56,88 +56,29 @@ package org.apache.maven.artifact.deployer.deploy; * ==================================================================== */ - - /** * - * The Bean which serves as Proxy To Hibernate API - *
- * - * - * * @author Michal Maczka - * @version $Id: GenericAuthenticationInfo.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: NotAuthorizedDeployException.java,v 1.1 2003/06/17 22:06:00 michal Exp $ */ -public class GenericAuthenticationInfo implements AuthenticationInfo +public class NotAuthorizedDeployException extends DeployException { - private String username; - private String password; - private String passphrase; - private String remoteGroup; - /** - * @return + * @param message */ - public String getPassphrase() + public NotAuthorizedDeployException(String message) { - return passphrase; + super(message); } /** - * @param passphrase + * @param message + * @param cause */ - public void setPassphrase(String passphrase) + public NotAuthorizedDeployException(String message, Throwable cause) { - this.passphrase = passphrase; - } - - /** - * @return - */ - public String getPassword() - { - return password; - } - - /** - * @param password - */ - public void setPassword(String password) - { - this.password = password; - } - - /** - * @return - */ - public String getUsername() - { - return username; - } - - /** - * @param username - */ - public void setUsername(String username) - { - this.username = username; - } - - /** - * @return - */ - public String getRemoteGroup() - { - return remoteGroup; - } - - /** - * @param remoteGroup - */ - public void setRemoteGroup(String remoteGroup) - { - this.remoteGroup = remoteGroup; + super(message, cause); } } diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/MavenAuthenticationInfo.java b/artifact/src/main/org/apache/maven/deploy/exceptions/ProxyNotAuthorizedDeployException.java similarity index 69% rename from artifact/src/main/org/apache/maven/artifact/deployer/MavenAuthenticationInfo.java rename to artifact/src/main/org/apache/maven/deploy/exceptions/ProxyNotAuthorizedDeployException.java index 70b9a105..10e88fc6 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/MavenAuthenticationInfo.java +++ b/artifact/src/main/org/apache/maven/deploy/exceptions/ProxyNotAuthorizedDeployException.java @@ -1,9 +1,9 @@ -package org.apache.maven.artifact.deployer; +package org.apache.maven.deploy.exceptions; /* ==================================================================== * The Apache Software License, Version 1.1 * - * Copyright (c) 2001 The Apache Software Foundation. All rights + * Copyright (c) 2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,12 +26,12 @@ package org.apache.maven.artifact.deployer; * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache MavenSession" must not be used to endorse or promote products + * "Apache Maven" must not be used to endorse or promote products * derived from this software without prior written permission. For * written permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", - * "Apache MavenSession", nor may "Apache" appear in their name, without + * "Apache Maven", nor may "Apache" appear in their name, without * prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED @@ -56,39 +56,31 @@ package org.apache.maven.artifact.deployer; * ==================================================================== */ -import org.apache.maven.project.Project; -import org.apache.maven.artifact.deployer.deploy.GenericAuthenticationInfo; - /** * - * Maps information kept in POM to AuthetificationInfo interface - *
- * - * - * * @author Michal Maczka - * @version $Id: MavenAuthenticationInfo.java,v 1.1 2003/06/16 14:26:01 michal Exp $ + * @version $Id: ProxyNotAuthorizedDeployException.java,v 1.1 2003/06/17 22:06:00 michal Exp $ */ -public class MavenAuthenticationInfo extends GenericAuthenticationInfo +public class ProxyNotAuthorizedDeployException extends DeployException { - - public MavenAuthenticationInfo(Project project) + /** + * @param message + */ + public ProxyNotAuthorizedDeployException(String message) { - String username = - (String) project.getContext().getVariable( - "maven.deployer.username"); - String password = - (String) project.getContext().getVariable( - "maven.deployer.password"); - String passphrase = - (String) project.getContext().getVariable( - "maven.deployer.passphrase"); - - setUsername(username); - setPassword(password); - setPassphrase(passphrase); + super(message); + } + + /** + * @param message + * @param cause + */ + public ProxyNotAuthorizedDeployException(String message, Throwable cause) + { + super(message, cause); + // TODO Auto-generated constructor stub } } diff --git a/artifact/src/main/org/apache/maven/deploy/exceptions/UnsupportedProtocolDeployException.java b/artifact/src/main/org/apache/maven/deploy/exceptions/UnsupportedProtocolDeployException.java new file mode 100644 index 00000000..046c6d49 --- /dev/null +++ b/artifact/src/main/org/apache/maven/deploy/exceptions/UnsupportedProtocolDeployException.java @@ -0,0 +1,84 @@ +package org.apache.maven.deploy.exceptions; + +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2003 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache Maven" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * "Apache Maven", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * ==================================================================== + */ + + +/** + * + * @author Michal Maczka + * @version $Id: UnsupportedProtocolDeployException.java,v 1.1 2003/06/17 22:06:00 michal Exp $ + */ +public class UnsupportedProtocolDeployException extends DeployException +{ + /** + * @param message + */ + public UnsupportedProtocolDeployException(String message) + { + super(message); + } + + /** + * @param message + * @param cause + */ + public UnsupportedProtocolDeployException(String message, Throwable cause) + { + super(message, cause); + } + +}