Skip to content

Commit

Permalink
Issue #6148 - introduce jetty.build to show git sha for build
Browse files Browse the repository at this point in the history
Signed-off-by: Joakim Erdfelt <[email protected]>
  • Loading branch information
joakime committed Apr 9, 2021
1 parent 8715600 commit 19a1b0c
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 11 deletions.
7 changes: 7 additions & 0 deletions jetty-start/src/main/java/org/eclipse/jetty/start/Props.java
Original file line number Diff line number Diff line change
Expand Up @@ -368,11 +368,18 @@ public String toString()
return props.toString();
}

public static Props load(ClassLoader classLoader, String resourceName)
{
StartLog.debug("Looking for classloader resource: %s", resourceName);
return load(classLoader.getResource(resourceName));
}

public static Props load(URL url)
{
Props props = new Props();
if (url != null)
{
StartLog.debug("Loading Props: %s", url.toExternalForm());
try (InputStream in = url.openStream())
{
Properties properties = new Properties();
Expand Down
34 changes: 23 additions & 11 deletions jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import java.util.Properties;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
Expand All @@ -64,27 +65,37 @@ public class StartArgs
public static final Set<String> ARG_PARTS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
"args")));

private static final String JETTY_VERSION_KEY = "jetty.version";
private static final String JETTY_TAG_NAME_KEY = "jetty.tag.version";
private static final String JETTY_BUILDNUM_KEY = "jetty.build";

static
{
// Use command line versions
String ver = System.getProperty("jetty.version");
String tag = System.getProperty("jetty.tag.version");
String ver = System.getProperty(JETTY_VERSION_KEY);
String tag = System.getProperty(JETTY_TAG_NAME_KEY);

// Use META-INF/MANIFEST.MF versions
if (ver == null)
{
ver = ManifestUtils.getManifest(StartArgs.class)
.map(Manifest::getMainAttributes)
.filter(attributes -> "Eclipse Jetty Project".equals(attributes.getValue("Implementation-Vendor")))
.map(attributes -> attributes.getValue("Implementation-Version"))
.filter(attributes -> "Eclipse Jetty Project".equals(attributes.getValue(Attributes.Name.IMPLEMENTATION_VENDOR)))
.map(attributes -> attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION))
.orElse(null);
}

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
// use old jetty-version.properties (as seen within various linux distro repackaging of Jetty)
Props jettyVerProps = Props.load(classLoader.getResource("jetty-version.properties"));
Props jettyVerProps = Props.load(classLoader, "jetty-version.properties");
// use build-time properties (included in start.jar) to pull version and buildNumber
Props buildProps = Props.load(classLoader.getResource("/org/eclipse/jetty/version/build.properties"));
Props buildProps = Props.load(classLoader, "org/eclipse/jetty/start/build.properties");

String sha = buildProps.getString("buildNumber", System.getProperty(JETTY_BUILDNUM_KEY));
if (Utils.isNotBlank(sha))
{
System.setProperty(JETTY_BUILDNUM_KEY, sha);
}

if (Utils.isBlank(ver))
{
Expand All @@ -93,12 +104,12 @@ public class StartArgs

if (Utils.isBlank(tag))
{
tag = jettyVerProps.getString("buildNumber", buildProps.getString("buildNumber", "jetty-" + ver));
tag = jettyVerProps.getString("tag", buildProps.getString("tag", "jetty-" + ver));
}

VERSION = ver;
System.setProperty("jetty.version", VERSION);
System.setProperty("jetty.tag.version", tag);
System.setProperty(JETTY_VERSION_KEY, VERSION);
System.setProperty(JETTY_TAG_NAME_KEY, tag);
}

private static final String MAIN_CLASS = "org.eclipse.jetty.xml.XmlConfiguration";
Expand Down Expand Up @@ -301,8 +312,9 @@ public void dumpEnvironment()
System.out.println();
System.out.println("Jetty Environment:");
System.out.println("-----------------");
dumpProperty("jetty.version");
dumpProperty("jetty.tag.version");
dumpProperty(JETTY_VERSION_KEY);
dumpProperty(JETTY_TAG_NAME_KEY);
dumpProperty(JETTY_BUILDNUM_KEY);
dumpProperty("jetty.home");
dumpProperty("jetty.base");

Expand Down

0 comments on commit 19a1b0c

Please sign in to comment.