Merge pull request #6149 from eclipse/jetty-9.4.x-start-tag-name
Issue #6148 - update jetty.tag.version behavior
This commit is contained in:
commit
23c45c094b
|
@ -13,7 +13,30 @@
|
|||
<spotbugs.onlyAnalyze>org.eclipse.jetty.start.*</spotbugs.onlyAnalyze>
|
||||
</properties>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>buildnumber-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>create-buildnumber</id>
|
||||
<goals>
|
||||
<goal>create</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<doCheck>false</doCheck>
|
||||
<doUpdate>false</doUpdate>
|
||||
<revisionOnScmFailure>${nonCanonicalRevision}</revisionOnScmFailure>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
|
|
|
@ -19,7 +19,9 @@
|
|||
package org.eclipse.jetty.start;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
@ -365,4 +367,32 @@ public final class Props implements Iterable<Prop>
|
|||
{
|
||||
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();
|
||||
properties.load(in);
|
||||
String urlStr = url.toExternalForm();
|
||||
properties.stringPropertyNames().forEach((name) ->
|
||||
props.setProperty(name, properties.getProperty(name), urlStr));
|
||||
}
|
||||
catch (IOException x)
|
||||
{
|
||||
StartLog.debug(x);
|
||||
}
|
||||
}
|
||||
return props;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,9 +21,7 @@ package org.eclipse.jetty.start;
|
|||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
@ -40,6 +38,7 @@ import java.util.Map;
|
|||
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;
|
||||
|
@ -66,61 +65,51 @@ 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", null);
|
||||
String tag = System.getProperty("jetty.tag.version", "master");
|
||||
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);
|
||||
}
|
||||
|
||||
// Use jetty-version.properties values
|
||||
if (ver == 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, "jetty-version.properties");
|
||||
// use build-time properties (included in start.jar) to pull version and buildNumber
|
||||
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))
|
||||
{
|
||||
URL url = Thread.currentThread().getContextClassLoader().getResource("jetty-version.properties");
|
||||
if (url != null)
|
||||
{
|
||||
try (InputStream in = url.openStream())
|
||||
{
|
||||
Properties props = new Properties();
|
||||
props.load(in);
|
||||
ver = props.getProperty("jetty.version");
|
||||
}
|
||||
catch (IOException x)
|
||||
{
|
||||
StartLog.debug(x);
|
||||
}
|
||||
}
|
||||
System.setProperty(JETTY_BUILDNUM_KEY, sha);
|
||||
}
|
||||
|
||||
// Default values
|
||||
if (ver == null)
|
||||
if (Utils.isBlank(ver))
|
||||
{
|
||||
ver = "0.0";
|
||||
if (tag == null)
|
||||
tag = "master";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tag == null)
|
||||
tag = "jetty-" + ver;
|
||||
ver = jettyVerProps.getString("version", buildProps.getString("version", "0.0"));
|
||||
}
|
||||
|
||||
// Set Tag Defaults
|
||||
if (tag.contains("-SNAPSHOT"))
|
||||
tag = "master";
|
||||
if (Utils.isBlank(tag))
|
||||
{
|
||||
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";
|
||||
|
@ -323,8 +312,9 @@ public class StartArgs
|
|||
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");
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
buildNumber=${buildNumber}
|
||||
timestamp=${timestamp}
|
||||
version=${project.version}
|
||||
scmUrl=${project.scm.connection}
|
Loading…
Reference in New Issue