Skip to content

Commit e670a67

Browse files
author
Vladimir Dolzhenko
committed
unable to start MongoClient
1 parent dee6397 commit e670a67

File tree

5 files changed

+13
-11
lines changed

5 files changed

+13
-11
lines changed

bson/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ clirr {
2828

2929
jar {
3030
manifest {
31+
instruction 'Build-Version', getGitVersion()
3132
instruction 'Import-Package',
3233
'javax.xml.bind.*',
3334
'org.slf4j;resolution:=optional'

build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ configure(subprojects.findAll { it.name != 'util' }) {
131131
task generateVersionPropertiesFile << {
132132
def directory = new File(project.ext.generatedResources)
133133
directory.mkdirs()
134-
def propertiesFile = new File(directory, "version.properties")
135-
propertiesFile.text = "version=${getGitVersion()}"
136134
}
137135
}
138136

driver-core/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies {
3838

3939
jar {
4040
manifest {
41+
instruction 'Build-Version', getGitVersion()
4142
instruction 'Import-Package',
4243
'org.bson.*', // unfortunate that this is necessary, but if it's left out then it's not included
4344
'javax.crypto.*',

driver-core/src/main/com/mongodb/connection/ClientMetadataHelper.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@
2626
import org.bson.io.BasicOutputBuffer;
2727

2828
import java.io.IOException;
29-
import java.io.InputStream;
29+
import java.net.JarURLConnection;
3030
import java.net.URL;
3131
import java.nio.charset.Charset;
3232
import java.util.List;
33-
import java.util.Properties;
33+
import java.util.jar.Attributes;
34+
import java.util.jar.Manifest;
3435

3536
import static com.mongodb.assertions.Assertions.isTrueArgument;
3637
import static java.lang.String.format;
@@ -106,13 +107,13 @@ private static String getDriverVersion() {
106107
String driverVersion = "unknown";
107108

108109
try {
109-
Class<InternalStreamConnectionInitializer> clazz = InternalStreamConnectionInitializer.class;
110-
URL versionPropertiesFileURL = clazz.getResource("/version.properties");
111-
if (versionPropertiesFileURL != null) {
112-
Properties versionProperties = new Properties();
113-
InputStream versionPropertiesInputStream = versionPropertiesFileURL.openStream();
114-
versionProperties.load(versionPropertiesInputStream);
115-
driverVersion = versionProperties.getProperty("version");
110+
String path = InternalStreamConnectionInitializer.class.getProtectionDomain().getCodeSource().getLocation().getPath();
111+
URL jarUrl = path.endsWith(".jar") ? new URL("jar:file:" + path + "!/") : null;
112+
if (jarUrl != null) {
113+
JarURLConnection jarURLConnection = (JarURLConnection) jarUrl.openConnection();
114+
Manifest manifest = jarURLConnection.getManifest();
115+
String version = (String) manifest.getMainAttributes().get(new Attributes.Name("Build-Version"));
116+
driverVersion = version;
116117
}
117118
} catch (IOException e) {
118119
// do nothing

mongo-java-driver/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ sourceSets {
4747
// copied from driver-core
4848
jar {
4949
manifest {
50+
instruction 'Build-Version', getGitVersion()
5051
instruction 'Import-Package',
5152
'javax.xml.bind.*',
5253
'javax.crypto.*',

0 commit comments

Comments
 (0)