| opends/PRODUCT | ●●●●● patch | view | raw | blame | history | |
| opends/build.xml | ●●●●● patch | view | raw | blame | history | |
| opends/resource/DynamicConstants.java.stubs | ●●●●● patch | view | raw | blame | history | |
| opends/src/build-tools/org/opends/build/tools/CheckCopyrightDates.java | ●●●●● patch | view | raw | blame | history | |
| opends/src/build-tools/org/opends/build/tools/CheckEOLStyle.java | ●●●●● patch | view | raw | blame | history | |
| opends/src/build-tools/org/opends/build/tools/CheckPrecommit.java | ●●●●● patch | view | raw | blame | history | |
| opends/src/build-tools/org/opends/build/tools/CreateVersionString.java | ●●●●● patch | view | raw | blame | history | |
| opends/src/server/org/opends/server/core/DirectoryServer.java | ●●●●● patch | view | raw | blame | history | |
| opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java | ●●●●● patch | view | raw | blame | history |
opends/PRODUCT
@@ -11,16 +11,12 @@ MINOR_VERSION=9 # The point version number for the Directory Server. It must be an integer. # The point version will generally not be displayed to the end user but may be # used to determine ordering among builds with the same major and minor # versions but different qualifiers. POINT_VERSION=0 # The version qualifier string for the Directory Server. It should be blank # for the first official release with a new major and minor version number # but may include additional text like "BETA1" or "SP2" for updates that do not # warrant incrementing the major or minor version. However, the point version # should be incremented every time a new qualifier is used. # for the first official release with a new major, minor, and point version # number but may include additional text like "BETA1" or "HOTFIX2" for updates # that do not warrant incrementing the version number. VERSION_QUALIFIER= # A comma-delimited list of bug IDs for fixes included in this build. This @@ -28,3 +24,4 @@ # specific problem or set of problems identified in the corresponding official # release. FIX_IDS= opends/build.xml
@@ -145,7 +145,7 @@ <!-- The build target that should be used before committing code. --> <target name="precommit" depends="checkstyle,clean,copyrightdates,eolstyle,dsml,javadoc,testwithcoverage" <target name="precommit" depends="checkstyle,clean,checkprecommit,dsml,testwithcoverage" description="Perform all processing needed before committing code."> </target> @@ -171,7 +171,7 @@ <!-- The build target that should be used to build everything. --> <target name="all" depends="checkstyle,clean,copyrightdates,eolstyle,dsml,javadoc,testallwithcoverage" depends="checkstyle,clean,checkprecommit,dsml,javadoc,testallwithcoverage" description="Build using all defined targets."> </target> @@ -298,15 +298,34 @@ <getsvnrevision property="REVISION_NUMBER" /> <!-- Construct the version number string --> <taskdef name="getversionnumber" classname="org.opends.build.tools.CreateVersionString"> <classpath> <fileset dir="${build.dir}/build-tools"> <include name="*.jar" /> </fileset> </classpath> </taskdef> <getversionnumber property="VERSION_NUMBER_STRING" /> <!-- Generate the DynamicConstants.java file. Be warned that the .stubs file references the following properties PRODUCT_NAME, SHORT_NAME, MAJOR_VERSION, MINOR_VERSION, POINT_VERSION, VERSION_QUALIFIER, FIX_IDS, timestamp, user.name, java.version, java.vendor, java.vm.version, JVM_VENDOR, DEBUG_BUILD, REVISION_NUMBER, WEAVE_ENABLED WEAVE_ENABLED, VERSION_NUMBER_STRING If you change the name of any of those properties in this build.xml you'll need to reflect the same change in the .stubs file --> <condition property="BUILD_NUMBER" value="-1"> <not> <isset property="BUILD_NUMBER" /> </not> </condition> <copy file="${dynconstants.stubfile}" tofile="${dynconstants.file}" overwrite="true" > @@ -319,11 +338,12 @@ <!-- Check modified files to see if any copyright updates are needed. --> <target name="copyrightdates" depends="buildtools" description="Ensure updated files have the correct copyright year" > <taskdef name="checkcopyrightdates" classname="org.opends.build.tools.CheckCopyrightDates"> <!-- Check modified files to see if any svn:eol-style or copyright updates are needed. --> <target name="checkprecommit" depends="buildtools" description="Ensure updated files eol-style and copyright info"> <taskdef name="checkprecommit" classname="org.opends.build.tools.CheckPrecommit"> <classpath> <fileset dir="${build.dir}/build-tools"> <include name="*.jar" /> @@ -334,62 +354,11 @@ </classpath> </taskdef> <checkcopyrightdates> <fileset dir="${basedir}" includes="**/*.java" excludes="build/**/*,src/admin/generated/**/*" /> <fileset dir="${basedir}" includes="**/*.xml" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.xsd" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.xsl" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.html" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.sh" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.bat" excludes="build/**/* " /> <fileset dir="${basedir}" includes="**/*.ldif" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.txt" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.c" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.h" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.mc" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/Makefile" excludes="build/**/*" /> <fileset dir="${scripts.dir}" includes="**/*" /> </checkcopyrightdates> <checkprecommit /> </target> <!-- Check added files to see if any svn:eol-style updates are needed. --> <target name="eolstyle" depends="buildtools" description="Ensure added files have the correct svn:eol-style" > <taskdef name="checkeolstyle" classname="org.opends.build.tools.CheckEOLStyle"> <classpath> <fileset dir="${build.dir}/build-tools"> <include name="*.jar" /> </fileset> <fileset dir="${svnkit.dir}"> <include name="*.jar" /> </fileset> </classpath> </taskdef> <checkeolstyle> <fileset dir="${basedir}" includes="**/*.java" excludes="build/**/*,src/admin/generated/**/*" /> <fileset dir="${basedir}" includes="**/*.xml" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.xsd" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.xsl" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.html" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.sh" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.bat" excludes="build/**/* " /> <fileset dir="${basedir}" includes="**/*.ldif" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.txt" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.c" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.h" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/*.mc" excludes="build/**/*" /> <fileset dir="${basedir}" includes="**/Makefile" excludes="build/**/*" /> <fileset dir="${scripts.dir}" includes="**/*" /> </checkeolstyle> </target> <!-- Ensure that the source code meets basic style requirements. --> <target name="checkstyle" description="Perform basic source style checks"> <mkdir dir="${checkstyle.cache.dir}" /> @@ -592,10 +561,8 @@ </condition> <!-- Set properties needed to find the packaged files --> <property name="pkgversion" value="${MAJOR_VERSION}.${MINOR_VERSION}${VERSION_QUALIFIER}" /> <property name="pdir" location="${package.dir}/OpenDS-${pkgversion}" /> location="${package.dir}/OpenDS-${VERSION_NUMBER_STRING}" /> <!-- Clean up a minimal set of files/directories for the rebuild. --> <delete dir="${classes.dir}" /> @@ -708,10 +675,8 @@ <!-- Populate the Directory Server package, but don't zip it up. --> <target name="prepackage" depends="cleancompile" description="Prepare the Directory Server package structure."> <property name="pkgversion" value="${MAJOR_VERSION}.${MINOR_VERSION}${VERSION_QUALIFIER}" /> <property name="pdir" location="${package.dir}/OpenDS-${pkgversion}" /> location="${package.dir}/OpenDS-${VERSION_NUMBER_STRING}" /> <mkdir dir="${pdir}" /> <mkdir dir="${pdir}/bak" /> @@ -817,19 +782,19 @@ <!-- Package the Directory Server for distribution. --> <target name="package" depends="prepackage" description="Package the Directory Server for distribution."> <zip destfile="${package.dir}/OpenDS-${pkgversion}.zip"> <zipfileset dir="${package.dir}" includes="OpenDS-${pkgversion}/**/*" excludes="OpenDS-${pkgversion}/bin/*,OpenDS-${pkgversion}/lib/_client-script.sh,OpenDS-${pkgversion}/lib/_server-script.sh,OpenDS-${pkgversion}/setup,OpenDS-${pkgversion}/uninstall" <zip destfile="${package.dir}/OpenDS-${VERSION_NUMBER_STRING}.zip"> <zipfileset dir="${package.dir}" includes="OpenDS-${VERSION_NUMBER_STRING}/**/*" excludes="OpenDS-${VERSION_NUMBER_STRING}/bin/*,OpenDS-${VERSION_NUMBER_STRING}/lib/_client-script.sh,OpenDS-${VERSION_NUMBER_STRING}/lib/_server-script.sh,OpenDS-${VERSION_NUMBER_STRING}/setup,OpenDS-${VERSION_NUMBER_STRING}/uninstall" filemode="644" dirmode="755" /> <zipfileset dir="${package.dir}" includes="OpenDS-${pkgversion}/lib/_client-script.sh,OpenDS-${pkgversion}/lib/_server-script.sh" includes="OpenDS-${VERSION_NUMBER_STRING}/lib/_client-script.sh,OpenDS-${VERSION_NUMBER_STRING}/lib/_server-script.sh" filemode="755" dirmode="755" /> <zipfileset dir="${package.dir}" includes="OpenDS-${pkgversion}/bin/*" excludes="OpenDS-${pkgversion}/bin/README_WINDOWS.txt" <zipfileset dir="${package.dir}" includes="OpenDS-${VERSION_NUMBER_STRING}/bin/*" excludes="OpenDS-${VERSION_NUMBER_STRING}/bin/README_WINDOWS.txt" filemode="755" dirmode="755" /> <zipfileset dir="${package.dir}" includes="OpenDS-${pkgversion}/bin/README_WINDOWS.txt" <zipfileset dir="${package.dir}" includes="OpenDS-${VERSION_NUMBER_STRING}/bin/README_WINDOWS.txt" filemode="644" dirmode="755" /> <zipfileset dir="${package.dir}" includes="OpenDS-${pkgversion}/setup,OpenDS-${pkgversion}/uninstall" <zipfileset dir="${package.dir}" includes="OpenDS-${VERSION_NUMBER_STRING}/setup,OpenDS-${VERSION_NUMBER_STRING}/uninstall" filemode="755" dirmode="755" /> </zip> </target> @@ -884,7 +849,7 @@ </classpath> </javac> <war destfile="${classes.dir}/OpenDS-${pkgversion}-DSML.war" <war destfile="${classes.dir}/OpenDS-${VERSION_NUMBER_STRING}-DSML.war" webxml="${dsml.dir}/webapp/web.xml"> <fileset file="${dsml.dir}/webapp/server.properties" /> opends/resource/DynamicConstants.java.stubs
@@ -59,6 +59,11 @@ public static final int POINT_VERSION = ${POINT_VERSION}; /** * The official build number for the Directory Server. */ public static final int BUILD_NUMBER = ${BUILD_NUMBER}; /** * The version qualifier string for the Directory Server. */ public static final String VERSION_QUALIFIER = "${VERSION_QUALIFIER}"; @@ -123,21 +128,24 @@ public static final boolean WEAVE_ENABLED = ${WEAVE_ENABLED}; /** * A string representation of the version number. */ public static final String VERSION_NUMBER_STRING = "${VERSION_NUMBER_STRING}"; /** * A compact version string for this product, suitable for use in path * names and similar cases. */ public static final String COMPACT_VERSION_STRING = SHORT_NAME + "-" + MAJOR_VERSION + "." + MINOR_VERSION + (((VERSION_QUALIFIER != null) && (VERSION_QUALIFIER.length() > 0)) ? VERSION_QUALIFIER : ""); SHORT_NAME + "-" + VERSION_NUMBER_STRING; /** * A full version string for this product. */ public static final String FULL_VERSION_STRING = PRODUCT_NAME + " " + MAJOR_VERSION + "." + MINOR_VERSION + (((VERSION_QUALIFIER != null) && (VERSION_QUALIFIER.length() > 0)) ? VERSION_QUALIFIER : "." + POINT_VERSION); PRODUCT_NAME + " " + VERSION_NUMBER_STRING + (((FIX_IDS != null) && (FIX_IDS.length() > 0)) ? "+" + FIX_IDS : ""); } opends/src/build-tools/org/opends/build/tools/CheckCopyrightDates.java
File was deleted opends/src/build-tools/org/opends/build/tools/CheckEOLStyle.java
File was deleted opends/src/build-tools/org/opends/build/tools/CheckPrecommit.java
New file @@ -0,0 +1,390 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Portions Copyright 2007 Sun Microsystems, Inc. */ package org.opends.build.tools; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.GregorianCalendar; import java.util.HashSet; import java.util.LinkedList; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; import org.tmatesoft.svn.core.SVNErrorMessage; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.wc.SVNPropertyData; import org.tmatesoft.svn.core.wc.SVNRevision; import org.tmatesoft.svn.core.wc.ISVNStatusHandler; import org.tmatesoft.svn.core.wc.SVNStatus; import org.tmatesoft.svn.core.wc.SVNStatusClient; import org.tmatesoft.svn.core.wc.SVNStatusType; import org.tmatesoft.svn.core.wc.SVNWCClient; /** * This class provides an implementation of an Ant task that may be used to * perform various checks to deteermine whether a file is suitable to be * committed. This includes: * <UL> * <LI>Make sure that the file has the correct "svn:eol-style" property * value.</LI> * <LI>If a file contains a line that appears to be a comment and includes the * word "copyright", then it should contain the current year.</LI> * </UL> */ public class CheckPrecommit extends Task implements ISVNStatusHandler { /** * The name of the system property that may be used to prevent copyright date * problems from failing the build. */ public static final String IGNORE_COPYRIGHT_ERRORS_PROPERTY = "org.opends.server.IgnoreCopyrightDateErrors"; /** * The name of the system property that may be used to prevent copyright date * problems from failing the build. */ public static final String IGNORE_EOLSTYLE_ERRORS_PROPERTY = "org.opends.server.IgnoreEOLStyleErrors"; /** * */ public static final HashSet<String> CHECKED_EXTENSIONS = new HashSet<String>(); static { CHECKED_EXTENSIONS.add("java"); CHECKED_EXTENSIONS.add("xml"); CHECKED_EXTENSIONS.add("xsd"); CHECKED_EXTENSIONS.add("xsl"); CHECKED_EXTENSIONS.add("html"); CHECKED_EXTENSIONS.add("sh"); CHECKED_EXTENSIONS.add("bat"); CHECKED_EXTENSIONS.add("ldif"); CHECKED_EXTENSIONS.add("txt"); CHECKED_EXTENSIONS.add("c"); CHECKED_EXTENSIONS.add("h"); CHECKED_EXTENSIONS.add("mc"); CHECKED_EXTENSIONS.add("Makefile"); } // The path to the directory that is the base of the workspace. private File workspacePath; // The set of files that appear to have problems with the EOL style. private LinkedList<String> eolStyleProblemFiles = new LinkedList<String>(); // The set of files that appear to have problems with the copyright date. private LinkedList<String> copyrightProblemFiles = new LinkedList<String>(); // The path to the root of the Subversion workspace to check. private String workspace = null; // The string representation of the current year. private String yearString; // The property client used to look at file properties. private SVNWCClient propertyClient; /** * Specifies the path to the root of the Subversion workspace for which to * retrieve the revision number. * * @param workspace The path to the root of the Subversion workspace for * which to retrieve the revision number. */ public void setWorkspace(String workspace) { this.workspace = workspace; } /** * Performs the appropriate processing needed for this task. In this case, * it uses SVNKit to identify all modified files in the current workspace. * For all source files, look for comment lines containing the word * "copyright" and make sure at least one of them contains the current year. */ @Override() public void execute() { if ((workspace == null) || (workspace.length() == 0)) { workspacePath = getProject().getBaseDir(); } else { workspacePath = new File(workspace); } // Get the year to use in the determination. GregorianCalendar calendar = new GregorianCalendar(); int year = calendar.get(GregorianCalendar.YEAR); yearString = String.valueOf(year); // Process the base directory and all of its subdirectories. SVNStatusClient svnClient = new SVNStatusClient(null, null); propertyClient = new SVNWCClient(null, null); try { svnClient.doStatus(workspacePath, true, false, false, false, false, this); } catch (Exception e) { e.printStackTrace(); System.err.println("WARNING: Encountered an error while examining " + "Subversion status: " + e); System.err.println("No further checks will be performed."); return; } boolean fail = false; if (! eolStyleProblemFiles.isEmpty()) { fail = true; System.err.println("WARNING: Potential svn:eol-style updates needed " + "for the following files:"); for (String filename : eolStyleProblemFiles) { System.err.println(" " + filename); } System.err.println("Fix svn:eol-style problems before proceeding, or " + "use '-D" + IGNORE_EOLSTYLE_ERRORS_PROPERTY + "=true' to ignore copyright warnings."); } if (! copyrightProblemFiles.isEmpty()) { fail = true; System.err.println("WARNING: Potential copyright year updates needed " + "for the following files:"); for (String filename : copyrightProblemFiles) { System.err.println(" " + filename); } System.err.println("Fix copyright date problems before proceeding, or " + "use '-D" + IGNORE_COPYRIGHT_ERRORS_PROPERTY + "=true' to ignore copyright warnings."); } if (fail) { throw new BuildException(); } } /** * Examines the provided status item to determine whether the associated file * is acceptable. * * @param status The SVN status information for the file of interest. */ public void handleStatus(SVNStatus status) { File file = status.getFile(); if ((! file.exists()) || (! file.isFile())) { // The file doesn't exist (which probably means it's been deleted) or // isn't a regular file, so we'll ignore it. return; } String fileName = file.getName(); int lastPeriodPos = fileName.lastIndexOf('.'); if (lastPeriodPos > 0) { String extension = fileName.substring(lastPeriodPos+1); if (! CHECKED_EXTENSIONS.contains(extension.toLowerCase())) { // The file doesn't have an extension that we care about, so skip it. return; } } else { // The file doesn't have an extension. We'll still want to check it if // it's in a resource/bin directory. File parentDirectory = file.getParentFile(); if ((parentDirectory == null) || (! parentDirectory.getName().equals("bin"))) { return; } parentDirectory = parentDirectory.getParentFile(); if ((parentDirectory == null) || (! parentDirectory.getName().equals("resource"))) { return; } } String filePath = file.getAbsolutePath(); if (filePath.startsWith(workspacePath.getPath())) { filePath = filePath.substring(workspacePath.getPath().length()); } // Check to make sure that the file has the correct EOL style. try { SVNPropertyData propertyData = propertyClient.doGetProperty(file, "svn:eol-style", SVNRevision.BASE, SVNRevision.WORKING, false); if ((propertyData == null) || (! propertyData.getValue().equals("native"))) { eolStyleProblemFiles.add(filePath); } } catch (SVNException se) { // This could happen if the file isn't under version control. If so, then // we can't check the eol-style but we should at least be able to check // the copyright dates, so keep going. } // Check to see whether the file has a comment line containing a copyright // without the current year. BufferedReader reader = null; try { boolean copyrightFound = false; boolean correctYearFound = false; reader = new BufferedReader(new FileReader(file)); String line = reader.readLine(); while (line != null) { String lowerLine = line.toLowerCase().trim(); if (isCommentLine(lowerLine)) { int copyrightPos = lowerLine.indexOf("copyright"); if (copyrightPos > 0) { copyrightFound = true; if (lowerLine.indexOf(yearString) > 0) { correctYearFound = true; break; } } } line = reader.readLine(); } if (copyrightFound && (! correctYearFound)) { copyrightProblemFiles.add(filePath); } } catch (IOException ioe) { System.err.println("ERROR: Could not read file " + filePath + " to check copyright date."); System.err.println("No further copyright date checking will be " + "performed."); throw new RuntimeException(); } finally { try { if (reader != null) { reader.close(); } } catch (Exception e) {} } } /** * Indicates whether the provided line appears to be a comment line. It will * check for a number of common comment indicators in Java source files, * shell scripts, XML files, and LDIF files. * * @param lowerLine The line to be checked. It should have been coverted to * all lowercase characters and any leading spaces * removed. * * @return {@code true} if it appears that the line is a comment line, or * {@code false} if not. */ private static boolean isCommentLine(String lowerLine) { if (lowerLine.startsWith("/*") || lowerLine.startsWith("*") || lowerLine.startsWith("//") || lowerLine.startsWith("#") || lowerLine.startsWith("rem") || lowerLine.startsWith("<!--") || lowerLine.startsWith("!")) { return true; } else { return false; } } } opends/src/build-tools/org/opends/build/tools/CreateVersionString.java
New file @@ -0,0 +1,98 @@ /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Portions Copyright 2007 Sun Microsystems, Inc. */ package org.opends.build.tools; import java.text.DecimalFormat; import org.apache.tools.ant.Task; /** * This class provides an implemenation of an Ant task that may be used to * construct the full version number string that the Directory Server should * use. The value of the version number string will be stored in an Ant * property. */ public class CreateVersionString extends Task { // The name of the property in which the revision number should be set. private String propertyName = null; /** * Specifies the name of the Ant property into which the Subversion revision * number will be stored. * * @param propertyName The name of the Ant property into which the * Subversion revision number will be stored. */ public void setProperty(String propertyName) { this.propertyName = propertyName; } /** * Performs the appropriate processing needed for this task. In this case, * it uses SVNKit to identify the current revision number for the local * workspace and store it in a specified property. */ @Override() public void execute() { StringBuilder versionString = new StringBuilder(); versionString.append(getProject().getProperty("MAJOR_VERSION")); versionString.append("."); versionString.append(getProject().getProperty("MINOR_VERSION")); versionString.append("."); versionString.append(getProject().getProperty("POINT_VERSION")); String versionQualifier = getProject().getProperty("VERSION_QUALIFIER"); versionString.append(versionQualifier); try { int buildNumber = Integer.parseInt(getProject().getProperty("BUILD_NUMBER")); if (buildNumber > 0) { versionString.append("-build"); versionString.append(new DecimalFormat("000").format(buildNumber)); } } catch (NumberFormatException nfe) {} getProject().setNewProperty(propertyName, versionString.toString()); } } opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -33,6 +33,7 @@ import java.io.OutputStream; import java.io.PrintStream; import java.net.InetAddress; import java.text.DecimalFormat; import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -8311,22 +8312,7 @@ */ public static String getVersionString() { StringBuilder buffer = new StringBuilder(); buffer.append(PRODUCT_NAME); buffer.append(" "); buffer.append(MAJOR_VERSION); buffer.append("."); buffer.append(MINOR_VERSION); if ((VERSION_QUALIFIER == null) || (VERSION_QUALIFIER.length() == 0)) { buffer.append("."); buffer.append(POINT_VERSION); } else { buffer.append(VERSION_QUALIFIER); } return buffer.toString(); return FULL_VERSION_STRING; } /** @@ -8803,6 +8789,13 @@ System.out.println("Minor Version: " + MINOR_VERSION); System.out.println("Point Version: " + POINT_VERSION); System.out.println("Version Qualifier: " + VERSION_QUALIFIER); if (BUILD_NUMBER > 0) { System.out.println("Build Number: " + new DecimalFormat("000").format(BUILD_NUMBER)); } System.out.println("Revision Number: " + REVISION_NUMBER); System.out.println("Fix IDs: " + FIX_IDS); System.out.println("Debug Build: " + DEBUG_BUILD); opends/src/server/org/opends/server/monitors/VersionMonitorProvider.java
@@ -55,6 +55,88 @@ public class VersionMonitorProvider extends MonitorProvider { /** * The name of the attribute used to provide the product name. */ public static final String ATTR_PRODUCT_NAME = "productName"; /** * The name of the attribute used to provide the short name. */ public static final String ATTR_SHORT_NAME = "shortName"; /** * The name of the attribute used to provide the major version number. */ public static final String ATTR_MAJOR_VERSION = "majorVersion"; /** * The name of the attribute used to provide the minor version number. */ public static final String ATTR_MINOR_VERSION = "minorVersion"; /** * The name of the attribute used to provide the point version number. */ public static final String ATTR_POINT_VERSION = "pointVersion"; /** * The name of the attribute used to provide the version qualifier string. */ public static final String ATTR_VERSION_QUALIFIER = "versionQualifier"; /** * The name of the attribute used to provide the weekly build number. */ public static final String ATTR_BUILD_NUMBER = "buildNumber"; /** * The name of the attribute used to provide the list of bugfix IDs. */ public static final String ATTR_FIX_IDS = "fixIDs"; /** * The name of the attribute used to provide the Subversion revision number. */ public static final String ATTR_REVISION_NUMBER = "revisionNumber"; /** * The name of the attribute used to provide the build ID (aka the build * timestamp). */ public static final String ATTR_BUILD_ID = "buildID"; /** * The name of the attribute used to provide the compact version string. */ public static final String ATTR_COMPACT_VERSION = "compactVersion"; /** * The name of the attribute used to provide the full version string. */ public static final String ATTR_FULL_VERSION = "fullVersion"; @@ -147,23 +229,44 @@ */ public ArrayList<Attribute> getMonitorData() { ArrayList<Attribute> attrs = new ArrayList<Attribute>(8); ArrayList<Attribute> attrs = new ArrayList<Attribute>(12); attrs.add(createAttribute("productName", DynamicConstants.PRODUCT_NAME)); attrs.add(createAttribute("buildID", DynamicConstants.BUILD_ID)); attrs.add(createAttribute("majorVersion", attrs.add(createAttribute(ATTR_PRODUCT_NAME, DynamicConstants.PRODUCT_NAME)); attrs.add(createAttribute(ATTR_SHORT_NAME, DynamicConstants.SHORT_NAME)); attrs.add(createAttribute(ATTR_MAJOR_VERSION, String.valueOf(DynamicConstants.MAJOR_VERSION))); attrs.add(createAttribute("minorVersion", attrs.add(createAttribute(ATTR_MINOR_VERSION, String.valueOf(DynamicConstants.MINOR_VERSION))); attrs.add(createAttribute("pointVersion", attrs.add(createAttribute(ATTR_POINT_VERSION, String.valueOf(DynamicConstants.POINT_VERSION))); attrs.add(createAttribute("versionQualifier", DynamicConstants.VERSION_QUALIFIER)); attrs.add(createAttribute("revisionNumber", String versionQualifier = DynamicConstants.VERSION_QUALIFIER; if ((versionQualifier != null) && (versionQualifier.length() > 0)) { attrs.add(createAttribute(ATTR_VERSION_QUALIFIER, versionQualifier)); } int buildNumber = DynamicConstants.BUILD_NUMBER; if (buildNumber > 0) { attrs.add(createAttribute(ATTR_BUILD_NUMBER, String.valueOf(buildNumber))); } String fixIDs = DynamicConstants.FIX_IDS; if ((fixIDs != null) && (fixIDs.length() > 0)) { attrs.add(createAttribute(ATTR_FIX_IDS, fixIDs)); } attrs.add(createAttribute(ATTR_REVISION_NUMBER, String.valueOf(DynamicConstants.REVISION_NUMBER))); attrs.add(createAttribute("debugBuild", String.valueOf(DynamicConstants.DEBUG_BUILD))); attrs.add(createAttribute("fixIDs", DynamicConstants.FIX_IDS)); attrs.add(createAttribute(ATTR_BUILD_ID, DynamicConstants.BUILD_ID)); attrs.add(createAttribute(ATTR_COMPACT_VERSION, DynamicConstants.COMPACT_VERSION_STRING)); attrs.add(createAttribute(ATTR_FULL_VERSION, DynamicConstants.FULL_VERSION_STRING)); return attrs; }