Skip to content

Commit cba4951

Browse files
authored
print tool version to stdout and log for create/update/rebase (#263)
1 parent 2ec42f0 commit cba4951

File tree

2 files changed

+30
-12
lines changed

2 files changed

+30
-12
lines changed

imagetool/src/main/java/com/oracle/weblogic/imagetool/cli/HelpVersionProvider.java

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,42 @@
33

44
package com.oracle.weblogic.imagetool.cli;
55

6+
import java.io.IOException;
67
import java.io.InputStream;
7-
import java.util.ArrayList;
8-
import java.util.List;
98
import java.util.Properties;
109

1110
import picocli.CommandLine.IVersionProvider;
1211

1312
public class HelpVersionProvider implements IVersionProvider {
1413

15-
@Override
16-
public String[] getVersion() throws Exception {
17-
List<String> retList = new ArrayList<>();
18-
try (InputStream versionInfoStream = this.getClass().getResourceAsStream("/version-info.properties")) {
19-
if (versionInfoStream != null) {
20-
Properties versionProps = new Properties();
21-
versionProps.load(versionInfoStream);
22-
retList.add(String.format("%s:%s", versionProps.getProperty("project_name", "imagetool"),
23-
versionProps.getProperty("project_version", "0.0")));
14+
private static final Properties projectProps = new Properties();
15+
16+
/**
17+
* Get the project name and version declared in the POM.
18+
* @return project name and version number
19+
* @throws IOException if loading version properties fails.
20+
*/
21+
public static Properties projectProperties() throws IOException {
22+
if (projectProps.isEmpty()) {
23+
try (InputStream versionInfoStream =
24+
HelpVersionProvider.class.getResourceAsStream("/version-info.properties")) {
25+
if (versionInfoStream != null) {
26+
projectProps.load(versionInfoStream);
27+
}
2428
}
2529
}
26-
return retList.toArray(new String[0]);
30+
return projectProps;
31+
}
32+
33+
public static String versionString() throws IOException {
34+
return "WebLogic Image Tool version " + projectProperties().getProperty("project_version");
35+
}
36+
37+
@Override
38+
public String[] getVersion() throws Exception {
39+
Properties p = projectProperties();
40+
String[] result = new String[1];
41+
result[0] = p.getProperty("project_name") + ":" + p.getProperty("project_version");
42+
return result;
2743
}
2844
}

imagetool/src/main/java/com/oracle/weblogic/imagetool/cli/menu/CommonOptions.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.oracle.weblogic.imagetool.cachestore.MultiplePatchVersionsException;
2727
import com.oracle.weblogic.imagetool.cachestore.OPatchFile;
2828
import com.oracle.weblogic.imagetool.cachestore.PatchFile;
29+
import com.oracle.weblogic.imagetool.cli.HelpVersionProvider;
2930
import com.oracle.weblogic.imagetool.installer.FmwInstallerType;
3031
import com.oracle.weblogic.imagetool.logging.LoggingFacade;
3132
import com.oracle.weblogic.imagetool.logging.LoggingFactory;
@@ -160,6 +161,7 @@ void setTempDirectory(String value) {
160161

161162
void init(String buildId) throws Exception {
162163
logger.entering(buildId);
164+
logger.info(HelpVersionProvider.versionString());
163165
dockerfileOptions = new DockerfileOptions(buildId);
164166
logger.info("IMG-0016", buildId);
165167

0 commit comments

Comments
 (0)