Partialy implemeneted "6 files method"
described http://nagoya.apache.org/wiki/apachewiki.cgi?Maven/DeployDependCycle I need to copy foo-snapshot-version and copy foo-snapshot-version.md5 files. git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@113525 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
1 parent
c441b0427a
commit
d51b35af68
3 files changed
+175
-50
No files matched your search
+167
-42
@@ -56,7 +56,9 @@ package org.apache.maven.artifact.deployer;
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
@@ -67,13 +69,14 @@ import org.apache.maven.MavenConstants;
|
||||
import org.apache.maven.MavenException;
|
||||
import org.apache.maven.deploy.DeployTool;
|
||||
import org.apache.maven.project.Project;
|
||||
import org.apache.maven.util.MD5Sum;
|
||||
|
||||
/**
|
||||
*
|
||||
* Default implemenataion of Artifact Deployer interface
|
||||
*
|
||||
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
|
||||
* @version $Id: DefaultArtifactDeployer.java,v 1.4 2003/06/19 22:02:37 michal Exp $
|
||||
* @version $Id: DefaultArtifactDeployer.java,v 1.5 2003/06/20 15:24:52 michal Exp $
|
||||
*/
|
||||
public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
{
|
||||
@@ -87,20 +90,34 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
/**
|
||||
* @see ArtifactDeployer#deploy(String, String, Project)
|
||||
*/
|
||||
public void deploy(String file, String type, Project project)
|
||||
public void deploy(String artifact, String type, Project project)
|
||||
throws MavenException
|
||||
{
|
||||
System.out.println("deploy");
|
||||
doDeploy(file, type, project, project.getCurrentVersion());
|
||||
|
||||
File file = getFileForArtifact(artifact);
|
||||
File md5File = createMD5Checksum(file);
|
||||
String repositoryPath =
|
||||
getRepositoryPath(type, project, project.getCurrentVersion());
|
||||
String repositoryFile =
|
||||
getRepositoryFile(type, project, project.getCurrentVersion());
|
||||
doDeploy(file, md5File, project, repositoryPath, repositoryFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DefaultArtifactDeployer#deploySnapshot(String, String, Project)
|
||||
*/
|
||||
public void deploySnapshot(String file, String type, Project project)
|
||||
public void deploySnapshot(String artifact, String type, Project project)
|
||||
throws MavenException
|
||||
{
|
||||
doDeploy(file, type, project, MavenConstants.SNAPSHOT_SIGNIFIER);
|
||||
File file = getFileForArtifact(artifact);
|
||||
File md5File = createMD5Checksum(file);
|
||||
String repositoryPath =
|
||||
getRepositoryPath(type, project, MavenConstants.SNAPSHOT_SIGNIFIER);
|
||||
String repositoryFile =
|
||||
getRepositoryFile(type, project, MavenConstants.SNAPSHOT_SIGNIFIER);
|
||||
doDeploy(file, md5File, project, repositoryPath, repositoryFile);
|
||||
doDeploy(file, md5File, project, repositoryPath, repositoryFile);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,7 +126,8 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
public void install(String artifact, String type, Project project)
|
||||
throws MavenException
|
||||
{
|
||||
doInstall(artifact, type, project, project.getCurrentVersion());
|
||||
File file = getFileForArtifact(artifact);
|
||||
doInstall(file, type, project, project.getCurrentVersion());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -118,14 +136,11 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
public void installSnapshot(String artifact, String type, Project project)
|
||||
throws MavenException
|
||||
{
|
||||
File file = getFileForArtifact(artifact);
|
||||
System.out.println("Installing snapshot of:'" + artifact + "''");
|
||||
try
|
||||
{
|
||||
doInstall(
|
||||
artifact,
|
||||
type,
|
||||
project,
|
||||
MavenConstants.SNAPSHOT_SIGNIFIER);
|
||||
doInstall(file, type, project, MavenConstants.SNAPSHOT_SIGNIFIER);
|
||||
}
|
||||
catch (MavenException e)
|
||||
{
|
||||
@@ -133,7 +148,7 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
}
|
||||
try
|
||||
{
|
||||
doInstall(artifact, type, project, getSnapshotVersion());
|
||||
doInstall(file, type, project, getSnapshotVersion());
|
||||
}
|
||||
catch (MavenException e)
|
||||
{
|
||||
@@ -150,7 +165,7 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
* @throws MavenException
|
||||
*/
|
||||
private void doInstall(
|
||||
String artifact,
|
||||
File file,
|
||||
String type,
|
||||
Project project,
|
||||
String version)
|
||||
@@ -158,27 +173,26 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
File file =
|
||||
{
|
||||
File destFile =
|
||||
new File(
|
||||
getLocalRepository(project),
|
||||
getRepositoryPath(type, project, version));
|
||||
|
||||
if (!file.exists())
|
||||
{
|
||||
file.mkdirs();
|
||||
}
|
||||
file = new File(file, getRepositoryFile(type, project, version));
|
||||
System.out.println(
|
||||
"Copying: from '" + artifact + "' to: '" + file + "'");
|
||||
FileUtils.copyFile(new File(artifact), file);
|
||||
"Copying: from '" + file + "' to: '" + destFile + "'");
|
||||
FileUtils.copyFile(file, destFile);
|
||||
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
String msg =
|
||||
"Cannot install file: '"
|
||||
+ artifact
|
||||
+ file
|
||||
+ "'. Reason: "
|
||||
+ e.getMessage();
|
||||
throw new MavenException(msg, e);
|
||||
@@ -193,10 +207,11 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
* @param snapshot
|
||||
*/
|
||||
private void doDeploy(
|
||||
String artifact,
|
||||
String type,
|
||||
File file,
|
||||
File md5File,
|
||||
Project project,
|
||||
String version)
|
||||
String repositoryPath,
|
||||
String repositoryFile)
|
||||
throws MavenException
|
||||
{
|
||||
|
||||
@@ -206,8 +221,8 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
|
||||
String repos =
|
||||
(String) project.getContext().getVariable("maven.repo.repos");
|
||||
|
||||
System.out.println( "repos: "+ repos );
|
||||
|
||||
System.out.println("repos: " + repos);
|
||||
|
||||
String distSite = project.getDistributionSite();
|
||||
if (distSite != null && distSite.length() > 0)
|
||||
@@ -221,50 +236,69 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
|
||||
repos = "central, " + repos;
|
||||
}
|
||||
|
||||
|
||||
if (repos == null || repos.length() == 0)
|
||||
{
|
||||
System.out.println("No remote repository is defined");
|
||||
return;
|
||||
System.out.println("No remote repository is defined");
|
||||
return;
|
||||
}
|
||||
String[] repoArray = StringUtils.split(repos, ",");
|
||||
|
||||
System.out.println(
|
||||
"Will deploy to " + repoArray.length + " repo(s): " + repos);
|
||||
|
||||
|
||||
String repositoryPath = getRepositoryPath(type, project, version);
|
||||
|
||||
|
||||
for (int i = 0; i < repoArray.length; i++)
|
||||
{
|
||||
|
||||
String repo = repoArray[i].trim();
|
||||
System.out.println("Deploying to repo: " + repo);
|
||||
|
||||
MavenDeployRequest request =
|
||||
MavenDeployRequest deployRequest =
|
||||
new MavenDeployRequest(
|
||||
repo,
|
||||
project,
|
||||
repo,
|
||||
artifact,
|
||||
file.getAbsolutePath(),
|
||||
repositoryPath,
|
||||
getRepositoryFile(type, project, version));
|
||||
repositoryFile);
|
||||
|
||||
MavenDeployRequest md5DeployRequest =
|
||||
new MavenDeployRequest(
|
||||
repo,
|
||||
project,
|
||||
repo,
|
||||
md5File.getAbsolutePath(),
|
||||
repositoryPath,
|
||||
repositoryFile + ".md5");
|
||||
|
||||
System.out.println(
|
||||
"Deploying: '"
|
||||
+ artifact
|
||||
+ "' to host: '"
|
||||
+ request.getHost()
|
||||
+ "' remote path: '"
|
||||
+ request.getOutputDir());
|
||||
try
|
||||
{
|
||||
deployTool.performUpload(request);
|
||||
System.out.println(
|
||||
"Deploying: '"
|
||||
+ file
|
||||
+ "' to host: '"
|
||||
+ deployRequest.getHost()
|
||||
+ "' remote path: '"
|
||||
+ deployRequest.getOutputDir());
|
||||
deployTool.performUpload(deployRequest);
|
||||
|
||||
System.out.println(
|
||||
"Deploying: '"
|
||||
+ md5File
|
||||
+ "' to host: '"
|
||||
+ md5DeployRequest.getHost()
|
||||
+ "' remote path: '"
|
||||
+ md5DeployRequest.getOutputDir());
|
||||
deployTool.performUpload(md5DeployRequest);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
throw new MavenException("Cannot deploy. Reason:" + e.getMessage(), e);
|
||||
throw new MavenException(
|
||||
"Cannot deploy. Reason:" + e.getMessage(),
|
||||
e);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -338,4 +372,95 @@ public class DefaultArtifactDeployer implements ArtifactDeployer
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param artifact
|
||||
* @return
|
||||
*/
|
||||
private File getFileForArtifact(String artifact) throws MavenException
|
||||
{
|
||||
File file = new File(artifact);
|
||||
if (!file.exists())
|
||||
{
|
||||
String msg = "Artifact file: '" + artifact + "' must exist";
|
||||
throw new MavenException(msg);
|
||||
}
|
||||
if (!file.canRead())
|
||||
{
|
||||
String msg = "Artifact file: '" + artifact + "' must be readable";
|
||||
throw new MavenException(msg);
|
||||
}
|
||||
if (file.isDirectory())
|
||||
{
|
||||
String msg =
|
||||
"Artifact file: '" + artifact + "' must not be a directory";
|
||||
throw new MavenException(msg);
|
||||
}
|
||||
return file.getAbsoluteFile();
|
||||
|
||||
}
|
||||
|
||||
private File createMD5Checksum(File file) throws MavenException
|
||||
{
|
||||
MD5Sum md5Sum = new MD5Sum();
|
||||
md5Sum.setFile(file);
|
||||
try
|
||||
{
|
||||
md5Sum.execute();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
throw new MavenException("MD5 checksum error: " + e.getMessage(), e);
|
||||
}
|
||||
String checksum = md5Sum.getChecksum();
|
||||
|
||||
String basename = FileUtils.basename(file.getAbsolutePath());
|
||||
File md5ChecksumFile = null;
|
||||
try
|
||||
{
|
||||
md5ChecksumFile =
|
||||
File.createTempFile(basename, ".md5", file.getParentFile());
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
// Cannot create file in the same directory where we have
|
||||
// will try in default temporary-file directory
|
||||
try
|
||||
{
|
||||
md5ChecksumFile = File.createTempFile(basename, ".md5");
|
||||
}
|
||||
catch (Exception e2)
|
||||
{
|
||||
throw new MavenException("Cannot create md5 checksum file");
|
||||
}
|
||||
}
|
||||
Writer writer = null;
|
||||
try
|
||||
{
|
||||
System.out.println("sum:" + checksum);
|
||||
writer = new FileWriter(md5ChecksumFile);
|
||||
writer.write(checksum);
|
||||
}
|
||||
catch (IOException e1)
|
||||
{
|
||||
throw new MavenException("Error occured while writing to md5 cheksum file");
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (writer != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
writer.close();
|
||||
}
|
||||
catch (IOException e2)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
return md5ChecksumFile;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -64,7 +64,7 @@ import org.apache.maven.project.Project;
|
||||
* The Bean which serves as Proxy for Jelly scripts To Artifact Deployement API
|
||||
*
|
||||
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
|
||||
* @version $Id: MavenDeployRequest.java,v 1.3 2003/06/19 22:02:37 michal Exp $
|
||||
* @version $Id: MavenDeployRequest.java,v 1.4 2003/06/20 15:24:52 michal Exp $
|
||||
*/
|
||||
public class MavenDeployRequest extends DeployRequest
|
||||
{
|
||||
@@ -167,9 +167,12 @@ public class MavenDeployRequest extends DeployRequest
|
||||
|
||||
setInputFile(inputFile);
|
||||
|
||||
String ouputDir = dir + "/" + outputDir;
|
||||
if (dir != null)
|
||||
{
|
||||
outputDir = dir + "/" + outputDir;
|
||||
}
|
||||
setOutputFile(outputFile);
|
||||
setOutputDir(ouputDir);
|
||||
setOutputDir(outputDir);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ import org.apache.maven.deploy.exceptions.DeployException;
|
||||
/**
|
||||
*
|
||||
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
|
||||
* @version $Id: FileDeployer.java,v 1.2 2003/06/19 22:02:36 michal Exp $
|
||||
* @version $Id: FileDeployer.java,v 1.3 2003/06/20 15:24:52 michal Exp $
|
||||
*/
|
||||
public class FileDeployer implements Deployer
|
||||
{
|
||||
@@ -87,10 +87,7 @@ public class FileDeployer implements Deployer
|
||||
{
|
||||
outputFile.mkdirs();
|
||||
}
|
||||
outputFile = new File( outputFile, request.getOutputFile());
|
||||
System.out.println("Copining from: " + inputFile + " to: " + outputFile);
|
||||
|
||||
|
||||
outputFile = new File( outputFile, request.getOutputFile());
|
||||
FileUtils.copyFile(inputFile, outputFile);
|
||||
}
|
||||
catch (IOException e)
|
||||
|
||||
Reference in new issue
Block a user