mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 10:04:42 +02:00
6927061: Refactor apt implemenation to use code from JSR 269
Reviewed-by: jjg
This commit is contained in:
parent
b8574a9e3b
commit
e985558459
6 changed files with 117 additions and 264 deletions
|
@ -81,7 +81,7 @@ public class DocletInvoker {
|
|||
cpString = appendPath(System.getProperty("env.class.path"), cpString);
|
||||
cpString = appendPath(System.getProperty("java.class.path"), cpString);
|
||||
cpString = appendPath(docletPath, cpString);
|
||||
URL[] urls = pathToURLs(cpString);
|
||||
URL[] urls = com.sun.tools.javac.file.Paths.pathToURLs(cpString);
|
||||
if (docletParentClassLoader == null)
|
||||
appClassLoader = new URLClassLoader(urls, getDelegationClassLoader(docletClassName));
|
||||
else
|
||||
|
@ -313,58 +313,4 @@ public class DocletInvoker {
|
|||
Thread.currentThread().setContextClassLoader(savedCCL);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method for converting a search path string to an array
|
||||
* of directory and JAR file URLs.
|
||||
*
|
||||
* @param path the search path string
|
||||
* @return the resulting array of directory and JAR file URLs
|
||||
*/
|
||||
static URL[] pathToURLs(String path) {
|
||||
StringTokenizer st = new StringTokenizer(path, File.pathSeparator);
|
||||
URL[] urls = new URL[st.countTokens()];
|
||||
int count = 0;
|
||||
while (st.hasMoreTokens()) {
|
||||
URL url = fileToURL(new File(st.nextToken()));
|
||||
if (url != null) {
|
||||
urls[count++] = url;
|
||||
}
|
||||
}
|
||||
if (urls.length != count) {
|
||||
URL[] tmp = new URL[count];
|
||||
System.arraycopy(urls, 0, tmp, 0, count);
|
||||
urls = tmp;
|
||||
}
|
||||
return urls;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the directory or JAR file URL corresponding to the specified
|
||||
* local file name.
|
||||
*
|
||||
* @param file the File object
|
||||
* @return the resulting directory or JAR file URL, or null if unknown
|
||||
*/
|
||||
static URL fileToURL(File file) {
|
||||
String name;
|
||||
try {
|
||||
name = file.getCanonicalPath();
|
||||
} catch (IOException e) {
|
||||
name = file.getAbsolutePath();
|
||||
}
|
||||
name = name.replace(File.separatorChar, '/');
|
||||
if (!name.startsWith("/")) {
|
||||
name = "/" + name;
|
||||
}
|
||||
// If the file does not exist, then assume that it's a directory
|
||||
if (!file.isFile()) {
|
||||
name = name + "/";
|
||||
}
|
||||
try {
|
||||
return new URL("file", "", name);
|
||||
} catch (MalformedURLException e) {
|
||||
throw new IllegalArgumentException("file");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue