aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/WhichResource.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/WhichResource.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/WhichResource.java199
1 files changed, 0 insertions, 199 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/WhichResource.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/WhichResource.java
deleted file mode 100644
index 3f315a8d..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/WhichResource.java
+++ /dev/null
@@ -1,199 +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.net.URL;
-
-import org.apache.tools.ant.AntClassLoader;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.Reference;
-
-/**
- * Find a class or resource on the supplied classpath, or the
- * system classpath if none is supplied. The named property is set if
- * the item can be found. For example
- * <pre>
- * &lt;whichresource resource="/log4j.properties"
- * property="log4j.url" &gt;
- * </pre>
- * @since Ant 1.6
- * @ant.attribute.group name="oneof" description="Exactly one of these two"
- */
-public class WhichResource extends Task {
- /**
- * our classpath
- */
- private Path classpath;
-
- /**
- * class to look for
- */
- private String classname;
-
- /**
- * resource to look for
- */
- private String resource;
-
- /**
- * property to set
- */
- private String property;
-
-
- /**
- * Set the classpath to be used for this compilation.
- * @param cp the classpath to be used.
- */
- public void setClasspath(Path cp) {
- if (classpath == null) {
- classpath = cp;
- } else {
- classpath.append(cp);
- }
- }
-
- /**
- * Adds a path to the classpath.
- * @return a classpath to be configured.
- */
- public Path createClasspath() {
- if (classpath == null) {
- classpath = new Path(getProject());
- }
- return classpath.createPath();
- }
-
- /**
- * Set the classpath to use by reference.
- *
- * @param r a reference to an existing classpath.
- * @since Ant 1.7.1
- */
- public void setClasspathRef(Reference r) {
- createClasspath().setRefid(r);
- }
-
- /**
- * validate
- */
- private void validate() {
- int setcount = 0;
- if (classname != null) {
- setcount++;
- }
- if (resource != null) {
- setcount++;
- }
-
-
- if (setcount == 0) {
- throw new BuildException("One of classname or resource must"
- + " be specified");
- }
- if (setcount > 1) {
- throw new BuildException("Only one of classname or resource can"
- + " be specified");
- }
- if (property == null) {
- throw new BuildException("No property defined");
- }
- }
-
- /**
- * execute it
- * @throws BuildException on error
- */
- public void execute() throws BuildException {
- validate();
- if (classpath != null) {
- classpath = classpath.concatSystemClasspath("ignore");
- getProject().log("using user supplied classpath: " + classpath,
- Project.MSG_DEBUG);
- } else {
- classpath = new Path(getProject());
- classpath = classpath.concatSystemClasspath("only");
- getProject().log("using system classpath: " + classpath,
- Project.MSG_DEBUG);
- }
- AntClassLoader loader = null;
- try {
- loader = AntClassLoader.newAntClassLoader(getProject().getCoreLoader(),
- getProject(),
- classpath, false);
- String loc = null;
- if (classname != null) {
- //convert a class name into a resource
- resource = classname.replace('.', '/') + ".class";
- }
-
- if (resource == null) {
- throw new BuildException("One of class or resource is required");
- }
-
- if (resource.startsWith("/")) {
- resource = resource.substring(1);
- }
-
- log("Searching for " + resource, Project.MSG_VERBOSE);
- URL url;
- url = loader.getResource(resource);
- if (url != null) {
- //set the property
- loc = url.toExternalForm();
- getProject().setNewProperty(property, loc);
- }
- } finally {
- if (loader != null) {
- loader.cleanup();
- }
- }
- }
-
- /**
- * name the resource to look for
- * @param resource the name of the resource to look for.
- * @ant.attribute group="oneof"
- */
- public void setResource(String resource) {
- this.resource = resource;
- }
-
- /**
- * name the class to look for
- * @param classname the name of the class to look for.
- * @ant.attribute group="oneof"
- */
- public void setClass(String classname) {
- this.classname = classname;
- }
-
- /**
- * the property to fill with the URL of the resource or class
- * @param property the property to be set.
- * @ant.attribute group="required"
- */
- public void setProperty(String property) {
- this.property = property;
- }
-
-}