upgrade dependencies versions + be more tolerant in scanning
diff --git a/pom.xml b/pom.xml
index 6e6eee8..b006250 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,10 +37,10 @@
<name>Apache Winegrower</name>
<properties>
- <junit.version>5.3.1</junit.version>
+ <junit.version>5.5.2</junit.version>
<osgi.version>7.0.0</osgi.version>
- <slf4j.version>1.7.25</slf4j.version>
- <xbean.version>4.12</xbean.version>
+ <slf4j.version>1.7.28</slf4j.version>
+ <xbean.version>4.15</xbean.version>
<surefire.log.level>INFO</surefire.log.level>
@@ -60,12 +60,7 @@
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-api</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-engine</artifactId>
+ <artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
@@ -75,7 +70,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>27.0-jre</version>
+ <version>28.0-jre</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
@@ -107,13 +102,7 @@
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-api</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-engine</artifactId>
+ <artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
@@ -125,7 +114,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.0</version>
+ <version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
@@ -148,7 +137,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.22.1</version>
+ <version>3.0.0-M3</version>
<configuration>
<systemPropertyVariables>
<org.slf4j.simpleLogger.defaultLogLevel>${surefire.log.level}</org.slf4j.simpleLogger.defaultLogLevel>
@@ -160,7 +149,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
- <version>0.8.2</version>
+ <version>0.8.5</version>
<executions>
<execution>
<id>prepare-agent</id>
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java b/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java
index ae7fe74..5eb650f 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/scanner/StandaloneScanner.java
@@ -65,13 +65,7 @@
this.configuration = configuration;
this.frameworkJar = frameworkJar;
this.loader = Thread.currentThread().getContextClassLoader();
- try {
- this.urls = new UrlSet(ClassLoaders.findUrls(loader))
- .excludeJvm()
- .getUrls();
- } catch (final IOException e) {
- throw new IllegalStateException(e);
- }
+ this.urls = findUrls();
try { // fatjar plugin
providedManifests = list(this.loader.getResources("WINEGROWER-INF/manifests.properties")).stream()
@@ -115,6 +109,18 @@
}
}
+ private List<URL> findUrls() {
+ if (loader == null || System.getProperty("java.home") == null /*graalvm*/ ||
+ Boolean.getBoolean("winegrower.scanner.standalone.skipUrlsScanning")) {
+ return emptyList();
+ }
+ try {
+ return new UrlSet(ClassLoaders.findUrls(loader)).excludeJvm().getUrls();
+ } catch (final IOException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
public Collection<BundleDefinition> findEmbeddedClasses() {
// potentially other scripting languages
return scanGroovy();
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/service/BundleRegistry.java b/winegrower-core/src/main/java/org/apache/winegrower/service/BundleRegistry.java
index 1352de7..44af016 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/service/BundleRegistry.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/service/BundleRegistry.java
@@ -13,7 +13,7 @@
*/
package org.apache.winegrower.service;
-import static org.apache.xbean.finder.util.Files.toFile;
+import static java.util.Optional.ofNullable;
import java.io.File;
import java.util.HashMap;
@@ -22,6 +22,7 @@
import org.apache.winegrower.Ripener;
import org.apache.winegrower.deployer.OSGiBundleLifecycle;
+import org.apache.xbean.finder.util.Files;
public class BundleRegistry {
private final Map<Long, OSGiBundleLifecycle> bundles = new HashMap<>();
@@ -29,10 +30,12 @@
public BundleRegistry(final OSGiServices services, final Ripener.Configuration configuration) {
final String resource = getClass().getName().replace('.', '/') + ".class";
- final File file = toFile(Thread.currentThread().getContextClassLoader().getResource(resource));
- this.framework = file.getName().endsWith(".class") ?
- new File(file.getAbsolutePath().replace(File.separatorChar, '/').substring(0, file.getAbsolutePath().length() - resource.length())):
- file.getAbsoluteFile();
+ this.framework = ofNullable(Thread.currentThread().getContextClassLoader().getResource(resource))
+ .map(Files::toFile)
+ .map(file -> file.getName().endsWith(".class") ?
+ new File(file.getAbsolutePath().replace(File.separatorChar, '/').substring(0, file.getAbsolutePath().length() - resource.length())):
+ file.getAbsoluteFile())
+ .orElse(null);
// ensure we have the framework bundle simulated
final Manifest frameworkManifest = new Manifest();
diff --git a/winegrower-extension/winegrower-build/winegrower-build-common/src/test/java/org/apache/winegrower/extension/build/common/BuildTest.java b/winegrower-extension/winegrower-build/winegrower-build-common/src/test/java/org/apache/winegrower/extension/build/common/BuildTest.java
index 99402b6..51ed02d 100644
--- a/winegrower-extension/winegrower-build/winegrower-build-common/src/test/java/org/apache/winegrower/extension/build/common/BuildTest.java
+++ b/winegrower-extension/winegrower-build/winegrower-build-common/src/test/java/org/apache/winegrower/extension/build/common/BuildTest.java
@@ -62,7 +62,7 @@
assertEquals(11, entries.size());
assertTrue(entries.contains("test-art-winegrower-distribution/bin/winegrower.sh"));
assertTrue(entries.contains("test-art-winegrower-distribution/bin/setenv.sh"));
- assertTrue(entries.contains("test-art-winegrower-distribution/lib/osgi.core-7.0.0.jar"));
- assertTrue(entries.contains("test-art-winegrower-distribution/lib/junit-jupiter-api-5.3.1.jar"));
+ assertTrue(entries.stream().anyMatch(it -> it.startsWith("test-art-winegrower-distribution/lib/osgi.core-")));
+ assertTrue(entries.stream().anyMatch(it -> it.startsWith("test-art-winegrower-distribution/lib/junit-jupiter-api-")));
}
}
diff --git a/winegrower-extension/winegrower-cdi/pom.xml b/winegrower-extension/winegrower-cdi/pom.xml
index a436952..b33f516 100644
--- a/winegrower-extension/winegrower-cdi/pom.xml
+++ b/winegrower-extension/winegrower-cdi/pom.xml
@@ -38,13 +38,13 @@
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jcdi_2.0_spec</artifactId>
- <version>1.0.1</version>
+ <version>1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-interceptor_1.2_spec</artifactId>
- <version>1.0</version>
+ <version>1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -56,7 +56,7 @@
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-annotation_1.3_spec</artifactId>
- <version>1.0</version>
+ <version>1.2</version>
<scope>provided</scope>
</dependency>
@@ -69,7 +69,7 @@
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-se</artifactId>
- <version>2.0.7</version>
+ <version>2.0.12</version>
<scope>test</scope>
</dependency>
</dependencies>