diff --git a/pom.xml b/pom.xml index 864480e41..e2ca47893 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.baidu.hugegraph hugegraph-common - 1.5.3 + 1.5.4 hugegraph-common https://github.com/hugegraph/hugegraph-common @@ -67,6 +67,7 @@ 3.0.1 3.21.0-GA 2.25.1 + 2.27 4.12 @@ -155,6 +156,11 @@ jersey-media-json-jackson ${jersey.version} + + org.glassfish.jersey.inject + jersey-hk2 + ${jersey.hk2.version} + @@ -192,7 +198,7 @@ - 1.5.3.0 + 1.5.4.0 diff --git a/src/main/java/com/baidu/hugegraph/util/VersionUtil.java b/src/main/java/com/baidu/hugegraph/util/VersionUtil.java index a6fd43ffa..ba580d83a 100644 --- a/src/main/java/com/baidu/hugegraph/util/VersionUtil.java +++ b/src/main/java/com/baidu/hugegraph/util/VersionUtil.java @@ -19,7 +19,9 @@ package com.baidu.hugegraph.util; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; import java.net.URL; import java.util.jar.Attributes; import java.util.jar.Manifest; @@ -86,6 +88,38 @@ public static String getImplementationVersion(Class clazz) { .getValue(Attributes.Name.IMPLEMENTATION_VERSION); } + /** + * Get version from pom.xml + * @return The pom version + */ + public static String getPomVersion() { + String cmd = "mvn help:evaluate -Dexpression=project.version " + + "-q -DforceStdout"; + Process process = null; + InputStreamReader isr = null; + try { + process = Runtime.getRuntime().exec(cmd); + process.waitFor(); + + isr = new InputStreamReader(process.getInputStream()); + BufferedReader br = new BufferedReader(isr); + return br.readLine(); + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + if (isr != null) { + try { + isr.close(); + } catch (Exception ignored) {} + } + + // Destroy child process + if (process != null) { + process.destroy(); + } + } + } + /** * class Version for compare * https://stackoverflow.com/questions/198431/how-do-you-compare-two-version-strings-in-java diff --git a/src/main/java/com/baidu/hugegraph/version/CommonVersion.java b/src/main/java/com/baidu/hugegraph/version/CommonVersion.java index deb96e040..aa9c14f7c 100644 --- a/src/main/java/com/baidu/hugegraph/version/CommonVersion.java +++ b/src/main/java/com/baidu/hugegraph/version/CommonVersion.java @@ -25,5 +25,7 @@ public class CommonVersion { public static final String NAME = "hugegraph-common"; - public static final Version VERSION = Version.of(CommonVersion.class); + // The second parameter of Version.of() is for all-in-one JAR + public static final Version VERSION = Version.of(CommonVersion.class, + "1.5.4"); } diff --git a/src/test/java/com/baidu/hugegraph/unit/version/VersionTest.java b/src/test/java/com/baidu/hugegraph/unit/version/VersionTest.java new file mode 100644 index 000000000..1d9ea1b5d --- /dev/null +++ b/src/test/java/com/baidu/hugegraph/unit/version/VersionTest.java @@ -0,0 +1,37 @@ +/* + * Copyright 2017 HugeGraph Authors + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You 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 com.baidu.hugegraph.unit.version; + +import org.junit.Test; + +import com.baidu.hugegraph.testutil.Assert; +import com.baidu.hugegraph.util.VersionUtil; +import com.baidu.hugegraph.version.CommonVersion; + +public class VersionTest { + + @Test + public void testGetCommonVersion() { + String version = CommonVersion.VERSION.get(); + Assert.assertNotNull(version); + String pomVersion = VersionUtil.getPomVersion(); + Assert.assertEquals(version, pomVersion); + } +}