Skip to content

Commit 97af64e

Browse files
mkargsenivam
authored andcommitted
Support for JAX-RS 2.2's hasProperties method
1 parent d9f4ce2 commit 97af64e

File tree

13 files changed

+148
-0
lines changed

13 files changed

+148
-0
lines changed

containers/netty-http/src/main/java/org/glassfish/jersey/netty/httpserver/JerseyHttp2ServerHandler.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ private ContainerRequest createContainerRequest(ChannelHandlerContext ctx, Http2
134134

135135
private final Map<String, Object> properties = new HashMap<>();
136136

137+
@Override
138+
public boolean hasProperty(final String name) {
139+
return properties.containsKey(name);
140+
}
141+
137142
@Override
138143
public Object getProperty(String name) {
139144
return properties.get(name);

containers/netty-http/src/main/java/org/glassfish/jersey/netty/httpserver/JerseyServerHandler.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,11 @@ private ContainerRequest createContainerRequest(ChannelHandlerContext ctx, HttpR
169169

170170
private final Map<String, Object> properties = new HashMap<>();
171171

172+
@Override
173+
public boolean hasProperty(final String name) {
174+
return properties.containsKey(name);
175+
}
176+
172177
@Override
173178
public Object getProperty(String name) {
174179
return properties.get(name);

core-client/src/main/java/org/glassfish/jersey/client/ClientConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,11 @@ public Map<String, Object> getProperties() {
329329
return commonConfig.getConfiguration().getProperties();
330330
}
331331

332+
@Override
333+
public boolean hasProperty(final String name) {
334+
return commonConfig.getConfiguration().hasProperty(name);
335+
}
336+
332337
@Override
333338
public Object getProperty(final String name) {
334339
return commonConfig.getConfiguration().getProperty(name);

core-client/src/main/java/org/glassfish/jersey/client/ClientRequest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ public <T> T resolveProperty(final String name, final T defaultValue) {
138138
return propertiesResolver.get().resolveProperty(name, defaultValue);
139139
}
140140

141+
@Override
142+
public boolean hasProperty(final String name) {
143+
return propertiesDelegate.hasProperty(name);
144+
}
145+
141146
@Override
142147
public Object getProperty(final String name) {
143148
return propertiesDelegate.getProperty(name);

core-client/src/test/java/org/glassfish/jersey/client/ClientConfigTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,13 @@ public void testGetProperties() {
103103
}
104104
}
105105

106+
@Test
107+
public void testHasProperty() {
108+
ClientConfig instance = new ClientConfig().property("name", "value");
109+
assertTrue(instance.hasProperty("name"));
110+
assertFalse(instance.hasProperty("other"));
111+
}
112+
106113
@Test
107114
public void testGetProperty() {
108115
ClientConfig instance = new ClientConfig().property("name", "value");

core-client/src/test/java/org/glassfish/jersey/client/ClientRequestTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ public void testResolveProperty() {
9292
assertFalse(request.getConfiguration().getPropertyNames().contains("name"));
9393
assertFalse(request.getPropertyNames().contains("name"));
9494

95+
assertFalse(request.getConfiguration().hasProperty("name"));
96+
assertFalse(request.hasProperty("name"));
97+
9598
assertNull(request.getConfiguration().getProperty("name"));
9699
assertNull(request.getProperty("name"));
97100

@@ -109,6 +112,9 @@ public void testResolveProperty() {
109112
assertTrue(request.getConfiguration().getPropertyNames().contains("name"));
110113
assertFalse(request.getPropertyNames().contains("name"));
111114

115+
assertTrue(request.getConfiguration().hasProperty("name"));
116+
assertFalse(request.hasProperty("name"));
117+
112118
assertEquals("value-global", request.getConfiguration().getProperty("name"));
113119
assertNull(request.getProperty("name"));
114120

@@ -127,6 +133,9 @@ public void testResolveProperty() {
127133
assertFalse(request.getConfiguration().getPropertyNames().contains("name"));
128134
assertTrue(request.getPropertyNames().contains("name"));
129135

136+
assertFalse(request.getConfiguration().hasProperty("name"));
137+
assertTrue(request.hasProperty("name"));
138+
130139
assertNull(request.getConfiguration().getProperty("name"));
131140
assertEquals("value-request", request.getProperty("name"));
132141

@@ -145,6 +154,9 @@ public void testResolveProperty() {
145154
assertTrue(request.getConfiguration().getPropertyNames().contains("name"));
146155
assertTrue(request.getPropertyNames().contains("name"));
147156

157+
assertTrue(request.getConfiguration().hasProperty("name"));
158+
assertTrue(request.hasProperty("name"));
159+
148160
assertEquals("value-global", request.getConfiguration().getProperty("name"));
149161
assertEquals("value-request", request.getProperty("name"));
150162

core-common/src/main/java/org/glassfish/jersey/internal/MapPropertiesDelegate.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ public MapPropertiesDelegate(PropertiesDelegate that) {
6363
}
6464
}
6565

66+
@Override
67+
public boolean hasProperty(final String name) {
68+
return store.containsKey(name);
69+
}
70+
6671
@Override
6772
public Object getProperty(String name) {
6873
return store.get(name);

core-common/src/main/java/org/glassfish/jersey/internal/PropertiesDelegate.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,21 @@ public interface PropertiesDelegate {
4343
*/
4444
public Object getProperty(String name);
4545

46+
/**
47+
* Returns {@code true} if the property with the given name registered in the current request/response
48+
* exchange context, or {@code false} if there is no property by that name.
49+
* <p>
50+
* Use the {@link #getProperty} method with a property name to get the value of
51+
* a property.
52+
* </p>
53+
*
54+
* @return {@code true} if a property matching the given name exists, or
55+
* {@code false} otherwise.
56+
* @see #getProperty
57+
*/
58+
public default boolean hasProperty(String name) {
59+
return getProperty(name) != null;
60+
}
4661

4762
/**
4863
* Returns an immutable {@link java.util.Collection collection} containing the property

core-common/src/main/java/org/glassfish/jersey/message/internal/InterceptorExecutor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ public InterceptorExecutor(final Class<?> rawType, final Type type, final Annota
8888
this.tracingLogger = TracingLogger.getInstance(propertiesDelegate);
8989
}
9090

91+
@Override
92+
public boolean hasProperty(final String name) {
93+
return propertiesDelegate.hasProperty(name);
94+
}
95+
9196
@Override
9297
public Object getProperty(final String name) {
9398
return propertiesDelegate.getProperty(name);

core-common/src/main/java/org/glassfish/jersey/message/internal/TracingAwarePropertiesDelegate.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ public void setProperty(String name, Object object) {
5858
propertiesDelegate.setProperty(name, object);
5959
}
6060

61+
@Override
62+
public boolean hasProperty(final String name) {
63+
if (tracingLogger != null && TracingLogger.PROPERTY_NAME.equals(name)) {
64+
return true;
65+
}
66+
return propertiesDelegate.hasProperty(name);
67+
}
68+
6169
@Override
6270
public Object getProperty(String name) {
6371
if (tracingLogger != null && TracingLogger.PROPERTY_NAME.equals(name)) {

0 commit comments

Comments
 (0)