diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-09-04 19:49:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-04 19:49:27 +0200 |
commit | 8586e0137c6ec1dc0a9d10b0fcbc5578e122c504 (patch) | |
tree | 0d356ae9de3ec1642e6fce735631d60d19a4c787 | |
parent | 5b60dfc46e42d7c78f68e74f71b76ae8ad41e14d (diff) | |
parent | bedbd44069d0464bbd23a367e144cb32fad4573a (diff) |
Merge branch 'master' into bjorncs/move-jersey-out
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 ¶m) 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 |