aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/MakeUrl.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/MakeUrl.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/MakeUrl.java298
1 files changed, 0 insertions, 298 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/MakeUrl.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/MakeUrl.java
deleted file mode 100644
index e23c0253..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/MakeUrl.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.tools.ant.taskdefs;
-
-
-import java.io.File;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.util.FileUtils;
-
-/**
- * <p>This task takes file and turns them into a URL, which it then assigns
- * to a property. Use when for setting up RMI codebases.</p>
- *
- * <p>nested filesets are supported; if present, these are turned into the
- * url with the given separator between them (default = " ").</p>
- *
- * @ant.task category="core" name="makeurl"
- */
-
-public class MakeUrl extends Task {
-
- /**
- * name of the property to set
- */
- private String property;
-
- /**
- * name of a file to turn into a URL
- */
- private File file;
-
- /**
- * separator char
- */
- private String separator = " ";
-
- /**
- * filesets of nested files to add to this url
- */
- private List<FileSet> filesets = new LinkedList<FileSet>();
-
- /**
- * paths to add
- */
- private List<Path> paths = new LinkedList<Path>();
-
- /**
- * validation flag
- */
- private boolean validate = true;
-
- // error message strings
- /** Missing file */
- public static final String ERROR_MISSING_FILE = "A source file is missing: ";
- /** No property defined */
- public static final String ERROR_NO_PROPERTY = "No property defined";
- /** No files defined */
- public static final String ERROR_NO_FILES = "No files defined";
-
- /**
- * set the name of a property to fill with the URL
- *
- * @param property the name of the property.
- */
- public void setProperty(String property) {
- this.property = property;
- }
-
- /**
- * the name of a file to be converted into a URL
- *
- * @param file the file to be converted.
- */
- public void setFile(File file) {
- this.file = file;
- }
-
- /**
- * a fileset of jar files to include in the URL, each
- * separated by the separator
- *
- * @param fileset the fileset to be added.
- */
- public void addFileSet(FileSet fileset) {
- filesets.add(fileset);
- }
-
- /**
- * set the separator for the multi-url option.
- *
- * @param separator the separator to use.
- */
- public void setSeparator(String separator) {
- this.separator = separator;
- }
-
- /**
- * set this flag to trigger validation that every named file exists.
- * Optional: default=true
- *
- * @param validate a <code>boolean</code> value.
- */
- public void setValidate(boolean validate) {
- this.validate = validate;
- }
-
- /**
- * add a path to the URL. All elements in the path
- * will be converted to individual URL entries
- *
- * @param path a path value.
- */
- public void addPath(Path path) {
- paths.add(path);
- }
-
- /**
- * convert the filesets to urls.
- *
- * @return null for no files
- */
- private String filesetsToURL() {
- if (filesets.isEmpty()) {
- return "";
- }
- int count = 0;
- StringBuilder urls = new StringBuilder();
- ListIterator<FileSet> list = filesets.listIterator();
- while (list.hasNext()) {
- FileSet set = list.next();
- DirectoryScanner scanner = set.getDirectoryScanner(getProject());
- String[] files = scanner.getIncludedFiles();
- for (int i = 0; i < files.length; i++) {
- File f = new File(scanner.getBasedir(), files[i]);
- validateFile(f);
- String asUrl = toURL(f);
- urls.append(asUrl);
- log(asUrl, Project.MSG_DEBUG);
- urls.append(separator);
- count++;
- }
- }
- //at this point there is one trailing space to remove, if the list is not empty.
- return stripTrailingSeparator(urls, count);
- }
-
- /**
- * convert the string buffer to a string, potentially stripping
- * out any trailing separator
- *
- * @param urls URL buffer
- * @param count number of URL entries
- * @return trimmed string, or empty string
- */
- private String stripTrailingSeparator(StringBuilder urls,
- int count) {
- if (count > 0) {
- urls.delete(urls.length() - separator.length(), urls.length());
- return new String(urls);
- } else {
- return "";
- }
- }
-
-
- /**
- * convert all paths to URLs
- *
- * @return the paths as a separated list of URLs
- */
- private String pathsToURL() {
- if (paths.isEmpty()) {
- return "";
- }
- int count = 0;
- StringBuilder urls = new StringBuilder();
- ListIterator<Path> list = paths.listIterator();
- while (list.hasNext()) {
- Path path = list.next();
- String[] elements = path.list();
- for (int i = 0; i < elements.length; i++) {
- File f = new File(elements[i]);
- validateFile(f);
- String asUrl = toURL(f);
- urls.append(asUrl);
- log(asUrl, Project.MSG_DEBUG);
- urls.append(separator);
- count++;
- }
- }
- //at this point there is one trailing space to remove, if the list is not empty.
- return stripTrailingSeparator(urls, count);
- }
-
- /**
- * verify that the file exists, if {@link #validate} is set
- *
- * @param fileToCheck file that may need to exist
- * @throws BuildException with text beginning {@link #ERROR_MISSING_FILE}
- */
- private void validateFile(File fileToCheck) {
- if (validate && !fileToCheck.exists()) {
- throw new BuildException(ERROR_MISSING_FILE + fileToCheck.toString());
- }
- }
-
- /**
- * Create the url
- *
- * @throws org.apache.tools.ant.BuildException
- * if something goes wrong with the build
- */
- @Override
- public void execute() throws BuildException {
- validate();
- //now exit here if the property is already set
- if (getProject().getProperty(property) != null) {
- return;
- }
- String url;
- String filesetURL = filesetsToURL();
- if (file != null) {
- validateFile(file);
- url = toURL(file);
- //and add any files if also defined
- if (filesetURL.length() > 0) {
- url = url + separator + filesetURL;
- }
- } else {
- url = filesetURL;
- }
- //add path URLs
- String pathURL = pathsToURL();
- if (pathURL.length() > 0) {
- if (url.length() > 0) {
- url = url + separator + pathURL;
- } else {
- url = pathURL;
- }
- }
- log("Setting " + property + " to URL " + url, Project.MSG_VERBOSE);
- getProject().setNewProperty(property, url);
- }
-
- /**
- * check for errors
- * @throws BuildException if we are not configured right
- */
- private void validate() {
- //validation
- if (property == null) {
- throw new BuildException(ERROR_NO_PROPERTY);
- }
- if (file == null && filesets.isEmpty() && paths.isEmpty()) {
- throw new BuildException(ERROR_NO_FILES);
- }
- }
-
- /**
- * convert a file to a URL;
- *
- * @param fileToConvert
- * @return the file converted to a URL
- */
- private String toURL(File fileToConvert) {
- String url;
- //create the URL
- //ant equivalent of fileToConvert.toURI().toURL().toExternalForm();
- url = FileUtils.getFileUtils().toURI(fileToConvert.getAbsolutePath());
-
- return url;
- }
-
-}