Author: bodewig
Date: Tue Nov 29 20:53:48 2005
New Revision: 349878
URL: http://svn.apache.org/viewcvs?rev=349878&view=rev
Log:
fix linefeeds
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestClassPath.java
(contents, props changed)
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestClassPath.java
URL:
http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestClassPath.java?rev=349878&r1=349877&r2=349878&view=diff
==============================================================================
---
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestClassPath.java
(original)
+++
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestClassPath.java
Tue Nov 29 20:53:48 2005
@@ -1,184 +1,184 @@
-/*
- * Copyright 2005 The Apache Software Foundation
- *
- * 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 org.apache.tools.ant.taskdefs;
-
-import java.io.File;
-
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.util.FileUtils;
-
-/**
- * Converts a Path into a property suitable as a Manifest classpath.
- *
- * @since Ant 1.7
- *
- * @ant.task category="property"
- */
-public class ManifestClassPath
- extends Task {
-
- /** The property name to hold the classpath value. */
- private String _name;
-
- /** The directory the classpath will be relative from. */
- private File _dir;
-
- /** The maximum parent directory level to traverse. */
- private int _maxParentLevels = 2;
-
- /** The classpath to convert. */
- private Path _path;
-
- /**
- * Sets a property, which must not already exists, with a space
- * separated list of files and directories relative to the jar
- * file's parent directory.
- */
- public void execute() {
- if (_name == null) {
- throw new BuildException("Missing 'property' attribute!");
- }
- if (_dir == null) {
- throw new BuildException("Missing 'jarfile' attribute!");
- }
- if (getProject().getProperty(_name) != null) {
- throw new BuildException("Property '" + _name + "' already set!");
- }
- if (_path == null) {
- throw new BuildException("Missing nested <classpath>!");
- }
-
- // Normalize the reference directory (containing the jar)
- final FileUtils fileUtils = FileUtils.getFileUtils();
- _dir = fileUtils.normalize(_dir.getAbsolutePath());
-
- // Create as many directory prefixes as parent levels to traverse,
- // in addition to the reference directory itself
- File currDir = _dir;
- String[] dirs = new String[_maxParentLevels + 1];
- for (int i = 0; i < _maxParentLevels + 1; ++i) {
- dirs[i] = currDir.getAbsolutePath() + File.separatorChar;
- currDir = currDir.getParentFile();
- if (currDir == null) {
- _maxParentLevels = i + 1;
- break;
- }
- }
-
- String[] elements = _path.list();
- StringBuffer buffer = new StringBuffer();
- StringBuffer element = new StringBuffer();
- for (int i = 0; i < elements.length; ++i) {
- // Normalize the current file
- File pathEntry = new File(elements[i]);
- pathEntry = fileUtils.normalize(pathEntry.getAbsolutePath());
- String fullPath = pathEntry.getAbsolutePath();
-
- // Find the longest prefix shared by the current file
- // and the reference directory.
- String relPath = null;
- for (int j = 0; j <= _maxParentLevels; ++j) {
- String dir = dirs[j];
- if (!fullPath.startsWith(dir)) {
- continue;
- }
-
- // We have a match! Add as many ../ as parent
- // directory traversed to get the relative path
- element.setLength(0);
- for (int k = 0; k < j; ++k) {
- element.append("..");
- element.append(File.separatorChar);
- }
- element.append(fullPath.substring(dir.length()));
- relPath = element.toString();
- break;
- }
-
- // No match, so bail out!
- if (relPath == null) {
- throw new BuildException("No suitable relative path from " +
- _dir + " to " + fullPath);
- }
-
- // Manifest's ClassPath: attribute always uses forward
- // slashes '/', and is space-separated. Ant will properly
- // format it on 72 columns with proper line continuation
- if (File.separatorChar != '/') {
- relPath = relPath.replace(File.separatorChar, '/');
- }
- buffer.append(relPath);
- if (pathEntry.isDirectory()) {
- buffer.append('/');
- }
- buffer.append(' ');
- }
-
- // Get rid of trailing space, if any
- if (buffer.length() > 0) {
- buffer.setLength(buffer.length() - 1);
- }
-
- // Finally assign the property with the manifest classpath
- getProject().setNewProperty(_name, buffer.toString());
- }
-
- /**
- * Sets the property name to hold the classpath value.
- *
- * @param name the property name
- */
- public void setProperty(String name) {
- _name = name;
- }
-
- /**
- * The JAR file to contain the classpath attribute in its manifest.
- *
- * @param jarfile the JAR file. Need not exist yet, but its parent
- * directory must exist on the other hand.
- */
- public void setJarFile(File jarfile) {
- File parent = jarfile.getParentFile();
- if (!parent.isDirectory()) {
- throw new BuildException("Jar's directory not found: " + parent);
- }
- _dir = parent;
- }
-
- /**
- * Sets the maximum parent directory levels allowed when computing
- * a relative path.
- *
- * @param levels the max level. Defaults to 2.
- */
- public void setMaxParentLevels(int levels) {
- _maxParentLevels = levels;
- }
-
- /**
- * Adds the classpath to convert.
- *
- * @param path the classpath to convert.
- */
- public void addClassPath(Path path) {
- _path = path;
- }
-
-}
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * 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 org.apache.tools.ant.taskdefs;
+
+import java.io.File;
+
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.Path;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.util.FileUtils;
+
+/**
+ * Converts a Path into a property suitable as a Manifest classpath.
+ *
+ * @since Ant 1.7
+ *
+ * @ant.task category="property"
+ */
+public class ManifestClassPath
+ extends Task {
+
+ /** The property name to hold the classpath value. */
+ private String _name;
+
+ /** The directory the classpath will be relative from. */
+ private File _dir;
+
+ /** The maximum parent directory level to traverse. */
+ private int _maxParentLevels = 2;
+
+ /** The classpath to convert. */
+ private Path _path;
+
+ /**
+ * Sets a property, which must not already exists, with a space
+ * separated list of files and directories relative to the jar
+ * file's parent directory.
+ */
+ public void execute() {
+ if (_name == null) {
+ throw new BuildException("Missing 'property' attribute!");
+ }
+ if (_dir == null) {
+ throw new BuildException("Missing 'jarfile' attribute!");
+ }
+ if (getProject().getProperty(_name) != null) {
+ throw new BuildException("Property '" + _name + "' already set!");
+ }
+ if (_path == null) {
+ throw new BuildException("Missing nested <classpath>!");
+ }
+
+ // Normalize the reference directory (containing the jar)
+ final FileUtils fileUtils = FileUtils.getFileUtils();
+ _dir = fileUtils.normalize(_dir.getAbsolutePath());
+
+ // Create as many directory prefixes as parent levels to traverse,
+ // in addition to the reference directory itself
+ File currDir = _dir;
+ String[] dirs = new String[_maxParentLevels + 1];
+ for (int i = 0; i < _maxParentLevels + 1; ++i) {
+ dirs[i] = currDir.getAbsolutePath() + File.separatorChar;
+ currDir = currDir.getParentFile();
+ if (currDir == null) {
+ _maxParentLevels = i + 1;
+ break;
+ }
+ }
+
+ String[] elements = _path.list();
+ StringBuffer buffer = new StringBuffer();
+ StringBuffer element = new StringBuffer();
+ for (int i = 0; i < elements.length; ++i) {
+ // Normalize the current file
+ File pathEntry = new File(elements[i]);
+ pathEntry = fileUtils.normalize(pathEntry.getAbsolutePath());
+ String fullPath = pathEntry.getAbsolutePath();
+
+ // Find the longest prefix shared by the current file
+ // and the reference directory.
+ String relPath = null;
+ for (int j = 0; j <= _maxParentLevels; ++j) {
+ String dir = dirs[j];
+ if (!fullPath.startsWith(dir)) {
+ continue;
+ }
+
+ // We have a match! Add as many ../ as parent
+ // directory traversed to get the relative path
+ element.setLength(0);
+ for (int k = 0; k < j; ++k) {
+ element.append("..");
+ element.append(File.separatorChar);
+ }
+ element.append(fullPath.substring(dir.length()));
+ relPath = element.toString();
+ break;
+ }
+
+ // No match, so bail out!
+ if (relPath == null) {
+ throw new BuildException("No suitable relative path from " +
+ _dir + " to " + fullPath);
+ }
+
+ // Manifest's ClassPath: attribute always uses forward
+ // slashes '/', and is space-separated. Ant will properly
+ // format it on 72 columns with proper line continuation
+ if (File.separatorChar != '/') {
+ relPath = relPath.replace(File.separatorChar, '/');
+ }
+ buffer.append(relPath);
+ if (pathEntry.isDirectory()) {
+ buffer.append('/');
+ }
+ buffer.append(' ');
+ }
+
+ // Get rid of trailing space, if any
+ if (buffer.length() > 0) {
+ buffer.setLength(buffer.length() - 1);
+ }
+
+ // Finally assign the property with the manifest classpath
+ getProject().setNewProperty(_name, buffer.toString());
+ }
+
+ /**
+ * Sets the property name to hold the classpath value.
+ *
+ * @param name the property name
+ */
+ public void setProperty(String name) {
+ _name = name;
+ }
+
+ /**
+ * The JAR file to contain the classpath attribute in its manifest.
+ *
+ * @param jarfile the JAR file. Need not exist yet, but its parent
+ * directory must exist on the other hand.
+ */
+ public void setJarFile(File jarfile) {
+ File parent = jarfile.getParentFile();
+ if (!parent.isDirectory()) {
+ throw new BuildException("Jar's directory not found: " + parent);
+ }
+ _dir = parent;
+ }
+
+ /**
+ * Sets the maximum parent directory levels allowed when computing
+ * a relative path.
+ *
+ * @param levels the max level. Defaults to 2.
+ */
+ public void setMaxParentLevels(int levels) {
+ _maxParentLevels = levels;
+ }
+
+ /**
+ * Adds the classpath to convert.
+ *
+ * @param path the classpath to convert.
+ */
+ public void addClassPath(Path path) {
+ _path = path;
+ }
+
+}
Propchange:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestClassPath.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]