| /* |
| |
| Copyright 2003 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.batik; |
| |
| /** |
| * This class defines the Batik version number. |
| * |
| * @author <a href="mailto:vincent.hardy@sun.com">Vincent Hardy</a> |
| * @version $Id$ |
| */ |
| public final class Version { |
| |
| /** |
| * Returns the Batik version. |
| * <p> |
| * This is based on the 'HeadURL' keyword. This will be substituted with |
| * the URL of this file, which is then inspected to determine if this |
| * file was compiled from the trunk, a tag (a release verison), or a |
| * branch. The format of the returned string will be one of the |
| * following: |
| * </p> |
| * <table> |
| * <tr> |
| * <th>Source</th> |
| * <th>Version string</th> |
| * <tr> |
| * </tr> |
| * <td>Release version</td> |
| * <td><em>version</em></td> |
| * <tr> |
| * </tr> |
| * <td>Trunk</td> |
| * <td>SVN+<em>yyyymmdd</em></td> |
| * <tr> |
| * </tr> |
| * <td>Branch</td> |
| * <td><em>branch-name</em> branch; SVN+<em>yyyymmdd</em></td> |
| * </tr> |
| * </tr> |
| * <td>Unknown</td> |
| * <td>development version</td> |
| * </tr> |
| * </table> |
| * <p> |
| * Prior to SVN+20060704 and release 1.6, the version string would |
| * be the straight tag (e.g. <code>"batik-1_6"</code>) or the |
| * string <code>"development.version"</code>. |
| * </p> |
| */ |
| public static String getVersion() { |
| String version = "development version"; |
| String headURL = "$HeadURL$"; |
| String prefix = "$HeadURL: "; |
| String suffix = "/sources/org/apache/batik/Version.java $"; |
| if (headURL.startsWith(prefix) && headURL.endsWith(suffix)) { |
| headURL = headURL.substring |
| (prefix.length(), headURL.length() - suffix.length()); |
| if (headURL.endsWith("/trunk")) { |
| // SVN trunk |
| version = "SVN+" + getDate(); |
| } else { |
| int index1 = headURL.lastIndexOf('/'); |
| int index2 = headURL.lastIndexOf('/', index1 - 1); |
| String name = headURL.substring(index1 + 1); |
| String type = headURL.substring(index2 + 1, index1); |
| String tagPrefix = "batik-"; |
| if (type.equals("tags") && name.startsWith(tagPrefix)) { |
| // Release |
| version = name.substring(tagPrefix.length()) |
| .replace('_', '.'); |
| } else if (type.equals("branches")) { |
| // SVN branch |
| version = name + "; SVN+" + getDate(); |
| } |
| } |
| } |
| |
| return version; |
| } |
| |
| /** |
| * Returns the last modified date of this file in <em>YYYYMMDD</em> |
| * format. |
| */ |
| protected static String getDate() { |
| String date = "$Date$"; |
| String prefix = "$Date: "; |
| if (date.startsWith(prefix)) { |
| return date.substring(7, 11) |
| + date.substring(12, 14) |
| + date.substring(15, 17); |
| } |
| return "unknown"; |
| } |
| } |