Skip to content

Commit 1749719

Browse files
committed
Consider Simulacron and Commons Exec as optional dependencies
This commit changes these dependencies to optional. This allows the OSGi bundle to declare such dependencies as optional package imports, thus limiting the number of bundles that need to be provisioned for it.
1 parent b4e0889 commit 1749719

4 files changed

Lines changed: 50 additions & 2 deletions

File tree

integration-tests/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,16 @@
187187
<artifactId>wiremock</artifactId>
188188
<scope>test</scope>
189189
</dependency>
190+
<dependency>
191+
<groupId>com.datastax.oss.simulacron</groupId>
192+
<artifactId>simulacron-native-server</artifactId>
193+
<scope>test</scope>
194+
</dependency>
195+
<dependency>
196+
<groupId>org.apache.commons</groupId>
197+
<artifactId>commons-exec</artifactId>
198+
<scope>test</scope>
199+
</dependency>
190200
</dependencies>
191201
<build>
192202
<plugins>

test-infra/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,17 @@
5656
<groupId>org.assertj</groupId>
5757
<artifactId>assertj-core</artifactId>
5858
</dependency>
59+
<!-- only required for Simulacron tests -->
5960
<dependency>
6061
<groupId>com.datastax.oss.simulacron</groupId>
6162
<artifactId>simulacron-native-server</artifactId>
63+
<optional>true</optional>
6264
</dependency>
65+
<!-- only required for CCM tests -->
6366
<dependency>
6467
<groupId>org.apache.commons</groupId>
6568
<artifactId>commons-exec</artifactId>
69+
<optional>true</optional>
6670
</dependency>
6771
<dependency>
6872
<groupId>org.awaitility</groupId>

test-infra/revapi.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,36 @@
100100
"old": "field com.datastax.oss.driver.api.testinfra.ccm.CcmBridge.DEFAULT_SERVER_TRUSTSTORE_PASSWORD",
101101
"new": "field com.datastax.oss.driver.api.testinfra.ccm.CcmBridge.DEFAULT_SERVER_TRUSTSTORE_PASSWORD",
102102
"justification": "JAVA-2620: Use clearly dummy passwords in tests"
103+
},
104+
{
105+
"code": "java.missing.newClass",
106+
"new": "missing-class com.datastax.oss.simulacron.common.cluster.ClusterSpec",
107+
"justification":"Dependency was made optional"
108+
},
109+
{
110+
"code": "java.missing.newClass",
111+
"new": "missing-class com.datastax.oss.simulacron.common.cluster.ClusterSpec.Builder",
112+
"justification":"Dependency was made optional"
113+
},
114+
{
115+
"code": "java.missing.newClass",
116+
"new": "missing-class com.datastax.oss.simulacron.common.cluster.QueryLog",
117+
"justification":"Dependency was made optional"
118+
},
119+
{
120+
"code": "java.missing.newClass",
121+
"new": "missing-class com.datastax.oss.simulacron.server.BoundCluster",
122+
"justification":"Dependency was made optional"
123+
},
124+
{
125+
"code": "java.missing.newClass",
126+
"new": "missing-class com.datastax.oss.simulacron.server.BoundTopic",
127+
"justification":"Dependency was made optional"
128+
},
129+
{
130+
"code": "java.missing.newClass",
131+
"new": "missing-class com.datastax.oss.simulacron.server.Server",
132+
"justification":"Dependency was made optional"
103133
}
104134
]
105135
}

test-infra/src/main/java/com/datastax/oss/driver/api/testinfra/ccm/CcmBridge.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
*/
1616
package com.datastax.oss.driver.api.testinfra.ccm;
1717

18-
import static io.netty.util.internal.PlatformDependent.isWindows;
19-
2018
import com.datastax.oss.driver.api.core.Version;
2119
import com.datastax.oss.driver.shaded.guava.common.base.Joiner;
2220
import com.datastax.oss.driver.shaded.guava.common.io.Resources;
@@ -32,6 +30,7 @@
3230
import java.util.Collections;
3331
import java.util.LinkedHashMap;
3432
import java.util.List;
33+
import java.util.Locale;
3534
import java.util.Map;
3635
import java.util.Optional;
3736
import java.util.concurrent.TimeUnit;
@@ -167,6 +166,11 @@ private CcmBridge(
167166
this.dseWorkloads = dseWorkloads;
168167
}
169168

169+
// Copied from Netty's PlatformDependent to avoid the dependency on Netty
170+
private static boolean isWindows() {
171+
return System.getProperty("os.name", "").toLowerCase(Locale.US).contains("win");
172+
}
173+
170174
public Optional<Version> getDseVersion() {
171175
return DSE_ENABLEMENT ? Optional.of(VERSION) : Optional.empty();
172176
}

0 commit comments

Comments
 (0)