summaryrefslogtreecommitdiffstats
path: root/src/java/net/sf/antcontrib/net/URLImportTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/net/sf/antcontrib/net/URLImportTask.java')
-rwxr-xr-xsrc/java/net/sf/antcontrib/net/URLImportTask.java210
1 files changed, 0 insertions, 210 deletions
diff --git a/src/java/net/sf/antcontrib/net/URLImportTask.java b/src/java/net/sf/antcontrib/net/URLImportTask.java
deleted file mode 100755
index 5bdd6db..0000000
--- a/src/java/net/sf/antcontrib/net/URLImportTask.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (c) 2006 Ant-Contrib project. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.net;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.text.ParseException;
-import java.util.Date;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Expand;
-import org.apache.tools.ant.taskdefs.ImportTask;
-
-import fr.jayasoft.ivy.Artifact;
-import fr.jayasoft.ivy.DefaultModuleDescriptor;
-import fr.jayasoft.ivy.DependencyResolver;
-import fr.jayasoft.ivy.Ivy;
-import fr.jayasoft.ivy.MDArtifact;
-import fr.jayasoft.ivy.ModuleDescriptor;
-import fr.jayasoft.ivy.ModuleId;
-import fr.jayasoft.ivy.ModuleRevisionId;
-import fr.jayasoft.ivy.report.ArtifactDownloadReport;
-import fr.jayasoft.ivy.report.DownloadStatus;
-import fr.jayasoft.ivy.repository.Repository;
-import fr.jayasoft.ivy.resolver.FileSystemResolver;
-import fr.jayasoft.ivy.resolver.IvyRepResolver;
-import fr.jayasoft.ivy.resolver.URLResolver;
-
-/***
- * Task to import a build file from a url. The build file can be a build.xml,
- * or a .zip/.jar, in which case we download and extract the entire archive, and
- * import the file "build.xml"
- * @author inger
- *
- */
-public class URLImportTask
- extends Task {
-
- private String org;
- private String module;
- private String rev = "latest.integration";
- private String type = "jar";
- private String repositoryUrl;
- private String repositoryDir;
- private URL ivyConfUrl;
- private File ivyConfFile;
- private String artifactPattern = "/[org]/[module]/[ext]s/[module]-[revision].[ext]";
- private String ivyPattern = "/[org]/[module]/ivy-[revision].xml";
-
- public void setModule(String module) {
- this.module = module;
- }
-
- public void setOrg(String org) {
- this.org = org;
- }
-
- public void setRev(String rev) {
- this.rev = rev;
- }
-
- public void setIvyConfFile(File ivyConfFile) {
- this.ivyConfFile = ivyConfFile;
- }
-
- public void setIvyConfUrl(URL ivyConfUrl) {
- this.ivyConfUrl = ivyConfUrl;
- }
-
- public void setArtifactPattern(String artifactPattern) {
- this.artifactPattern = artifactPattern;
- }
-
- public void setIvyPattern(String ivyPattern) {
- this.ivyPattern = ivyPattern;
- }
-
- public void setRepositoryDir(String repositoryDir) {
- this.repositoryDir = repositoryDir;
- }
-
- public void setRepositoryUrl(String repositoryUrl) {
- this.repositoryUrl = repositoryUrl;
- }
-
- public void execute()
- throws BuildException {
-
- Ivy ivy = new Ivy();
- DependencyResolver resolver = null;
- Repository rep = null;
-
- if (repositoryUrl != null) {
- resolver = new URLResolver();
- ((URLResolver)resolver).addArtifactPattern(
- repositoryUrl + "/" + artifactPattern
- );
- ((URLResolver)resolver).addIvyPattern(
- repositoryUrl + "/" + ivyPattern
- );
- resolver.setName("default");
- }
- else if (repositoryDir != null) {
- resolver = new FileSystemResolver();
- ((FileSystemResolver)resolver).addArtifactPattern(
- repositoryDir + "/" + artifactPattern
- );
- ((FileSystemResolver)resolver).addIvyPattern(
- repositoryDir + "/" + ivyPattern
- );
- }
- else if (ivyConfUrl != null) {
- try {
- ivy.configure(ivyConfUrl);
- }
- catch (IOException e) {
- throw new BuildException(e);
- }
- catch (ParseException e) {
- throw new BuildException(e);
- }
- }
- else if (ivyConfFile != null) {
- try {
- ivy.configure(ivyConfFile);
- }
- catch (IOException e) {
- throw new BuildException(e);
- }
- catch (ParseException e) {
- throw new BuildException(e);
- }
- }
- else {
- resolver = new IvyRepResolver();
- }
- resolver.setName("default");
- ivy.addResolver(resolver);
- ivy.setDefaultResolver(resolver.getName());
-
- ModuleId moduleId =
- new ModuleId(org, module);
- ModuleRevisionId revId =
- new ModuleRevisionId(moduleId, rev);
- ModuleDescriptor md =
- new DefaultModuleDescriptor(revId, "integration", new Date());
- Artifact artifact =
- new MDArtifact(md, module, type, type);
-
- ArtifactDownloadReport report =
- ivy.download(artifact, null);
-
- DownloadStatus status = report.getDownloadStatus();
- if (status == DownloadStatus.FAILED) {
- throw new BuildException("Could not resolve resource.");
- }
-
- String path = ivy.getArchivePathInCache(artifact);
-
- File file = new File(ivy.getDefaultCache(), path);
-
- File importFile = null;
-
- if ("xml".equalsIgnoreCase(type)) {
- importFile = file;
- }
- else if ("jar".equalsIgnoreCase(type)) {
- File dir = new File(file.getParentFile(),
- file.getName() + ".extracted");
- dir.mkdir();
- Expand expand = (Expand)getProject().createTask("unjar");
- expand.setSrc(file);
- expand.setDest(dir);
- expand.perform();
- importFile = new File(dir, "build.xml");
- if (! importFile.exists()) {
- throw new BuildException("Cannot find a 'build.xml' file in " +
- file.getName());
- }
- }
- else {
- throw new BuildException("Don't know what to do with type: " + type);
- }
-
- File buildFile = null;
- ImportTask importTask = new ImportTask();
- importTask.setProject(getProject());
- importTask.setOwningTarget(getOwningTarget());
- importTask.setLocation(getLocation());
- importTask.setFile(buildFile.getAbsolutePath());
- importTask.perform();
- log("Import complete.", Project.MSG_INFO);
- }
-}