• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 21552830208

31 Jan 2026 11:40PM UTC coverage: 80.277% (-0.05%) from 80.324%
21552830208

Pull #23062

github

web-flow
Merge 808a9786c into 2c4dcf9cf
Pull Request #23062: Remove support for Get

18 of 25 new or added lines in 4 files covered. (72.0%)

17119 existing lines in 541 files now uncovered.

78278 of 97510 relevant lines covered (80.28%)

3.36 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

89.19
/src/python/pants/backend/java/bsp/rules.py
1
# Copyright 2022 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
UNCOV
3
import logging
2✔
UNCOV
4
from dataclasses import dataclass
2✔
5

UNCOV
6
from pants.backend.java.bsp.spec import JavacOptionsItem, JavacOptionsParams, JavacOptionsResult
2✔
UNCOV
7
from pants.backend.java.target_types import JavaFieldSet, JavaSourceField
2✔
UNCOV
8
from pants.base.build_root import BuildRoot
2✔
UNCOV
9
from pants.bsp.protocol import BSPHandlerMapping
2✔
UNCOV
10
from pants.bsp.spec.base import BuildTargetIdentifier
2✔
UNCOV
11
from pants.bsp.util_rules.lifecycle import BSPLanguageSupport
2✔
UNCOV
12
from pants.bsp.util_rules.queries import compute_handler_query_rules
2✔
UNCOV
13
from pants.bsp.util_rules.targets import (
2✔
14
    BSPBuildTargetsMetadataRequest,
15
    BSPBuildTargetsMetadataResult,
16
    BSPCompileRequest,
17
    BSPCompileResult,
18
    BSPResourcesRequest,
19
    BSPResourcesResult,
20
)
UNCOV
21
from pants.engine.internals.selectors import concurrently
2✔
UNCOV
22
from pants.engine.rules import collect_rules, implicitly, rule
2✔
UNCOV
23
from pants.engine.target import FieldSet
2✔
UNCOV
24
from pants.engine.unions import UnionRule
2✔
UNCOV
25
from pants.jvm.bsp.compile import _jvm_bsp_compile, jvm_classes_directory
2✔
UNCOV
26
from pants.jvm.bsp.compile import rules as jvm_compile_rules
2✔
UNCOV
27
from pants.jvm.bsp.resources import _jvm_bsp_resources
2✔
UNCOV
28
from pants.jvm.bsp.resources import rules as jvm_resources_rules
2✔
UNCOV
29
from pants.jvm.compile import ClasspathEntryRequestFactory
2✔
UNCOV
30
from pants.jvm.target_types import JvmResolveField
2✔
31

UNCOV
32
LANGUAGE_ID = "java"
2✔
33

UNCOV
34
_logger = logging.getLogger(__name__)
2✔
35

36

UNCOV
37
class JavaBSPLanguageSupport(BSPLanguageSupport):
2✔
UNCOV
38
    language_id = LANGUAGE_ID
2✔
UNCOV
39
    can_compile = True
2✔
UNCOV
40
    can_provide_resources = True
2✔
41

42

UNCOV
43
@dataclass(frozen=True)
2✔
UNCOV
44
class JavaMetadataFieldSet(FieldSet):
2✔
UNCOV
45
    required_fields = (JavaSourceField, JvmResolveField)
2✔
46

UNCOV
47
    source: JavaSourceField
2✔
UNCOV
48
    resolve: JvmResolveField
2✔
49

50

UNCOV
51
class JavaBSPBuildTargetsMetadataRequest(BSPBuildTargetsMetadataRequest):
2✔
UNCOV
52
    language_id = LANGUAGE_ID
2✔
UNCOV
53
    can_merge_metadata_from = ()
2✔
UNCOV
54
    field_set_type = JavaMetadataFieldSet
2✔
55

UNCOV
56
    resolve_prefix = "jvm"
2✔
UNCOV
57
    resolve_field = JvmResolveField
2✔
58

59

UNCOV
60
@rule
2✔
UNCOV
61
async def bsp_resolve_java_metadata(
2✔
62
    _: JavaBSPBuildTargetsMetadataRequest,
63
) -> BSPBuildTargetsMetadataResult:
64
    return BSPBuildTargetsMetadataResult()
×
65

66

67
# -----------------------------------------------------------------------------------------------
68
# Javac Options Request
69
# See https://build-server-protocol.github.io/docs/extensions/java.html#javac-options-request
70
# -----------------------------------------------------------------------------------------------
71

72

UNCOV
73
class JavacOptionsHandlerMapping(BSPHandlerMapping):
2✔
UNCOV
74
    method_name = "buildTarget/javacOptions"
2✔
UNCOV
75
    request_type = JavacOptionsParams
2✔
UNCOV
76
    response_type = JavacOptionsResult
2✔
77

78

UNCOV
79
@dataclass(frozen=True)
2✔
UNCOV
80
class HandleJavacOptionsRequest:
2✔
UNCOV
81
    bsp_target_id: BuildTargetIdentifier
2✔
82

83

UNCOV
84
@dataclass(frozen=True)
2✔
UNCOV
85
class HandleJavacOptionsResult:
2✔
UNCOV
86
    item: JavacOptionsItem
2✔
87

88

UNCOV
89
@rule
2✔
UNCOV
90
async def handle_bsp_java_options_request(
2✔
91
    request: HandleJavacOptionsRequest,
92
    build_root: BuildRoot,
93
) -> HandleJavacOptionsResult:
94
    return HandleJavacOptionsResult(
×
95
        JavacOptionsItem(
96
            target=request.bsp_target_id,
97
            options=(),
98
            classpath=(),
99
            # TODO: Why is this hardcoded and not under pants_workdir?
100
            class_directory=build_root.pathlib_path.joinpath(
101
                ".pants.d", "bsp", jvm_classes_directory(request.bsp_target_id)
102
            ).as_uri(),
103
        )
104
    )
105

106

UNCOV
107
@rule
2✔
UNCOV
108
async def bsp_javac_options_request(request: JavacOptionsParams) -> JavacOptionsResult:
2✔
109
    results = await concurrently(
×
110
        handle_bsp_java_options_request(HandleJavacOptionsRequest(btgt), **implicitly())
111
        for btgt in request.targets
112
    )
113
    return JavacOptionsResult(items=tuple(result.item for result in results))
×
114

115

116
# -----------------------------------------------------------------------------------------------
117
# Compile Request
118
# -----------------------------------------------------------------------------------------------
119

120

UNCOV
121
@dataclass(frozen=True)
2✔
UNCOV
122
class JavaBSPCompileRequest(BSPCompileRequest):
2✔
UNCOV
123
    field_set_type = JavaFieldSet
2✔
124

125

UNCOV
126
@rule
2✔
UNCOV
127
async def bsp_java_compile_request(
2✔
128
    request: JavaBSPCompileRequest, classpath_entry_request: ClasspathEntryRequestFactory
129
) -> BSPCompileResult:
130
    result: BSPCompileResult = await _jvm_bsp_compile(request, classpath_entry_request)
×
131
    return result
×
132

133

134
# -----------------------------------------------------------------------------------------------
135
# Resources Request
136
# -----------------------------------------------------------------------------------------------
137

138

UNCOV
139
@dataclass(frozen=True)
2✔
UNCOV
140
class JavaBSPResourcesRequest(BSPResourcesRequest):
2✔
UNCOV
141
    field_set_type = JavaFieldSet
2✔
142

143

UNCOV
144
@rule
2✔
UNCOV
145
async def bsp_java_resources_request(
2✔
146
    request: JavaBSPResourcesRequest,
147
    build_root: BuildRoot,
148
) -> BSPResourcesResult:
149
    result: BSPResourcesResult = await _jvm_bsp_resources(request, build_root)
×
150
    return result
×
151

152

UNCOV
153
def rules():
2✔
UNCOV
154
    base_rules = (
2✔
155
        *collect_rules(),
156
        *jvm_compile_rules(),
157
        *jvm_resources_rules(),
158
        UnionRule(BSPLanguageSupport, JavaBSPLanguageSupport),
159
        UnionRule(BSPBuildTargetsMetadataRequest, JavaBSPBuildTargetsMetadataRequest),
160
        UnionRule(BSPHandlerMapping, JavacOptionsHandlerMapping),
161
        UnionRule(BSPCompileRequest, JavaBSPCompileRequest),
162
        UnionRule(BSPResourcesRequest, JavaBSPResourcesRequest),
163
    )
UNCOV
164
    return (*base_rules, *compute_handler_query_rules(base_rules))
2✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc