Skip to content

Commit 5d72615

Browse files
authored
[pip][design] PIP-279: Reformat property in generateResponseWithEntry (apache#20627)
1 parent a0372f4 commit 5d72615

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

pip/pip-279.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Motivation
2+
3+
reformat property,for a http header name cannot contain the following prohibited characters: =,;: \t\r\n\v\f
4+
5+
for example:
6+
{"city=shanghai":"tag"}
7+
when we run `bin/pulsar-admin topics get-message-by-id `, it will throw exception, the exception is:
8+
`Reason: java.util.concurrent.CompletionException: org.apache.pulsar.client.admin.internal.http.AsyncHttpConnector$RetryException: Could not complete the operation. Number of retries has been exhausted. Failed reason: a header name cannot contain the following prohibited characters: =,;: \t\r\n\v\f: =`
9+
10+
# High Level Design
11+
12+
In master branch,
13+
in an http request:getMessageById("/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}"),
14+
replace `"X-Pulsar-PROPERTY-" + msgProperties.getKey()` with `"X-Pulsar-PROPERTY"`
15+
16+
After release-3.1.0, this feature begins to take effect.
17+
18+
# Concrete Example
19+
20+
for example, the current message's properties likes this:
21+
```
22+
"name": "James"
23+
"gender": "man"
24+
"details=man": "good at playing basketball"
25+
```
26+
27+
## BEFORE
28+
old response header format:
29+
```
30+
headers: {
31+
"X-Pulsar-PROPERTY-name": "James",
32+
"X-Pulsar-PROPERTY-gender": "man",
33+
"X-Pulsar-PROPERTY-details=man": "good at playing basketball"
34+
}
35+
```
36+
but it will throw exception in the end check
37+
38+
## AFTER
39+
new response header format:
40+
```
41+
headers: {
42+
"X-Pulsar-PROPERTY": '{"name": "James", "gender": "man", "details=man": "good at playing basketball"}'
43+
}
44+
```
45+
46+
# Links
47+
48+
<!--
49+
Updated afterwards
50+
-->
51+
* Mailing List discussion thread: https://lists.apache.org/thread/vfc99mbj2z2xgwfs1hq1zxrow13qm2n7
52+
* Mailing List voting thread: https://lists.apache.org/thread/g354684m9h495o3p0kmzb7fh7vfxhddx

0 commit comments

Comments
 (0)