class

Detector::Java::JaxRs

Inherits Detector < Reference < Object

Constants

DERIVATIVE_MANIFEST_GLOBS = ["pom.xml", "build.gradle", "build.gradle.kts"] of ::String

Manifest basenames a derivative framework can only show up in. Helidon MP's own quickstart is the concrete case: its JAX-RS resource classes carry no io.helidon import at all — the runtime is pulled in solely via pom.xml's io.helidon.microprofile.* dependencies, so a .java-only scan would never see the marker and this detector would double-report both java_jaxrs and java_helidon_mp for the same project.

DERIVATIVE_MARKERS_RE = /io\.quarkus|io\.dropwizard(?!\.metrics)|io\.helidon\.microprofile/

Frameworks that ride on JAX-RS but ship their own detector. Quarkus / Dropwizard / Helidon MP projects should report as that specific framework, not as plain JAX-RS. io.dropwizard.metrics is the standalone Metrics library (its own Maven groupId), which plain Jersey apps depend on without Dropwizard.

Instance methods

applicable?(filename : String) : Bool

Cheap filename-only filter the detector pass uses to skip detect on files the detector cannot possibly match. The default true preserves prior behavior (every detector runs on every file). Override with the same predicate the body of detect starts with — e.g., filename.ends_with?(".py") for a Python framework detector — so the detector loop avoids the detect dispatch on files outside the detector's language.

On large codebases (saleor's 4255 .py files) this lifts ~100 virtual detect calls per file out of the hot loop because most detectors' inner first-line is exactly this kind of cheap filename check.

Source
detect(filename : String, file_contents : String) : Bool
Source
name

The tech name; detector_for overrides it. Empty on the bare base.

Source