19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one 39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * or more contributor license agreements. See the NOTICE file 49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed with this work for additional information 59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * regarding copyright ownership. The ASF licenses this file 69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to you under the Apache License, Version 2.0 (the "License"); 79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * you may not use this file except in compliance with the License. 89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * You may obtain a copy of the License at 99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Unless required by applicable law or agreed to in writing, software 139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * See the License for the specific language governing permissions and 169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * limitations under the License. 179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * $Id: Version.java 477252 2006-11-20 16:52:00Z minchau $ 209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpackage org.apache.xml.serializer; 229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/** 249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Administrative class to keep track of the version number of 259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the Serializer release. 269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <P>This class implements the upcoming standard of having 279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * org.apache.project-name.Version.getVersion() be a standard way 289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to get version information.</P> 299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @xsl.usage general 309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpublic final class Version 329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson{ 339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the basic version string for the current Serializer. 369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Version String formatted like 379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <CODE>"<B>Serializer</B> <B>Java</B> v.r[.dd| <B>D</B>nn]"</CODE>. 389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Futurework: have this read version info from jar manifest. 409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return String denoting our current version 429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static String getVersion() 449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return getProduct()+" "+getImplementationLanguage()+" " 469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson +getMajorVersionNum()+"."+getReleaseVersionNum()+"." 479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson +( (getDevelopmentVersionNum() > 0) ? 489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ("D"+getDevelopmentVersionNum()) : (""+getMaintenanceVersionNum())); 499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Print the processor version to the command line. 539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param argv command line arguments, unused. 559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static void main(String argv[]) 579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson System.out.println(getVersion()); 599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Name of product: Serializer. 639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static String getProduct() 659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return "Serializer"; 679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Implementation Language: Java. 719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static String getImplementationLanguage() 739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return "Java"; 759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Major version number. 809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Version number. This changes only when there is a 819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * significant, externally apparent enhancement from 829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the previous release. 'n' represents the n'th 839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * version. 849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Clients should carefully consider the implications 869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * of new versions as external interfaces and behaviour 879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * may have changed. 889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static int getMajorVersionNum() 909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return 2; 929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Release Number. 979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Release number. This changes when: 989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * - a new set of functionality is to be added, eg, 999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * implementation of a new W3C specification. 1009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * - API or behaviour change. 1019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * - its designated as a reference release. 1029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static int getReleaseVersionNum() 1049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return 7; 1069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Maintenance Drop Number. 1109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Optional identifier used to designate maintenance 1119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * drop applied to a specific release and contains 1129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * fixes for defects reported. It maintains compatibility 1139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * with the release and contains no API changes. 1149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * When missing, it designates the final and complete 1159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * development drop for a release. 1169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static int getMaintenanceVersionNum() 1189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return 1; 1209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Development Drop Number. 1249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Optional identifier designates development drop of 1259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * a specific release. D01 is the first development drop 1269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * of a new release. 1279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Development drops are works in progress towards a 1299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * compeleted, final release. A specific development drop 1309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * may not completely implement all aspects of a new 1319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * feature, which may take several development drops to 1329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * complete. At the point of the final drop for the 1339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * release, the D suffix will be omitted. 1349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Each 'D' drops can contain functional enhancements as 1369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * well as defect fixes. 'D' drops may not be as stable as 1379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the final releases. 1389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static int getDevelopmentVersionNum() 1409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson try { 1429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if ((new String("")).length() == 0) 1439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return 0; 1449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else 1459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return Integer.parseInt(""); 1469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } catch (NumberFormatException nfe) { 1479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return 0; 1489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson} 151