xref: /OpenGrok/opengrok-indexer/src/main/java/org/opengrok/indexer/Info.java (revision 82105c7daea2ce6ea1053c2c4b934e54bf71b9e7)
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