summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-09-04 19:49:27 +0200
committerGitHub <noreply@github.com>2023-09-04 19:49:27 +0200
commit8586e0137c6ec1dc0a9d10b0fcbc5578e122c504 (patch)
tree0d356ae9de3ec1642e6fce735631d60d19a4c787
parent5b60dfc46e42d7c78f68e74f71b76ae8ad41e14d (diff)
parentbedbd44069d0464bbd23a367e144cb32fad4573a (diff)
Merge branch 'master' into bjorncs/move-jersey-out
-rw-r--r--application/pom.xml10
-rw-r--r--cloud-tenant-base-dependencies-enforcer/pom.xml7
-rw-r--r--config-model-fat/pom.xml16
-rw-r--r--configserver-flags/pom.xml2
-rw-r--r--container-core/pom.xml2
-rw-r--r--container-dependencies-enforcer/pom.xml6
-rw-r--r--container-dependency-versions/pom.xml11
-rw-r--r--container-dev/pom.xml7
-rw-r--r--container-messagebus/pom.xml2
-rw-r--r--container-search-and-docproc/pom.xml2
-rw-r--r--container-test/pom.xml5
-rw-r--r--controller-server/pom.xml2
-rw-r--r--dependency-versions/pom.xml6
-rw-r--r--document/pom.xml2
-rw-r--r--eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp65
-rw-r--r--eval/src/vespa/eval/onnx/onnx_wrapper.cpp20
-rw-r--r--flags/pom.xml2
-rw-r--r--jdisc-security-filters/pom.xml5
-rw-r--r--jdisc_core/pom.xml14
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogFormatter.java14
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogListener.java32
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogHandler.java14
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogManager.java103
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogFormatterTestCase.java54
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogListenerTestCase.java46
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/core/ExportPackagesIT.java2
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogHandlerTestCase.java50
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerTestCase.java185
-rw-r--r--jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerIntegrationTest.java30
-rw-r--r--linguistics-components/pom.xml2
-rw-r--r--linguistics/pom.xml2
-rw-r--r--lucene-linguistics/pom.xml2
-rw-r--r--maven-plugins/allowed-maven-dependencies.txt3
-rw-r--r--parent/pom.xml12
-rwxr-xr-xprovided-dependencies/pom.xml2
-rw-r--r--searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/features/onnx_feature.cpp6
-rw-r--r--storage/src/vespa/storage/distributor/activecopy.cpp8
-rw-r--r--testutil/pom.xml2
-rw-r--r--vespa-dependencies-enforcer/allowed-maven-dependencies.txt9
40 files changed, 255 insertions, 525 deletions
diff --git a/application/pom.xml b/application/pom.xml
index bb1ea4b30ee..bbb4b171676 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -87,6 +87,12 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.log</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.osgi</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.opennlp</groupId>
@@ -104,6 +110,10 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
</dependency>
+ <dependency>
+ <groupId>jakarta.inject</groupId>
+ <artifactId>jakarta.inject-api</artifactId>
+ </dependency>
<dependency>
<groupId>com.yahoo.vespa</groupId>
diff --git a/cloud-tenant-base-dependencies-enforcer/pom.xml b/cloud-tenant-base-dependencies-enforcer/pom.xml
index 3a5098b8b4e..8871b8ac55a 100644
--- a/cloud-tenant-base-dependencies-enforcer/pom.xml
+++ b/cloud-tenant-base-dependencies-enforcer/pom.xml
@@ -21,6 +21,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
+ <version>${maven-enforcer-plugin.vespa.version}</version>
<dependencies>
<dependency>
<groupId>com.yahoo.vespa</groupId>
@@ -53,7 +54,7 @@
<include>com.google.guava:failureaccess:[1.0.1, 2):provided</include>
<include>com.google.j2objc:j2objc-annotations:[2.8, 3):provided</include>
- <include>com.google.inject:guice:jar:no_aop:${guice.vespa.version}:provided</include>
+ <include>com.google.inject:guice:jar:${guice.vespa.version}:provided</include>
<include>com.sun.activation:javax.activation:[1.2.0, 2):provided</include>
<include>com.sun.xml.bind:jaxb-core:${jaxb-core.vespa.version}:provided</include>
<include>com.sun.xml.bind:jaxb-impl:${jaxb-impl.vespa.version}:provided</include>
@@ -66,7 +67,6 @@
<include>org.slf4j:log4j-over-slf4j:${slf4j.vespa.version}:provided</include>
<include>org.slf4j:slf4j-api:${slf4j.vespa.version}:provided</include>
<include>org.slf4j:slf4j-jdk14:${slf4j.vespa.version}:provided</include>
- <include>xml-apis:xml-apis:${xml-apis.vespa.version}:provided</include>
<!-- Vespa provided dependencies -->
<include>com.yahoo.vespa:annotations:*:provided</include>
@@ -149,6 +149,7 @@
<include>io.prometheus:simpleclient_tracer_common:${prometheus.client.vespa.version}:test</include>
<include>io.prometheus:simpleclient_tracer_otel:${prometheus.client.vespa.version}:test</include>
<include>io.prometheus:simpleclient_tracer_otel_agent:${prometheus.client.vespa.version}:test</include>
+ <include>jakarta.inject:jakarta.inject-api:${jakarta.inject.vespa.version}:test</include>
<include>junit:junit:${junit4.vespa.version}:test</include>
<include>net.java.dev.jna:jna:${jna.vespa.version}:test</include>
<include>net.openhft:zero-allocation-hashing:jar:${zero-allocation-hashing.vespa.version}:test</include>
@@ -199,8 +200,6 @@
<include>org.junit.vintage:junit-vintage-engine:${junit.vespa.version}:test</include>
<include>org.lz4:lz4-java:${org.lz4.vespa.version}:test</include>
<include>org.opentest4j:opentest4j:${opentest4j.vespa.version}:test</include>
- <include>org.osgi:org.osgi.compendium:[4.1.0, 5):test</include>
- <include>org.osgi:org.osgi.core:[4.1.0, 5):test</include>
<include>xerces:xercesImpl:${xerces.vespa.version}:test</include>
</allowed>
</enforceDependencies>
diff --git a/config-model-fat/pom.xml b/config-model-fat/pom.xml
index adf511faabe..55592897447 100644
--- a/config-model-fat/pom.xml
+++ b/config-model-fat/pom.xml
@@ -98,16 +98,10 @@
javax.security.auth.callback,
javax.security.auth.x500,
javax.security.auth,
- javax.xml.datatype,
- javax.xml.namespace,
- javax.xml.parsers,
- javax.xml.transform,
- javax.xml.xpath,
+ javax.xml.*, <!-- expands to all packages in Java module java.xml -->
org.bouncycastle.*, <!-- expands to all BC packages by Felix plugin -->
- org.w3c.dom.bootstrap,
- org.w3c.dom.ls,
- org.w3c.dom,
- org.xml.sax,
+ org.w3c.dom.*, <!-- expands to all packages in Java module java.xml -->
+ org.xml.sax.*, <!-- expands to all packages in Java module java.xml -->
<!-- TODO: The fat bundle becomes more brittle for each package added below. Use interfaces in model-api instead. -->
com.yahoo.vespa.config,
com.yahoo.vespa.config.buildergen,
@@ -195,7 +189,7 @@
<i>com.google.errorprone:error_prone_annotations:*:*</i>
<i>com.google.guava:failureaccess:*:*</i>
<i>com.google.guava:guava:*:*</i>
- <i>com.google.inject:guice:jar:no_aop:*:*</i>
+ <i>com.google.inject:guice:jar:*:*</i>
<i>com.google.j2objc:j2objc-annotations:*:*</i>
<i>com.google.protobuf:protobuf-java:*:*</i>
<i>com.sun.activation:javax.activation:*:*</i>
@@ -207,6 +201,7 @@
<i>io.prometheus:simpleclient_tracer_common:*:*</i>
<i>io.prometheus:simpleclient_tracer_otel:*:*</i>
<i>io.prometheus:simpleclient_tracer_otel_agent:*:*</i>
+ <i>jakarta.inject:jakarta.inject-api:*:*</i>
<i>javax.inject:javax.inject:*:*</i>
<i>net.openhft:zero-allocation-hashing:*:*</i>
<i>org.antlr:antlr-runtime:*:*</i>
@@ -219,7 +214,6 @@
<i>org.slf4j:slf4j-api:*:*</i>
<i>org.slf4j:slf4j-jdk14:*:*</i>
<i>xerces:xercesImpl:*:*</i>
- <i>xml-apis:xml-apis:*:*</i>
</allowed>
</enforceDependencies>
</rules>
diff --git a/configserver-flags/pom.xml b/configserver-flags/pom.xml
index 02824f2e6e3..02395fc3559 100644
--- a/configserver-flags/pom.xml
+++ b/configserver-flags/pom.xml
@@ -58,7 +58,7 @@
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<scope>provided</scope>
- <classifier>no_aop</classifier>
+
<exclusions>
<exclusion>
<groupId>junit</groupId>
diff --git a/container-core/pom.xml b/container-core/pom.xml
index 8c30dad7e22..549b3ad5953 100644
--- a/container-core/pom.xml
+++ b/container-core/pom.xml
@@ -290,7 +290,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/container-dependencies-enforcer/pom.xml b/container-dependencies-enforcer/pom.xml
index 885be3b6ee6..fa1212a5b12 100644
--- a/container-dependencies-enforcer/pom.xml
+++ b/container-dependencies-enforcer/pom.xml
@@ -73,7 +73,7 @@
<include>com.google.guava:failureaccess:[1.0.1, 2):provided</include>
<include>com.google.j2objc:j2objc-annotations:[2.8, 3):provided</include>
- <include>com.google.inject:guice:jar:no_aop:${guice.vespa.version}:provided</include>
+ <include>com.google.inject:guice:jar:${guice.vespa.version}:provided</include>
<include>com.sun.activation:javax.activation:[1.2.0, 2):provided</include>
<include>com.sun.xml.bind:jaxb-core:${jaxb-core.vespa.version}:provided</include>
<include>com.sun.xml.bind:jaxb-impl:${jaxb-impl.vespa.version}:provided</include>
@@ -86,7 +86,6 @@
<include>org.slf4j:log4j-over-slf4j:${slf4j.vespa.version}:provided</include>
<include>org.slf4j:slf4j-api:${slf4j.vespa.version}:provided</include>
<include>org.slf4j:slf4j-jdk14:${slf4j.vespa.version}:provided</include>
- <include>xml-apis:xml-apis:${xml-apis.vespa.version}:provided</include>
<!-- Vespa provided dependencies -->
<include>com.yahoo.vespa:annotations:*:provided</include>
@@ -163,6 +162,7 @@
<include>io.prometheus:simpleclient_tracer_common:${prometheus.client.vespa.version}:test</include>
<include>io.prometheus:simpleclient_tracer_otel:${prometheus.client.vespa.version}:test</include>
<include>io.prometheus:simpleclient_tracer_otel_agent:${prometheus.client.vespa.version}:test</include>
+ <include>jakarta.inject:jakarta.inject-api:${jakarta.inject.vespa.version}:test</include>
<include>junit:junit:${junit4.vespa.version}:test</include>
<include>net.java.dev.jna:jna:${jna.vespa.version}:test</include>
<include>net.openhft:zero-allocation-hashing:jar:${zero-allocation-hashing.vespa.version}:test</include>
@@ -203,8 +203,6 @@
<include>org.hdrhistogram:HdrHistogram:${hdrhistogram.vespa.version}:test</include>
<include>org.json:json:${org.json.vespa.version}:test</include> <!-- TODO: Remove on Vespa 9 -->
<include>org.lz4:lz4-java:${org.lz4.vespa.version}:test</include>
- <include>org.osgi:org.osgi.compendium:[4.1.0, 5):test</include>
- <include>org.osgi:org.osgi.core:[4.1.0, 5):test</include>
<include>xerces:xercesImpl:${xerces.vespa.version}:test</include>
</allowed>
</enforceDependencies>
diff --git a/container-dependency-versions/pom.xml b/container-dependency-versions/pom.xml
index 8d3ae6aca0e..cf4d0bbe851 100644
--- a/container-dependency-versions/pom.xml
+++ b/container-dependency-versions/pom.xml
@@ -83,12 +83,6 @@
<version>${guice.vespa.version}</version>
</dependency>
<dependency>
- <groupId>com.google.inject</groupId>
- <artifactId>guice</artifactId>
- <version>${guice.vespa.version}</version>
- <classifier>no_aop</classifier>
- </dependency>
- <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging.vespa.version}</version>
@@ -159,11 +153,6 @@
<artifactId>slf4j-jdk14</artifactId>
<version>${slf4j.vespa.version}</version>
</dependency>
- <dependency>
- <groupId>xml-apis</groupId>
- <artifactId>xml-apis</artifactId>
- <version>${xml-apis.vespa.version}</version>
- </dependency>
</dependencies>
</dependencyManagement>
diff --git a/container-dev/pom.xml b/container-dev/pom.xml
index 96aa120d42f..76ed8b1e3d4 100644
--- a/container-dev/pom.xml
+++ b/container-dev/pom.xml
@@ -55,7 +55,12 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+ <exclusions>
+ <exclusion>
+ <groupId>jakarta.inject</groupId>
+ <artifactId>jakarta.inject-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
diff --git a/container-messagebus/pom.xml b/container-messagebus/pom.xml
index 2ad5633b7dc..38a2c8e2b78 100644
--- a/container-messagebus/pom.xml
+++ b/container-messagebus/pom.xml
@@ -19,7 +19,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/container-search-and-docproc/pom.xml b/container-search-and-docproc/pom.xml
index 71d547ecacd..3137fd449a4 100644
--- a/container-search-and-docproc/pom.xml
+++ b/container-search-and-docproc/pom.xml
@@ -101,7 +101,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/container-test/pom.xml b/container-test/pom.xml
index a22d0b59ace..9c6fe8025a2 100644
--- a/container-test/pom.xml
+++ b/container-test/pom.xml
@@ -115,6 +115,11 @@
<groupId>org.lz4</groupId>
<artifactId>lz4-java</artifactId>
</dependency>
+ <dependency>
+ <groupId>jakarta.inject</groupId>
+ <artifactId>jakarta.inject-api</artifactId>
+ <version>${jakarta.inject.vespa.version}</version>
+ </dependency>
<!-- START JETTY embedded jars -->
<dependency>
diff --git a/controller-server/pom.xml b/controller-server/pom.xml
index 3c3c93735e7..0fcd55eb7d3 100644
--- a/controller-server/pom.xml
+++ b/controller-server/pom.xml
@@ -91,7 +91,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
<scope>provided</scope>
</dependency>
diff --git a/dependency-versions/pom.xml b/dependency-versions/pom.xml
index 431eed5321a..fd93f11b2dd 100644
--- a/dependency-versions/pom.xml
+++ b/dependency-versions/pom.xml
@@ -36,9 +36,10 @@
<commons-logging.vespa.version>1.2</commons-logging.vespa.version> <!-- This version is exported by jdisc via jcl-over-slf4j. -->
<error-prone-annotations.vespa.version>2.21.1</error-prone-annotations.vespa.version>
<guava.vespa.version>32.1.2-jre</guava.vespa.version>
- <guice.vespa.version>4.2.3</guice.vespa.version>
+ <guice.vespa.version>6.0.0</guice.vespa.version>
<jackson2.vespa.version>2.15.2</jackson2.vespa.version>
<jackson-databind.vespa.version>2.15.2</jackson-databind.vespa.version>
+ <jakarta.inject.vespa.version>2.0.1</jakarta.inject.vespa.version>
<javax.inject.vespa.version>1</javax.inject.vespa.version>
<javax.servlet-api.vespa.version>3.1.0</javax.servlet-api.vespa.version>
<javax.ws.rs-api.vespa.version>2.1.1</javax.ws.rs-api.vespa.version>
@@ -46,7 +47,6 @@
<jaxb-core.vespa.version>2.3.0.1</jaxb-core.vespa.version>
<jaxb-impl.vespa.version>2.3.0</jaxb-impl.vespa.version>
<slf4j.vespa.version>1.7.36</slf4j.vespa.version>
- <xml-apis.vespa.version>1.4.01</xml-apis.vespa.version>
<!-- END Dependencies available from the Jdisc container -->
@@ -89,7 +89,7 @@
<dropwizard.metrics.vespa.version>4.2.19</dropwizard.metrics.vespa.version>
<eclipse-collections.vespa.version>11.1.0</eclipse-collections.vespa.version>
<felix.vespa.version>7.0.5</felix.vespa.version>
- <felix.log.vespa.version>1.0.1</felix.log.vespa.version>
+ <felix.log.vespa.version>1.3.0</felix.log.vespa.version>
<findbugs.vespa.version>3.0.2</findbugs.vespa.version> <!-- Should be kept in sync with guava -->
<hamcrest.vespa.version>2.2</hamcrest.vespa.version>
<hdrhistogram.vespa.version>2.1.12</hdrhistogram.vespa.version>
diff --git a/document/pom.xml b/document/pom.xml
index 5db432d2447..2b13a4ace4f 100644
--- a/document/pom.xml
+++ b/document/pom.xml
@@ -65,7 +65,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp b/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp
index a3aa7cbb32f..03db333d582 100644
--- a/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp
+++ b/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp
@@ -9,6 +9,7 @@
#include <vespa/vespalib/util/require.h>
#include <vespa/vespalib/util/guard.h>
#include <vespa/vespalib/util/stringfmt.h>
+#include <charconv>
using vespalib::make_string_short::fmt;
@@ -20,7 +21,12 @@ using vespalib::FilePointer;
using namespace vespalib::eval;
using namespace vespalib::eval::test;
-struct MyError {
+struct MyError : public std::exception {
+ explicit MyError(vespalib::stringref m) :
+ std::exception(),
+ msg(m)
+ {}
+ const char * what() const noexcept override { return msg.c_str(); }
vespalib::string msg;
};
@@ -47,17 +53,42 @@ void extract(const vespalib::string &str, const vespalib::string &prefix, vespal
dst = str.substr(pos);
}
}
+struct MemoryUsage {
+ size_t size;
+ size_t rss;
+};
-void report_memory_usage(const vespalib::string &desc) {
- vespalib::string vm_size = "unknown";
- vespalib::string vm_rss = "unknown";
- vespalib::string line;
+static const vespalib::string UNKNOWN = "unknown";
+
+size_t convert(const vespalib::string & s) {
+ if (s == UNKNOWN) return 0;
+ size_t v(0);
+ size_t end = s.find("kB");
+ auto [ptr,ec] = std::from_chars(s.data(), s.data()+std::min(s.size(), end), v, 10);
+ if (ec != std::errc()) {
+ throw std::runtime_error(fmt("Bad format : '%s' at '%s'", s.c_str(), ptr));
+ }
+ if (end == vespalib::string::npos) {
+ throw std::runtime_error(fmt("Bad format : %s", s.c_str()));
+ }
+ return v * 1024;
+}
+
+MemoryUsage extract_memory_usage() {
+ vespalib::string vm_size = UNKNOWN;
+ vespalib::string vm_rss = UNKNOWN;
FilePointer file(fopen("/proc/self/status", "r"));
+ vespalib::string line;
while (read_line(file, line)) {
extract(line, "VmSize:", vm_size);
extract(line, "VmRSS:", vm_rss);
}
- fprintf(stderr, "vm_size: %s, vm_rss: %s (%s)\n", vm_size.c_str(), vm_rss.c_str(), desc.c_str());
+ return {convert(vm_size), convert(vm_rss)};
+}
+
+void report_memory_usage(const vespalib::string &desc) {
+ MemoryUsage vm = extract_memory_usage();
+ fprintf(stderr, "vm_size: %zu kB, vm_rss: %zu kB (%s)\n", vm.size/1024, vm.rss/1024, desc.c_str());
}
struct Options {
@@ -118,7 +149,7 @@ void dump_wire_info(const Onnx::WireInfo &wire) {
struct MakeInputType {
Options &opts;
std::map<vespalib::string,int> symbolic_sizes;
- MakeInputType(Options &opts_in) : opts(opts_in), symbolic_sizes() {}
+ explicit MakeInputType(Options &opts_in) : opts(opts_in), symbolic_sizes() {}
ValueType operator()(const Onnx::TensorInfo &info) {
int d = 0;
std::vector<ValueType::Dimension> dim_list;
@@ -229,30 +260,32 @@ int probe_types() {
if (!JsonFormat::decode(std_in, params)) {
throw MyError{"invalid json"};
}
+ MemoryUsage vm_before = extract_memory_usage();
Slime result;
auto &root = result.setObject();
auto &types = root.setObject("outputs");
- Onnx model(params["model"].asString().make_string(), Onnx::Optimize::DISABLE);
+ Onnx model(params["model"].asString().make_string(), Onnx::Optimize::ENABLE);
Onnx::WirePlanner planner;
- for (size_t i = 0; i < model.inputs().size(); ++i) {
- auto spec = params["inputs"][model.inputs()[i].name].asString().make_string();
+ for (const auto & input : model.inputs()) {
+ auto spec = params["inputs"][input.name].asString().make_string();
auto input_type = ValueType::from_spec(spec);
if (input_type.is_error()) {
- if (!params["inputs"][model.inputs()[i].name].valid()) {
- throw MyError{fmt("missing type for model input '%s'",
- model.inputs()[i].name.c_str())};
+ if (!params["inputs"][input.name].valid()) {
+ throw MyError(fmt("missing type for model input '%s'", input.name.c_str()));
} else {
- throw MyError{fmt("invalid type for model input '%s': '%s'",
- model.inputs()[i].name.c_str(), spec.c_str())};
+ throw MyError(fmt("invalid type for model input '%s': '%s'",input.name.c_str(), spec.c_str()));
}
}
- bind_input(planner, model.inputs()[i], input_type);
+ bind_input(planner, input, input_type);
}
planner.prepare_output_types(model);
for (const auto &output: model.outputs()) {
auto output_type = make_output(planner, output);
types.setString(output.name, output_type.to_spec());
}
+ MemoryUsage vm_after = extract_memory_usage();
+ root.setLong("vm_size", vm_after.size - vm_before.size);
+ root.setLong("vm_rss", vm_after.rss - vm_before.rss);
write_compact(result, std_out);
return 0;
}
diff --git a/eval/src/vespa/eval/onnx/onnx_wrapper.cpp b/eval/src/vespa/eval/onnx/onnx_wrapper.cpp
index 8f9450c2660..89d88dcc32c 100644
--- a/eval/src/vespa/eval/onnx/onnx_wrapper.cpp
+++ b/eval/src/vespa/eval/onnx/onnx_wrapper.cpp
@@ -8,10 +8,6 @@
#include <vespa/vespalib/util/stringfmt.h>
#include <vespa/vespalib/util/typify.h>
#include <vespa/vespalib/util/classname.h>
-#include <assert.h>
-#include <cmath>
-#include <stdlib.h>
-#include <stdio.h>
#include <type_traits>
#include <vespa/log/log.h>
@@ -171,15 +167,15 @@ private:
public:
OnnxString(const OnnxString &rhs) = delete;
OnnxString &operator=(const OnnxString &rhs) = delete;
- OnnxString(OnnxString &&rhs) = default;
- OnnxString &operator=(OnnxString &&rhs) = default;
+ OnnxString(OnnxString &&rhs) noexcept = default;
+ OnnxString &operator=(OnnxString &&rhs) noexcept = default;
const char *get() const { return _str.get(); }
~OnnxString() = default;
static OnnxString get_input_name(const Ort::Session &session, size_t idx) {
- return OnnxString(session.GetInputNameAllocated(idx, _alloc));
+ return {session.GetInputNameAllocated(idx, _alloc)};
}
static OnnxString get_output_name(const Ort::Session &session, size_t idx) {
- return OnnxString(session.GetOutputNameAllocated(idx, _alloc));
+ return {session.GetOutputNameAllocated(idx, _alloc)};
}
};
Ort::AllocatorWithDefaultOptions OnnxString::_alloc;
@@ -216,7 +212,7 @@ Onnx::TensorType get_type_of(const Ort::Value &value) {
throw Ort::Exception("[onnx wrapper] actual value has unknown dimension size", ORT_FAIL);
}
}
- return Onnx::TensorType(make_element_type(element_type), shape);
+ return {make_element_type(element_type), shape};
}
std::vector<int64_t> extract_sizes(const ValueType &type) {
@@ -306,7 +302,7 @@ Onnx::WirePlanner::do_model_probe(const Onnx &model)
result_values.emplace_back(nullptr);
}
Ort::RunOptions run_opts(nullptr);
- Ort::Session &session = const_cast<Ort::Session&>(model._session);
+ auto &session = const_cast<Ort::Session&>(model._session);
session.Run(run_opts,
model._input_name_refs.data(), param_values.data(), param_values.size(),
model._output_name_refs.data(), result_values.data(), result_values.size());
@@ -554,7 +550,7 @@ Onnx::EvalContext::EvalContext(const Onnx &model, const WireInfo &wire_info)
const auto &vespa = _wire_info.vespa_inputs[i];
const auto &onnx = _wire_info.onnx_inputs[i];
if (is_same_type(vespa.cell_type(), onnx.elements)) {
- _param_values.push_back(Ort::Value(nullptr));
+ _param_values.emplace_back(nullptr);
_param_binders.push_back(SelectAdaptParam()(vespa.cell_type()));
} else {
_param_values.push_back(CreateOnnxTensor()(onnx, _alloc));
@@ -587,7 +583,7 @@ Onnx::EvalContext::bind_param(size_t i, const Value &param)
void
Onnx::EvalContext::eval()
{
- Ort::Session &session = const_cast<Ort::Session&>(_model._session);
+ auto &session = const_cast<Ort::Session&>(_model._session);
Ort::RunOptions run_opts(nullptr);
session.Run(run_opts,
_model._input_name_refs.data(), _param_values.data(), _param_values.size(),
diff --git a/flags/pom.xml b/flags/pom.xml
index 0bfb02b1f32..816e5416cec 100644
--- a/flags/pom.xml
+++ b/flags/pom.xml
@@ -51,7 +51,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
<scope>provided</scope>
</dependency>
diff --git a/jdisc-security-filters/pom.xml b/jdisc-security-filters/pom.xml
index 3440f9089d7..8a456d06a40 100644
--- a/jdisc-security-filters/pom.xml
+++ b/jdisc-security-filters/pom.xml
@@ -69,6 +69,11 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>jakarta.inject</groupId>
+ <artifactId>jakarta.inject-api</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/jdisc_core/pom.xml b/jdisc_core/pom.xml
index 4471269358a..9bc27cd4e77 100644
--- a/jdisc_core/pom.xml
+++ b/jdisc_core/pom.xml
@@ -36,11 +36,6 @@
<!-- jaxb end -->
<dependency>
- <!-- Newer version than the one in rt.jar, including the ElementTraversal class needed by Xerces (Aug 2015, still valid Sep 2017) -->
- <groupId>xml-apis</groupId>
- <artifactId>xml-apis</artifactId>
- </dependency>
- <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
@@ -87,7 +82,6 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier> <!-- Non-AOP version required for Java 8 compatibility -->
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
@@ -105,11 +99,7 @@
<exclusions>
<exclusion>
<groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
+ <artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
@@ -217,7 +207,7 @@
<!-- WARNING: Removing jars from the list below usually requires a new major Vespa version. -->
<!-- NOTE: This list must be kept in sync with ExportPackagesIT.java -->
<argument>__REPLACE_VERSION__${project.build.directory}/dependency/guava.jar</argument>
- <argument>${project.build.directory}/dependency/guice-no_aop.jar</argument>
+ <argument>${project.build.directory}/dependency/guice.jar</argument>
<argument>${project.build.directory}/dependency/slf4j-api.jar</argument>
<argument>${project.build.directory}/dependency/slf4j-jdk14.jar</argument>
<argument>${project.build.directory}/dependency/jcl-over-slf4j.jar</argument>
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogFormatter.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogFormatter.java
index 080f3d3f74b..f7f53d304df 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogFormatter.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogFormatter.java
@@ -4,7 +4,7 @@ package com.yahoo.jdisc.core;
import org.osgi.framework.Bundle;
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogEntry;
-import org.osgi.service.log.LogService;
+import org.osgi.service.log.LogLevel;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -86,17 +86,17 @@ class ConsoleLogFormatter {
}
private StringBuilder formatLevel(LogEntry entry, StringBuilder out) {
- switch (entry.getLevel()) {
- case LogService.LOG_ERROR:
+ switch (entry.getLogLevel()) {
+ case ERROR:
out.append("error");
break;
- case LogService.LOG_WARNING:
+ case WARN:
out.append("warning");
break;
- case LogService.LOG_INFO:
+ case INFO:
out.append("info");
break;
- case LogService.LOG_DEBUG:
+ case DEBUG:
out.append("debug");
break;
default:
@@ -117,7 +117,7 @@ class ConsoleLogFormatter {
private StringBuilder formatException(LogEntry entry, StringBuilder out) {
Throwable t = entry.getException();
if (t != null) {
- if (entry.getLevel() == LogService.LOG_INFO) {
+ if (entry.getLogLevel() == LogLevel.INFO) {
out.append(": ");
String msg = t.getMessage();
if (msg != null) {
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogListener.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogListener.java
index 2cfa604109b..1d872bbcb64 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogListener.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/ConsoleLogListener.java
@@ -3,62 +3,64 @@ package com.yahoo.jdisc.core;
import com.yahoo.net.HostName;
import org.osgi.service.log.LogEntry;
+import org.osgi.service.log.LogLevel;
import org.osgi.service.log.LogListener;
import java.io.PrintStream;
+import java.util.Optional;
/**
* @author Vikas Panwar
*/
class ConsoleLogListener implements LogListener {
- public static final int DEFAULT_LOG_LEVEL = Integer.MAX_VALUE;
+ public static final LogLevel DEFAULT_LOG_LEVEL = LogLevel.TRACE;
private final ConsoleLogFormatter formatter;
private final PrintStream out;
- private final int maxLevel;
+ private final LogLevel maxLevel;
ConsoleLogListener(PrintStream out, String serviceName, String logLevel) {
this.out = out;
this.formatter = new ConsoleLogFormatter(getHostname(), getProcessId(), serviceName);
- this.maxLevel = parseLogLevel(logLevel);
+ this.maxLevel = parseLogLevel(logLevel).orElse(null);
}
@Override
public void logged(LogEntry entry) {
- if (entry.getLevel() > maxLevel) {
+ if (maxLevel == null || !maxLevel.implies(entry.getLogLevel())) {
return;
}
out.println(formatter.formatEntry(entry));
}
- public static int parseLogLevel(String logLevel) {
+ public static Optional<LogLevel> parseLogLevel(String logLevel) {
if (logLevel == null || logLevel.isEmpty()) {
- return DEFAULT_LOG_LEVEL;
+ return Optional.of(DEFAULT_LOG_LEVEL);
}
if (logLevel.equalsIgnoreCase("OFF")) {
- return Integer.MIN_VALUE;
+ return Optional.empty();
}
if (logLevel.equalsIgnoreCase("ERROR")) {
- return 1;
+ return Optional.of(LogLevel.ERROR);
}
if (logLevel.equalsIgnoreCase("WARNING")) {
- return 2;
+ return Optional.of(LogLevel.WARN);
}
if (logLevel.equalsIgnoreCase("INFO")) {
- return 3;
+ return Optional.of(LogLevel.INFO);
}
if (logLevel.equalsIgnoreCase("DEBUG")) {
- return 4;
+ return Optional.of(LogLevel.DEBUG);
}
if (logLevel.equalsIgnoreCase("ALL")) {
- return Integer.MAX_VALUE;
+ return Optional.of(LogLevel.TRACE);
}
try {
- return Integer.valueOf(logLevel);
- } catch (NumberFormatException e) {
+ return Optional.of(LogLevel.values()[Integer.parseInt(logLevel)]);
+ } catch (NumberFormatException | IndexOutOfBoundsException e) {
// fall through
}
- return DEFAULT_LOG_LEVEL;
+ return Optional.of(DEFAULT_LOG_LEVEL);
}
public static ConsoleLogListener newInstance() {
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogHandler.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogHandler.java
index 48fdb2a0293..989bc26dd85 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogHandler.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogHandler.java
@@ -4,6 +4,7 @@ package com.yahoo.jdisc.core;
import com.google.common.collect.ImmutableMap;
import org.osgi.framework.Bundle;
import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogLevel;
import org.osgi.service.log.LogService;
import java.util.Dictionary;
@@ -45,8 +46,9 @@ class OsgiLogHandler extends Handler {
}
@Override
+ @SuppressWarnings("deprecation")
public void publish(LogRecord record) {
- logService.log(new LogRecordReference(record), toServiceLevel(record.getLevel()), record.getMessage(),
+ logService.log(new LogRecordReference(record), toServiceLevel(record.getLevel()).ordinal(), record.getMessage(),
record.getThrown());
}
@@ -60,22 +62,22 @@ class OsgiLogHandler extends Handler {
// empty
}
- public static int toServiceLevel(Level level) {
+ public static LogLevel toServiceLevel(Level level) {
int val = level.intValue();
if (val >= Level.SEVERE.intValue()) {
- return LogService.LOG_ERROR;
+ return LogLevel.ERROR;
}
if (val >= Level.WARNING.intValue()) {
- return LogService.LOG_WARNING;
+ return LogLevel.WARN;
}
if (val >= Level.INFO.intValue()) {
- return LogService.LOG_INFO;
+ return LogLevel.INFO;
}
// Level.CONFIG
// Level.FINE
// Level.FINER
// Level.FINEST
- return LogService.LOG_DEBUG;
+ return LogLevel.DEBUG;
}
private static <T> Map<String, T> createDictionary(T[] in) {
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogManager.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogManager.java
deleted file mode 100644
index 0530d63fe7a..00000000000
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/OsgiLogManager.java
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.jdisc.core;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.log.LogService;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.logging.Handler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * TODO: unused, remove (not public api)
- *
- * @author Simon Thoresen Hult
- */
-class OsgiLogManager implements LogService {
-
- private static final Object globalLock = new Object();
- private final CopyOnWriteArrayList<LogService> services = new CopyOnWriteArrayList<>();
- private final boolean configureLogLevel;
- private ServiceTracker<LogService,LogService> tracker;
-
- OsgiLogManager(boolean configureLogLevel) {
- this.configureLogLevel = configureLogLevel;
- }
-
- public void install(BundleContext osgiContext) {
- if (tracker != null) {
- throw new IllegalStateException("OsgiLogManager already installed.");
- }
- tracker = new ServiceTracker<>(osgiContext, LogService.class, new ServiceTrackerCustomizer<>() {
-
- @Override
- public LogService addingService(ServiceReference<LogService> reference) {
- LogService service = osgiContext.getService(reference);
- services.add(service);
- return service;
- }
-
- @Override
- public void modifiedService(ServiceReference<LogService> reference, LogService service) {
-
- }
-
- @Override
- public void removedService(ServiceReference<LogService> reference, LogService service) {
- services.remove(service);
- }
- });
- tracker.open();
- synchronized (globalLock) {
- Logger root = Logger.getLogger("");
- if (configureLogLevel) {
- root.setLevel(Level.ALL);
- }
- for (Handler handler : root.getHandlers()) {
- root.removeHandler(handler);
- }
- root.addHandler(new OsgiLogHandler(this));
- }
- }
-
- public boolean uninstall() {
- if (tracker == null) {
- return false;
- }
- tracker.close(); // implicitly clears the services array
- tracker = null;
- return true;
- }
-
- @Override
- public void log(int level, String message) {
- log(null, level, message, null);
- }
-
- @Override
- public void log(int level, String message, Throwable throwable) {
- log(null, level, message, throwable);
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public void log(ServiceReference serviceRef, int level, String message) {
- log(serviceRef, level, message, null);
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public void log(ServiceReference serviceRef, int level, String message, Throwable throwable) {
- for (LogService obj : services) {
- obj.log(serviceRef, level, message, throwable);
- }
- }
-
- public static OsgiLogManager newInstance() {
- return new OsgiLogManager(System.getProperty("java.util.logging.config.file") == null);
- }
-}
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogFormatterTestCase.java b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogFormatterTestCase.java
index 64130ddc125..4376ccb6c7e 100644
--- a/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogFormatterTestCase.java
+++ b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogFormatterTestCase.java
@@ -6,7 +6,7 @@ import org.mockito.Mockito;
import org.osgi.framework.Bundle;
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogEntry;
-import org.osgi.service.log.LogService;
+import org.osgi.service.log.LogLevel;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -22,14 +22,14 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class ConsoleLogFormatterTestCase {
private static final ConsoleLogFormatter SIMPLE_FORMATTER = new ConsoleLogFormatter(null, null, null);
- private static final LogEntry SIMPLE_ENTRY = new MyEntry(0, 0, null);
+ private static final LogEntry SIMPLE_ENTRY = new MyEntry(0, LogLevel.AUDIT, null);
// TODO: Should (at least) use ConsoleLogFormatter.ABSENCE_REPLACEMENT instead of literal '-'. See ticket 7128315.
@Test
void requireThatMillisecondsArePadded() {
for (int i = 0; i < 10000; ++i) {
- LogEntry entry = new MyEntry(i, 0, null);
+ LogEntry entry = new MyEntry(i, LogLevel.AUDIT, null);
Instant instant = Instant.ofEpochMilli(i);
assertEquals(String.format("%d.%06d\t-\t-\t-\t-\tunknown\t", instant.getEpochSecond(), instant.getNano() / 1000),
SIMPLE_FORMATTER.formatEntry(entry));
@@ -70,7 +70,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatProcessIdIncludesThreadIdWhenAvailable() {
- LogEntry entry = new MyEntry(0, 0, null).putProperty("THREAD_ID", "threadId");
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, null).putProperty("THREAD_ID", "threadId");
assertEquals("0.000000\t-\tprocessId/threadId\t-\t-\tunknown\t",
new ConsoleLogFormatter(null, "processId", null).formatEntry(entry));
}
@@ -93,7 +93,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatBundleNameIsIncluded() {
- LogEntry entry = new MyEntry(0, 0, null).setBundleSymbolicName("bundleName");
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, null).setBundleSymbolicName("bundleName");
assertEquals("0.000000\t-\t-\t-\tbundleName\tunknown\t",
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -106,7 +106,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatLoggerNameIsIncluded() {
- LogEntry entry = new MyEntry(0, 0, null).putProperty("LOGGER_NAME", "loggerName");
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, null).putProperty("LOGGER_NAME", "loggerName");
assertEquals("0.000000\t-\t-\t-\t/loggerName\tunknown\t",
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -119,7 +119,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatBundleAndLoggerNameIsCombined() {
- LogEntry entry = new MyEntry(0, 0, null).setBundleSymbolicName("bundleName")
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, null).setBundleSymbolicName("bundleName")
.putProperty("LOGGER_NAME", "loggerName");
assertEquals("0.000000\t-\t-\t-\tbundleName/loggerName\tunknown\t",
SIMPLE_FORMATTER.formatEntry(entry));
@@ -129,34 +129,32 @@ public class ConsoleLogFormatterTestCase {
void requireThatLevelNameIsIncluded() {
ConsoleLogFormatter formatter = SIMPLE_FORMATTER;
assertEquals("0.000000\t-\t-\t-\t-\terror\t",
- formatter.formatEntry(new MyEntry(0, LogService.LOG_ERROR, null)));
+ formatter.formatEntry(new MyEntry(0, LogLevel.ERROR, null)));
assertEquals("0.000000\t-\t-\t-\t-\twarning\t",
- formatter.formatEntry(new MyEntry(0, LogService.LOG_WARNING, null)));
+ formatter.formatEntry(new MyEntry(0, LogLevel.WARN, null)));
assertEquals("0.000000\t-\t-\t-\t-\tinfo\t",
- formatter.formatEntry(new MyEntry(0, LogService.LOG_INFO, null)));
+ formatter.formatEntry(new MyEntry(0, LogLevel.INFO, null)));
assertEquals("0.000000\t-\t-\t-\t-\tdebug\t",
- formatter.formatEntry(new MyEntry(0, LogService.LOG_DEBUG, null)));
- assertEquals("0.000000\t-\t-\t-\t-\tunknown\t",
- formatter.formatEntry(new MyEntry(0, 69, null)));
+ formatter.formatEntry(new MyEntry(0, LogLevel.DEBUG, null)));
}
@Test
void requireThatMessageIsIncluded() {
- LogEntry entry = new MyEntry(0, 0, "message");
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, "message");
assertEquals("0.000000\t-\t-\t-\t-\tunknown\tmessage",
SIMPLE_FORMATTER.formatEntry(entry));
}
@Test
void requireThatMessageIsOptional() {
- LogEntry entry = new MyEntry(0, 0, null);
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, null);
assertEquals("0.000000\t-\t-\t-\t-\tunknown\t",
SIMPLE_FORMATTER.formatEntry(entry));
}
@Test
void requireThatMessageIsEscaped() {
- LogEntry entry = new MyEntry(0, 0, "\\\n\r\t");
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, "\\\n\r\t");
assertEquals("0.000000\t-\t-\t-\t-\tunknown\t\\\\\\n\\r\\t",
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -164,7 +162,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatExceptionIsIncluded() {
Throwable t = new Throwable();
- LogEntry entry = new MyEntry(0, 0, null).setException(t);
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, null).setException(t);
assertEquals("0.000000\t-\t-\t-\t-\tunknown\t\\n" + formatThrowable(t),
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -172,7 +170,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatExceptionIsEscaped() {
Throwable t = new Throwable("\\\n\r\t");
- LogEntry entry = new MyEntry(0, 0, null).setException(t);
+ LogEntry entry = new MyEntry(0, LogLevel.AUDIT, null).setException(t);
assertEquals("0.000000\t-\t-\t-\t-\tunknown\t\\n" + formatThrowable(t),
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -180,7 +178,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatExceptionIsSimplifiedForInfoEntries() {
Throwable t = new Throwable("exception");
- LogEntry entry = new MyEntry(0, LogService.LOG_INFO, "entry").setException(t);
+ LogEntry entry = new MyEntry(0, LogLevel.INFO, "entry").setException(t);
assertEquals("0.000000\t-\t-\t-\t-\tinfo\tentry: exception",
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -188,7 +186,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatSimplifiedExceptionIsEscaped() {
Throwable t = new Throwable("\\\n\r\t");
- LogEntry entry = new MyEntry(0, LogService.LOG_INFO, "entry").setException(t);
+ LogEntry entry = new MyEntry(0, LogLevel.INFO, "entry").setException(t);
assertEquals("0.000000\t-\t-\t-\t-\tinfo\tentry: \\\\\\n\\r\\t",
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -196,7 +194,7 @@ public class ConsoleLogFormatterTestCase {
@Test
void requireThatSimplifiedExceptionMessageIsOptional() {
Throwable t = new Throwable();
- LogEntry entry = new MyEntry(0, LogService.LOG_INFO, "entry").setException(t);
+ LogEntry entry = new MyEntry(0, LogLevel.INFO, "entry").setException(t);
assertEquals("0.000000\t-\t-\t-\t-\tinfo\tentry: java.lang.Throwable",
SIMPLE_FORMATTER.formatEntry(entry));
}
@@ -210,13 +208,13 @@ public class ConsoleLogFormatterTestCase {
private static class MyEntry implements LogEntry {
final String message;
- final int level;
+ final LogLevel level;
final long time;
Bundle bundle = null;
ServiceReference<?> serviceReference = null;
Throwable exception;
- MyEntry(long time, int level, String message) {
+ MyEntry(long time, LogLevel level, String message) {
this.message = message;
this.level = level;
this.time = time;
@@ -244,9 +242,15 @@ public class ConsoleLogFormatterTestCase {
return time;
}
- @Override
+ @Override public LogLevel getLogLevel() { return level; }
+ @Override public String getLoggerName() { return null; }
+ @Override public long getSequence() { return 0; }
+ @Override public String getThreadInfo() { return null; }
+ @Override public StackTraceElement getLocation() { return null; }
+
+ @Override @SuppressWarnings("deprecation")
public int getLevel() {
- return level;
+ return level.ordinal();
}
@Override
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogListenerTestCase.java b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogListenerTestCase.java
index 0efefc21a2f..88d73f32550 100644
--- a/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogListenerTestCase.java
+++ b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ConsoleLogListenerTestCase.java
@@ -5,11 +5,12 @@ import org.junit.jupiter.api.Test;
import org.osgi.framework.Bundle;
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogEntry;
+import org.osgi.service.log.LogLevel;
import org.osgi.service.log.LogListener;
-import org.osgi.service.log.LogService;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
+import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -23,42 +24,35 @@ public class ConsoleLogListenerTestCase {
@Test
void requireThatLogLevelParserKnowsOsgiLogLevels() {
- assertEquals(LogService.LOG_ERROR, ConsoleLogListener.parseLogLevel("ERROR"));
- assertEquals(LogService.LOG_WARNING, ConsoleLogListener.parseLogLevel("WARNING"));
- assertEquals(LogService.LOG_INFO, ConsoleLogListener.parseLogLevel("INFO"));
- assertEquals(LogService.LOG_DEBUG, ConsoleLogListener.parseLogLevel("DEBUG"));
+ assertEquals(LogLevel.ERROR, ConsoleLogListener.parseLogLevel("ERROR").orElseThrow());
+ assertEquals(LogLevel.WARN, ConsoleLogListener.parseLogLevel("WARNING").orElseThrow());
+ assertEquals(LogLevel.INFO, ConsoleLogListener.parseLogLevel("INFO").orElseThrow());
+ assertEquals(LogLevel.DEBUG, ConsoleLogListener.parseLogLevel("DEBUG").orElseThrow());
}
@Test
void requireThatLogLevelParserKnowsOff() {
- assertEquals(Integer.MIN_VALUE, ConsoleLogListener.parseLogLevel("OFF"));
+ assertEquals(Optional.empty(), ConsoleLogListener.parseLogLevel("OFF"));
}
@Test
void requireThatLogLevelParserKnowsAll() {
- assertEquals(Integer.MAX_VALUE, ConsoleLogListener.parseLogLevel("ALL"));
- }
-
- @Test
- void requireThatLogLevelParserKnowsIntegers() {
- for (int i = -69; i < 69; ++i) {
- assertEquals(i, ConsoleLogListener.parseLogLevel(String.valueOf(i)));
- }
+ assertEquals(LogLevel.TRACE, ConsoleLogListener.parseLogLevel("ALL").orElseThrow());
}
@Test
void requireThatLogLevelParserErrorsReturnDefault() {
- assertEquals(ConsoleLogListener.DEFAULT_LOG_LEVEL, ConsoleLogListener.parseLogLevel(null));
- assertEquals(ConsoleLogListener.DEFAULT_LOG_LEVEL, ConsoleLogListener.parseLogLevel(""));
- assertEquals(ConsoleLogListener.DEFAULT_LOG_LEVEL, ConsoleLogListener.parseLogLevel("foo"));
+ assertEquals(ConsoleLogListener.DEFAULT_LOG_LEVEL, ConsoleLogListener.parseLogLevel(null).orElseThrow());
+ assertEquals(ConsoleLogListener.DEFAULT_LOG_LEVEL, ConsoleLogListener.parseLogLevel("").orElseThrow());
+ assertEquals(ConsoleLogListener.DEFAULT_LOG_LEVEL, ConsoleLogListener.parseLogLevel("foo").orElseThrow());
}
@Test
void requireThatLogEntryWithLevelAboveThresholdIsNotOutput() {
ByteArrayOutputStream out = new ByteArrayOutputStream();
LogListener listener = new ConsoleLogListener(new PrintStream(out), null, "5");
- for (int i = 0; i < 10; ++i) {
- listener.logged(new MyEntry(0, i, "message"));
+ for (LogLevel l : LogLevel.values()) {
+ listener.logged(new MyEntry(0, l, "message"));
}
// TODO: Should use ConsoleLogFormatter.ABSENCE_REPLACEMENT instead of literal '-'. See ticket 7128315.
assertEquals("0.000000\t" + HOSTNAME + "\t" + PROCESS_ID + "\t-\t-\tunknown\tmessage\n" +
@@ -73,10 +67,10 @@ public class ConsoleLogListenerTestCase {
private static class MyEntry implements LogEntry {
final String message;
- final int level;
+ final LogLevel level;
final long time;
- MyEntry(long time, int level, String message) {
+ MyEntry(long time, LogLevel level, String message) {
this.message = message;
this.level = level;
this.time = time;
@@ -87,9 +81,15 @@ public class ConsoleLogListenerTestCase {
return time;
}
- @Override
+ @Override public LogLevel getLogLevel() { return level; }
+ @Override public String getLoggerName() { return null; }
+ @Override public long getSequence() { return 0; }
+ @Override public String getThreadInfo() { return null; }
+ @Override public StackTraceElement getLocation() { return null; }
+
+ @Override @SuppressWarnings("deprecation")
public int getLevel() {
- return level;
+ return level.ordinal();
}
@Override
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/core/ExportPackagesIT.java b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ExportPackagesIT.java
index b5a9e19bb2a..2d0b9ba9651 100644
--- a/jdisc_core/src/test/java/com/yahoo/jdisc/core/ExportPackagesIT.java
+++ b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ExportPackagesIT.java
@@ -36,7 +36,7 @@ public class ExportPackagesIT {
// This list must be kept in sync with the list in the export-packages execution in pom.xml.
private static final List<String> RE_EXPORTED_BUNDLES = Stream.of(
"guava.jar",
- "guice-no_aop.jar",
+ "guice.jar",
"slf4j-api.jar",
"slf4j-jdk14.jar",
"jcl-over-slf4j.jar",
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogHandlerTestCase.java b/jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogHandlerTestCase.java
index 626cae67c41..f5a86b63ae5 100644
--- a/jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogHandlerTestCase.java
+++ b/jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogHandlerTestCase.java
@@ -2,7 +2,9 @@
package com.yahoo.jdisc.core;
import org.junit.jupiter.api.Test;
+import org.osgi.framework.Bundle;
import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogLevel;
import org.osgi.service.log.LogService;
import java.time.Instant;
@@ -30,40 +32,40 @@ public class OsgiLogHandlerTestCase {
Logger log = newLogger(logService);
log.log(Level.INFO, "foo");
- assertEquals(OsgiLogHandler.toServiceLevel(Level.INFO), logService.lastLevel);
+ assertEquals(OsgiLogHandler.toServiceLevel(Level.INFO), logService.lastLevel());
assertEquals("foo", logService.lastMessage);
assertNull(logService.lastThrowable);
Throwable t = new Throwable();
log.log(Level.SEVERE, "bar", t);
- assertEquals(OsgiLogHandler.toServiceLevel(Level.SEVERE), logService.lastLevel);
+ assertEquals(OsgiLogHandler.toServiceLevel(Level.SEVERE), logService.lastLevel());
assertEquals("bar", logService.lastMessage);
assertEquals(t, logService.lastThrowable);
}
@Test
void requireThatStadardLogLevelsAreConverted() {
- assertLogLevel(LogService.LOG_ERROR, Level.SEVERE);
- assertLogLevel(LogService.LOG_WARNING, Level.WARNING);
- assertLogLevel(LogService.LOG_INFO, Level.INFO);
- assertLogLevel(LogService.LOG_DEBUG, Level.CONFIG);
- assertLogLevel(LogService.LOG_DEBUG, Level.FINE);
- assertLogLevel(LogService.LOG_DEBUG, Level.FINER);
- assertLogLevel(LogService.LOG_DEBUG, Level.FINEST);
+ assertLogLevel(LogLevel.ERROR, Level.SEVERE);
+ assertLogLevel(LogLevel.WARN, Level.WARNING);
+ assertLogLevel(LogLevel.INFO, Level.INFO);
+ assertLogLevel(LogLevel.DEBUG, Level.CONFIG);
+ assertLogLevel(LogLevel.DEBUG, Level.FINE);
+ assertLogLevel(LogLevel.DEBUG, Level.FINER);
+ assertLogLevel(LogLevel.DEBUG, Level.FINEST);
}
@Test
void requireThatCustomLogLevelsAreConverted() {
for (int i = Level.ALL.intValue() - 69; i < Level.OFF.intValue() + 69; ++i) {
- int expectedLevel;
+ LogLevel expectedLevel;
if (i >= Level.SEVERE.intValue()) {
- expectedLevel = LogService.LOG_ERROR;
+ expectedLevel = LogLevel.ERROR;
} else if (i >= Level.WARNING.intValue()) {
- expectedLevel = LogService.LOG_WARNING;
+ expectedLevel = LogLevel.WARN;
} else if (i >= Level.INFO.intValue()) {
- expectedLevel = LogService.LOG_INFO;
+ expectedLevel = LogLevel.INFO;
} else {
- expectedLevel = LogService.LOG_DEBUG;
+ expectedLevel = LogLevel.DEBUG;
}
assertLogLevel(expectedLevel, new MyLogLevel(i));
}
@@ -120,11 +122,11 @@ public class OsgiLogHandlerTestCase {
assertNull(ref.getProperty("unknown"));
}
- private static void assertLogLevel(int expectedLevel, Level level) {
+ private static void assertLogLevel(LogLevel expectedLevel, Level level) {
MyLogService logService = new MyLogService();
Logger log = newLogger(logService);
log.log(level, "message");
- assertEquals(expectedLevel, logService.lastLevel);
+ assertEquals(expectedLevel, logService.lastLevel());
}
@SuppressWarnings("unchecked")
@@ -154,28 +156,36 @@ public class OsgiLogHandlerTestCase {
String lastMessage;
Throwable lastThrowable;
- @Override
+ LogLevel lastLevel() { return LogLevel.values()[lastLevel]; }
+
+ @Override @SuppressWarnings("deprecation")
public void log(int level, String message) {
log(null, level, message, null);
}
- @Override
+ @Override @SuppressWarnings("deprecation")
public void log(int level, String message, Throwable throwable) {
log(null, level, message, throwable);
}
- @Override
+ @Override @SuppressWarnings("deprecation")
public void log(ServiceReference serviceReference, int level, String message) {
log(serviceReference, level, message, null);
}
- @Override
+ @Override @SuppressWarnings("deprecation")
public void log(ServiceReference serviceReference, int level, String message, Throwable throwable) {
lastServiceReference = serviceReference;
lastLevel = level;
lastMessage = message;
lastThrowable = throwable;
}
+
+ @Override public org.osgi.service.log.Logger getLogger(String s) { return null; }
+ @Override public org.osgi.service.log.Logger getLogger(Class<?> aClass) { return null; }
+ @Override public <L extends org.osgi.service.log.Logger> L getLogger(String s, Class<L> aClass) { return null; }
+ @Override public <L extends org.osgi.service.log.Logger> L getLogger(Class<?> aClass, Class<L> aClass1) { return null; }
+ @Override public <L extends org.osgi.service.log.Logger> L getLogger(Bundle bundle, String s, Class<L> aClass) { return null; }
}
private static class MyResourceBundle extends ResourceBundle {
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerTestCase.java b/jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerTestCase.java
deleted file mode 100644
index 7b5af97ca13..00000000000
--- a/jdisc_core/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerTestCase.java
+++ /dev/null
@@ -1,185 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.jdisc.core;
-
-import com.yahoo.jdisc.test.TestDriver;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.log.LogService;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-
-
-/**
- * @author Simon Thoresen Hult
- */
-public class OsgiLogManagerTestCase {
-
- @Test
- void requireThatAllLogMethodsAreImplemented() throws BundleException {
- FelixFramework felix = TestDriver.newOsgiFramework();
- felix.start();
-
- BundleContext ctx = felix.bundleContext();
- OsgiLogManager manager = new OsgiLogManager(true);
- manager.install(ctx);
- MyLogService service = new MyLogService();
- ctx.registerService(LogService.class.getName(), service, null);
-
- manager.log(2, "a");
- assertLast(service, null, 2, "a", null);
-
- Throwable t1 = new Throwable();
- manager.log(4, "b", t1);
- assertLast(service, null, 4, "b", t1);
-
- ServiceReference<?> ref1 = Mockito.mock(ServiceReference.class);
- manager.log(ref1, 8, "c");
- assertLast(service, ref1, 8, "c", null);
-
- ServiceReference<?> ref2 = Mockito.mock(ServiceReference.class);
- Throwable t2 = new Throwable();
- manager.log(ref2, 16, "d", t2);
- assertLast(service, ref2, 16, "d", t2);
-
- manager.uninstall();
- felix.stop();
- }
-
- @Test
- void requireThatLogManagerWritesToAllRegisteredLogServices() throws BundleException {
- FelixFramework felix = TestDriver.newOsgiFramework();
- felix.start();
-
- BundleContext ctx = felix.bundleContext();
- MyLogService foo = new MyLogService();
- ServiceRegistration<LogService> fooReg = ctx.registerService(LogService.class, foo, null);
-
- OsgiLogManager manager = new OsgiLogManager(true);
- manager.install(ctx);
-
- ServiceReference<?> ref1 = Mockito.mock(ServiceReference.class);
- Throwable t1 = new Throwable();
- manager.log(ref1, 2, "a", t1);
- assertLast(foo, ref1, 2, "a", t1);
-
- MyLogService bar = new MyLogService();
- ServiceRegistration<LogService> barReg = ctx.registerService(LogService.class, bar, null);
-
- ServiceReference<?> ref2 = Mockito.mock(ServiceReference.class);
- Throwable t2 = new Throwable();
- manager.log(ref2, 4, "b", t2);
- assertLast(foo, ref2, 4, "b", t2);
- assertLast(bar, ref2, 4, "b", t2);
-
- MyLogService baz = new MyLogService();
- ServiceRegistration<LogService> bazReg = ctx.registerService(LogService.class, baz, null);
-
- ServiceReference<?> ref3 = Mockito.mock(ServiceReference.class);
- Throwable t3 = new Throwable();
- manager.log(ref3, 8, "c", t3);
- assertLast(foo, ref3, 8, "c", t3);
- assertLast(bar, ref3, 8, "c", t3);
- assertLast(baz, ref3, 8, "c", t3);
-
- fooReg.unregister();
-
- ServiceReference<?> ref4 = Mockito.mock(ServiceReference.class);
- Throwable t4 = new Throwable();
- manager.log(ref4, 16, "d", t4);
- assertLast(foo, ref3, 8, "c", t3);
- assertLast(bar, ref4, 16, "d", t4);
- assertLast(baz, ref4, 16, "d", t4);
-
- barReg.unregister();
-
- ServiceReference<?> ref5 = Mockito.mock(ServiceReference.class);
- Throwable t5 = new Throwable();
- manager.log(ref5, 32, "e", t5);
- assertLast(foo, ref3, 8, "c", t3);
- assertLast(bar, ref4, 16, "d", t4);
- assertLast(baz, ref5, 32, "e", t5);
-
- bazReg.unregister();
-
- ServiceReference<?> ref6 = Mockito.mock(ServiceReference.class);
- Throwable t6 = new Throwable();
- manager.log(ref6, 64, "f", t6);
- assertLast(foo, ref3, 8, "c", t3);
- assertLast(bar, ref4, 16, "d", t4);
- assertLast(baz, ref5, 32, "e", t5);
-
- manager.uninstall();
- felix.stop();
- }
-
- @Test
- void requireThatRootLoggerModificationCanBeDisabled() throws BundleException {
- Logger logger = Logger.getLogger("");
- logger.setLevel(Level.WARNING);
-
- new OsgiLogManager(false).install(Mockito.mock(BundleContext.class));
- assertEquals(Level.WARNING, logger.getLevel());
-
- new OsgiLogManager(true).install(Mockito.mock(BundleContext.class));
- assertEquals(Level.ALL, logger.getLevel());
- }
-
- @Test
- void requireThatRootLoggerLevelIsModifiedIfNoLoggerConfigIsGiven() {
- Logger logger = Logger.getLogger("");
- logger.setLevel(Level.WARNING);
-
- OsgiLogManager.newInstance().install(Mockito.mock(BundleContext.class));
-
- assertNull(System.getProperty("java.util.logging.config.file"));
- assertEquals(Level.ALL, logger.getLevel());
- }
-
- private static void assertLast(MyLogService service, ServiceReference<?> ref, int level, String message, Throwable t) {
- assertSame(ref, service.lastServiceReference);
- assertEquals(level, service.lastLevel);
- assertEquals(message, service.lastMessage);
- assertSame(t, service.lastThrowable);
- }
-
- @SuppressWarnings("rawtypes")
- private static class MyLogService implements LogService {
-
- ServiceReference lastServiceReference;
- int lastLevel;
- String lastMessage;
- Throwable lastThrowable;
-
- @Override
- public void log(int level, String message) {
- log(null, level, message, null);
- }
-
- @Override
- public void log(int level, String message, Throwable throwable) {
- log(null, level, message, throwable);
- }
-
- @Override
- public void log(ServiceReference serviceReference, int level, String message) {
- log(serviceReference, level, message, null);
- }
-
- @Override
- public void log(ServiceReference serviceReference, int level, String message, Throwable throwable) {
- lastServiceReference = serviceReference;
- lastLevel = level;
- lastMessage = message;
- lastThrowable = throwable;
- }
- }
-}
diff --git a/jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerIntegrationTest.java b/jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerIntegrationTest.java
deleted file mode 100644
index 629bef6ded3..00000000000
--- a/jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogManagerIntegrationTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.jdisc.core;
-
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.osgi.framework.BundleContext;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-
-/**
- * @author Simon Thoresen Hult
- */
-public class OsgiLogManagerIntegrationTest {
-
- @Test
- public void requireThatRootLoggerLevelIsNotModifiedIfLoggerConfigIsGiven() {
- Logger logger = Logger.getLogger("");
- logger.setLevel(Level.WARNING);
-
- OsgiLogManager.newInstance().install(Mockito.mock(BundleContext.class));
-
- assertNotNull(System.getProperty("java.util.logging.config.file"));
- assertEquals(Level.WARNING, logger.getLevel());
- }
-}
diff --git a/linguistics-components/pom.xml b/linguistics-components/pom.xml
index 19bb244b5d9..68b0437ac3f 100644
--- a/linguistics-components/pom.xml
+++ b/linguistics-components/pom.xml
@@ -87,7 +87,7 @@
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<scope>provided</scope>
- <classifier>no_aop</classifier>
+
</dependency>
<dependency>
<groupId>com.yahoo.vespa</groupId>
diff --git a/linguistics/pom.xml b/linguistics/pom.xml
index 5db3302b597..8813af8b981 100644
--- a/linguistics/pom.xml
+++ b/linguistics/pom.xml
@@ -56,7 +56,7 @@
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<scope>provided</scope>
- <classifier>no_aop</classifier>
+
</dependency>
</dependencies>
<build>
diff --git a/lucene-linguistics/pom.xml b/lucene-linguistics/pom.xml
index 929d33a0736..18f2b1a8574 100644
--- a/lucene-linguistics/pom.xml
+++ b/lucene-linguistics/pom.xml
@@ -63,7 +63,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/maven-plugins/allowed-maven-dependencies.txt b/maven-plugins/allowed-maven-dependencies.txt
index 319d6874f40..e3e2e52339d 100644
--- a/maven-plugins/allowed-maven-dependencies.txt
+++ b/maven-plugins/allowed-maven-dependencies.txt
@@ -10,10 +10,11 @@ com.github.luben:zstd-jni:1.5.5-5
com.google.errorprone:error_prone_annotations:2.21.1
com.google.guava:failureaccess:1.0.1
com.google.guava:guava:32.1.2-jre
-com.google.inject:guice:4.2.3
+com.google.inject:guice:6.0.0
com.google.j2objc:j2objc-annotations:2.8
commons-codec:commons-codec:1.16.0
commons-io:commons-io:2.13.0
+jakarta.inject:jakarta.inject-api:2.0.1
javax.annotation:javax.annotation-api:1.2
javax.inject:javax.inject:1
org.apache-extras.beanshell:bsh:2.0b6
diff --git a/parent/pom.xml b/parent/pom.xml
index eeacc667b22..fc51e1810a2 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -1120,6 +1120,12 @@
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>${xerces.vespa.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency> <!-- TODO: Remove on Vespa 9 -->
<groupId>org.json</groupId>
@@ -1146,7 +1152,11 @@
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.19.0</version>
</dependency>
-
+ <dependency>
+ <groupId>jakarta.inject</groupId>
+ <artifactId>jakarta.inject-api</artifactId>
+ <version>${jakarta.inject.vespa.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
diff --git a/provided-dependencies/pom.xml b/provided-dependencies/pom.xml
index 09d76265466..8bf84956a12 100755
--- a/provided-dependencies/pom.xml
+++ b/provided-dependencies/pom.xml
@@ -49,7 +49,7 @@
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <classifier>no_aop</classifier>
+
</dependency>
<!-- Dependencies used by container-core -->
diff --git a/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp b/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp
index d80604919de..28899b40408 100644
--- a/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp
+++ b/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp
@@ -164,8 +164,8 @@ VerifyRankSetup::~VerifyRankSetup() = default;
bool
VerifyRankSetup::verify(const search::index::Schema &schema,
- const search::fef::Properties &props,
- const IRankingAssetsRepo &repo)
+ const search::fef::Properties &props,
+ const IRankingAssetsRepo &repo)
{
proton::matching::IndexEnvironment indexEnv(0, schema, props, repo);
search::fef::BlueprintFactory factory;
@@ -195,12 +195,12 @@ VerifyRankSetup::verify(const search::index::Schema &schema,
bool
VerifyRankSetup::verifyConfig(const VerifyRanksetupConfig &myCfg,
- const RankProfilesConfig &rankCfg,
- const IndexschemaConfig &schemaCfg,
- const AttributesConfig &attributeCfg,
- const RankingConstantsConfig &constantsCfg,
- const RankingExpressionsConfig &expressionsCfg,
- const OnnxModelsConfig &modelsCfg)
+ const RankProfilesConfig &rankCfg,
+ const IndexschemaConfig &schemaCfg,
+ const AttributesConfig &attributeCfg,
+ const RankingConstantsConfig &constantsCfg,
+ const RankingExpressionsConfig &expressionsCfg,
+ const OnnxModelsConfig &modelsCfg)
{
bool ok = true;
search::index::Schema schema;
diff --git a/searchlib/src/vespa/searchlib/features/onnx_feature.cpp b/searchlib/src/vespa/searchlib/features/onnx_feature.cpp
index cdeb0515659..a330a4ff325 100644
--- a/searchlib/src/vespa/searchlib/features/onnx_feature.cpp
+++ b/searchlib/src/vespa/searchlib/features/onnx_feature.cpp
@@ -132,8 +132,7 @@ OnnxBlueprint::setup(const IIndexEnvironment &env,
return fail("model setup failed: %s", ex.what());
}
Onnx::WirePlanner planner;
- for (size_t i = 0; i < _model->inputs().size(); ++i) {
- const auto &model_input = _model->inputs()[i];
+ for (const auto & model_input : _model->inputs()) {
auto input_feature = model_cfg->input_feature(model_input.name);
if (!input_feature.has_value()) {
input_feature = fmt("rankingExpression(\"%s\")", normalize_name(model_input.name, "input").c_str());
@@ -151,8 +150,7 @@ OnnxBlueprint::setup(const IIndexEnvironment &env,
}
}
planner.prepare_output_types(*_model);
- for (size_t i = 0; i < _model->outputs().size(); ++i) {
- const auto &model_output = _model->outputs()[i];
+ for (const auto & model_output : _model->outputs()) {
auto output_name = model_cfg->output_name(model_output.name);
if (!output_name.has_value()) {
output_name = normalize_name(model_output.name, "output");
diff --git a/storage/src/vespa/storage/distributor/activecopy.cpp b/storage/src/vespa/storage/distributor/activecopy.cpp
index 4c35d42a0e7..e9d6d8cca30 100644
--- a/storage/src/vespa/storage/distributor/activecopy.cpp
+++ b/storage/src/vespa/storage/distributor/activecopy.cpp
@@ -132,7 +132,7 @@ ActiveCopy::calculate(const Node2Index & idealState, const lib::Distribution& di
{
IndexList validNodesWithCopy = buildValidNodeIndexList(e);
if (validNodesWithCopy.empty()) {
- return ActiveList();
+ return {};
}
std::vector<IndexList> groups;
if (distribution.activePerGroup()) {
@@ -162,7 +162,7 @@ ActiveCopy::calculate(const Node2Index & idealState, const lib::Distribution& di
}
result.emplace_back(*best);
}
- return ActiveList(std::move(result));
+ return {std::move(result)};
}
void
@@ -170,8 +170,8 @@ ActiveList::print(std::ostream& out, bool verbose, const std::string& indent) co
{
out << "[";
if (verbose) {
- for (size_t i=0; i<_v.size(); ++i) {
- out << "\n" << indent << " " << _v[i].nodeIndex() << " " << _v[i].getReason();
+ for (const auto & copy : _v) {
+ out << "\n" << indent << " " << copy.nodeIndex() << " " << copy.getReason();
}
if (!_v.empty()) {
out << "\n" << indent;
diff --git a/testutil/pom.xml b/testutil/pom.xml
index 7f57b6defee..a26459c0b8a 100644
--- a/testutil/pom.xml
+++ b/testutil/pom.xml
@@ -24,7 +24,7 @@
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<scope>provided</scope>
- <classifier>no_aop</classifier>
+
</dependency>
<dependency>
<groupId>com.yahoo.vespa</groupId>
diff --git a/vespa-dependencies-enforcer/allowed-maven-dependencies.txt b/vespa-dependencies-enforcer/allowed-maven-dependencies.txt
index cfe3a5c0877..ff43dbb045b 100644
--- a/vespa-dependencies-enforcer/allowed-maven-dependencies.txt
+++ b/vespa-dependencies-enforcer/allowed-maven-dependencies.txt
@@ -33,7 +33,7 @@ com.google.guava:guava:32.1.2-jre
com.google.http-client:google-http-client:1.43.3
com.google.http-client:google-http-client-apache-v2:1.43.3
com.google.http-client:google-http-client-gson:1.42.3
-com.google.inject:guice:4.2.3:no_aop
+com.google.inject:guice:6.0.0
com.google.j2objc:j2objc-annotations:2.8
com.google.protobuf:protobuf-java:3.24.2
com.ibm.icu:icu4j:73.2
@@ -78,6 +78,7 @@ io.prometheus:simpleclient_common:0.16.0
io.prometheus:simpleclient_tracer_common:0.16.0
io.prometheus:simpleclient_tracer_otel:0.16.0
io.prometheus:simpleclient_tracer_otel_agent:0.16.0
+jakarta.inject:jakarta.inject-api:2.0.1
javax.activation:javax.activation-api:1.2.0
javax.annotation:javax.annotation-api:1.2
javax.inject:javax.inject:1
@@ -100,7 +101,7 @@ org.apache.curator:curator-client:5.5.0
org.apache.curator:curator-framework:5.5.0
org.apache.curator:curator-recipes:5.5.0
org.apache.felix:org.apache.felix.framework:7.0.5
-org.apache.felix:org.apache.felix.log:1.0.1
+org.apache.felix:org.apache.felix.log:1.3.0
org.apache.httpcomponents:httpclient:4.5.14
org.apache.httpcomponents:httpcore:4.4.16
org.apache.httpcomponents:httpmime:4.5.14
@@ -181,8 +182,6 @@ org.junit.platform:junit-platform-launcher:1.8.1
org.kohsuke:libpam4j:1.11
org.lz4:lz4-java:1.8.0
org.opentest4j:opentest4j:1.3.0
-org.osgi:org.osgi.compendium:4.1.0
-org.osgi:org.osgi.core:4.1.0
org.ow2.asm:asm:9.5
org.ow2.asm:asm-analysis:9.5
org.ow2.asm:asm-commons:9.5
@@ -198,11 +197,9 @@ org.tukaani:xz:1.9
org.xerial.snappy:snappy-java:1.1.10.3
software.amazon.ion:ion-java:1.0.2
xerces:xercesImpl:2.12.2
-xml-apis:xml-apis:1.4.01
#[test-only]
# Contains dependencies that are used exclusively in 'test' scope
-com.google.inject:guice:4.2.3
com.google.jimfs:jimfs:1.3.0
net.bytebuddy:byte-buddy:1.14.7
net.bytebuddy:byte-buddy-agent:1.14.7