1b5840353SAdam Hornáček /* 2b5840353SAdam Hornáček * CDDL HEADER START 3b5840353SAdam Hornáček * 4b5840353SAdam Hornáček * The contents of this file are subject to the terms of the 5b5840353SAdam Hornáček * Common Development and Distribution License (the "License"). 6b5840353SAdam Hornáček * You may not use this file except in compliance with the License. 7b5840353SAdam Hornáček * 8b5840353SAdam Hornáček * See LICENSE.txt included in this distribution for the specific 9b5840353SAdam Hornáček * language governing permissions and limitations under the License. 10b5840353SAdam Hornáček * 11b5840353SAdam Hornáček * When distributing Covered Code, include this CDDL HEADER in each 12b5840353SAdam Hornáček * file and include the License file at LICENSE.txt. 13b5840353SAdam Hornáček * If applicable, add the following below this CDDL HEADER, with the 14b5840353SAdam Hornáček * fields enclosed by brackets "[]" replaced with your own identifying 15b5840353SAdam Hornáček * information: Portions Copyright [yyyy] [name of copyright owner] 16b5840353SAdam Hornáček * 17b5840353SAdam Hornáček * CDDL HEADER END 18b5840353SAdam Hornáček */ 19b5840353SAdam Hornáček 20b5840353SAdam Hornáček /* 21*82105c7dSVladimir Kotal * Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved. 22b5840353SAdam Hornáček */ 23eeb87f00SAdam Hornáček package org.opengrok.indexer; 24b5840353SAdam Hornáček 25b5840353SAdam Hornáček import java.io.IOException; 26b5840353SAdam Hornáček import java.io.InputStream; 27b5840353SAdam Hornáček import java.util.Properties; 28b5840353SAdam Hornáček 29b5840353SAdam Hornáček /** 30b5840353SAdam Hornáček * Utility class to get information of the OpenGrok version. 31b5840353SAdam Hornáček * 32b5840353SAdam Hornáček * @author Trond Norbye 33b5840353SAdam Hornáček */ 34b5840353SAdam Hornáček @SuppressWarnings("PMD.AvoidThrowingRawExceptionTypes") 35b5840353SAdam Hornáček public final class Info { 36b5840353SAdam Hornáček private static final Properties properties = new Properties(); 37b5840353SAdam Hornáček 38b5840353SAdam Hornáček private static final String VERSION; 39b5840353SAdam Hornáček private static final String REVISION; 40ba73b440SKryštof Tulinger private static final String REVISION_SHORT; 41b5840353SAdam Hornáček 42*82105c7dSVladimir Kotal private static final String UNKNOWN = "unknown"; 43*82105c7dSVladimir Kotal 44b5840353SAdam Hornáček static { try(InputStream in = Info.class.getResourceAsStream("info.properties"))45b5840353SAdam Hornáček try (InputStream in = Info.class.getResourceAsStream("info.properties")) { 46b5840353SAdam Hornáček if (in != null) { 47b5840353SAdam Hornáček properties.load(in); 48b5840353SAdam Hornáček } 49*82105c7dSVladimir Kotal VERSION = properties.getProperty("version", UNKNOWN); 50*82105c7dSVladimir Kotal REVISION = properties.getProperty("changeset", UNKNOWN); 51*82105c7dSVladimir Kotal REVISION_SHORT = properties.getProperty("changeset_short", UNKNOWN); 52b5840353SAdam Hornáček } catch (IOException ioe) { 53b5840353SAdam Hornáček throw new RuntimeException(ioe); 54b5840353SAdam Hornáček } 55b5840353SAdam Hornáček } 56b5840353SAdam Hornáček 57b5840353SAdam Hornáček /** 58ff44f24aSAdam Hornáček * Get major version. 59ba73b440SKryštof Tulinger * 60b5840353SAdam Hornáček * @return major version 61b5840353SAdam Hornáček */ getVersion()62b5840353SAdam Hornáček public static String getVersion() { 63b5840353SAdam Hornáček return VERSION; 64b5840353SAdam Hornáček } 65b5840353SAdam Hornáček 66b5840353SAdam Hornáček /** 67ff44f24aSAdam Hornáček * Get full version (product vMajor revMinor). 68ba73b440SKryštof Tulinger * 69b5840353SAdam Hornáček * @return full version 70b5840353SAdam Hornáček */ getFullVersion()71b5840353SAdam Hornáček public static String getFullVersion() { 72b5840353SAdam Hornáček return "OpenGrok v" + VERSION + " rev " + REVISION; 73b5840353SAdam Hornáček } 74b5840353SAdam Hornáček 75b5840353SAdam Hornáček /** 76ff44f24aSAdam Hornáček * Get minor version. 77ba73b440SKryštof Tulinger * 78b5840353SAdam Hornáček * @return minor version 79b5840353SAdam Hornáček */ getRevision()80b5840353SAdam Hornáček public static String getRevision() { 81b5840353SAdam Hornáček return REVISION; 82b5840353SAdam Hornáček } 83b5840353SAdam Hornáček 84ba73b440SKryštof Tulinger 85ba73b440SKryštof Tulinger /** 86ff44f24aSAdam Hornáček * Get short minor version. 87ba73b440SKryštof Tulinger * 88ba73b440SKryštof Tulinger * @return short minor version 89ba73b440SKryštof Tulinger */ getShortRevision()90ba73b440SKryštof Tulinger public static String getShortRevision() { 91ba73b440SKryštof Tulinger return REVISION_SHORT; 92ba73b440SKryštof Tulinger } 93ba73b440SKryštof Tulinger 94ba73b440SKryštof Tulinger Info()95b5840353SAdam Hornáček private Info() { 96b5840353SAdam Hornáček } 97b5840353SAdam Hornáček } 98