Merge pull request #1198 from rmannibucau/rmannibucau/reduce-logservice-overhead
rewrite the CicularBuffer to reduce logservice overhead
diff --git a/tooling/karaf-maven-plugin/pom.xml b/tooling/karaf-maven-plugin/pom.xml
index 4b07966..bbc3865 100644
--- a/tooling/karaf-maven-plugin/pom.xml
+++ b/tooling/karaf-maven-plugin/pom.xml
@@ -43,10 +43,20 @@
</properties>
<dependencies>
-
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>javax.annotation-api</artifactId>
+ <version>${javax.annotation.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.annotation</groupId>
+ <artifactId>jsr250-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java
index 8aa6ba0..60714b5 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/RunMojo.java
@@ -142,6 +142,9 @@
@Parameter(defaultValue = "180000")
private long maximumStartupDuration;
+ @Parameter
+ private List<String> forbiddenDelegationPackages;
+
private static final Pattern mvnPattern = Pattern.compile("mvn:([^/ ]+)/([^/ ]+)/([^/ ]*)(/([^/ ]+)(/([^/ ]+))?)?");
public void execute() throws MojoExecutionException, MojoFailureException {
@@ -194,6 +197,9 @@
throw new ClassNotFoundException(
"avoid to use the classrealm loader which will prevent felix to match its reference");
}
+ if (name != null && forbiddenDelegationPackages != null && forbiddenDelegationPackages.stream().anyMatch(name::startsWith)) {
+ throw new ClassNotFoundException(name);
+ }
return super.loadClass(name, resolve);
}
};
diff --git a/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/RunMojoTest.java b/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/RunMojoTest.java
index 6b8b9c2..aff1a4c 100644
--- a/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/RunMojoTest.java
+++ b/tooling/karaf-maven-plugin/src/test/java/org/apache/karaf/tooling/RunMojoTest.java
@@ -167,7 +167,7 @@
mojo.deploy(context, null);
fail("Expected MojoExecutionException");
} catch (MojoExecutionException e) {
- assertEquals("Project artifact doesn't exist", e.getMessage());
+ assertEquals("No artifact to deploy", e.getMessage());
}
}
@@ -188,7 +188,7 @@
mojo.deploy(context, null);
fail("Expected MojoExecutionException");
} catch (MojoExecutionException e) {
- assertEquals("Project artifact doesn't exist", e.getMessage());
+ assertEquals("No artifact to deploy", e.getMessage());
}
}
@@ -198,6 +198,8 @@
Artifact artifact = mock(Artifact.class);
File artifactFile = mock(File.class);
expect(artifactFile.exists()).andReturn(true).times(2);
+ expect(artifactFile.getAbsolutePath()).andReturn("foo.jar").times(1);
+ expect(artifactFile.toURI()).andReturn(URI.create("file:///foo.jar")).times(1);
replay(artifactFile);
expect(artifact.getFile()).andReturn(artifactFile);
replay(artifact);
@@ -209,7 +211,7 @@
mojo.deploy(context, null);
fail("Expected MojoExecutionException");
} catch (MojoExecutionException e) {
- assertEquals("Packaging jar is not supported", e.getMessage());
+ assertEquals("Can't deploy project artifact in container", e.getMessage());
}
}