Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
spring-cloud-netflix
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
openSource
spring-cloud-netflix
Commits
9ad3d21b
Commit
9ad3d21b
authored
May 03, 2016
by
Dave Syer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Tidy up more compiler warnings for generics
parent
1c9d11de
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
24 deletions
+29
-24
ObservableSseEmitter.java
...pringframework/cloud/netflix/rx/ObservableSseEmitter.java
+4
-4
SingleDeferredResult.java
...pringframework/cloud/netflix/rx/SingleDeferredResult.java
+1
-4
SingleReturnValueHandler.java
...gframework/cloud/netflix/rx/SingleReturnValueHandler.java
+24
-16
No files found.
spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/ObservableSseEmitter.java
View file @
9ad3d21b
...
...
@@ -18,6 +18,7 @@ package org.springframework.cloud.netflix.rx;
import
org.springframework.http.MediaType
;
import
org.springframework.web.servlet.mvc.method.annotation.SseEmitter
;
import
rx.Observable
;
/**
...
...
@@ -28,8 +29,6 @@ import rx.Observable;
*/
class
ObservableSseEmitter
<
T
>
extends
SseEmitter
{
private
final
ResponseBodyEmitterSubscriber
<
T
>
subscriber
;
public
ObservableSseEmitter
(
Observable
<
T
>
observable
)
{
this
(
null
,
observable
);
}
...
...
@@ -38,8 +37,9 @@ class ObservableSseEmitter<T> extends SseEmitter {
this
(
null
,
mediaType
,
observable
);
}
public
ObservableSseEmitter
(
Long
timeout
,
MediaType
mediaType
,
Observable
<
T
>
observable
)
{
public
ObservableSseEmitter
(
Long
timeout
,
MediaType
mediaType
,
Observable
<
T
>
observable
)
{
super
(
timeout
);
this
.
subscriber
=
new
ResponseBodyEmitterSubscriber
<>(
mediaType
,
observable
,
this
);
new
ResponseBodyEmitterSubscriber
<>(
mediaType
,
observable
,
this
);
}
}
spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/SingleDeferredResult.java
View file @
9ad3d21b
...
...
@@ -31,8 +31,6 @@ class SingleDeferredResult<T> extends DeferredResult<T> {
private
static
final
Object
EMPTY_RESULT
=
new
Object
();
private
final
DeferredResultSubscriber
<
T
>
subscriber
;
public
SingleDeferredResult
(
Single
<
T
>
single
)
{
this
(
null
,
EMPTY_RESULT
,
single
);
}
...
...
@@ -44,7 +42,6 @@ class SingleDeferredResult<T> extends DeferredResult<T> {
public
SingleDeferredResult
(
Long
timeout
,
Object
timeoutResult
,
Single
<
T
>
single
)
{
super
(
timeout
,
timeoutResult
);
Assert
.
notNull
(
single
,
"single can not be null"
);
subscriber
=
new
DeferredResultSubscriber
<>(
single
.
toObservable
(),
this
);
new
DeferredResultSubscriber
<>(
single
.
toObservable
(),
this
);
}
}
spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/SingleReturnValueHandler.java
View file @
9ad3d21b
...
...
@@ -31,7 +31,8 @@ import rx.Single;
import
rx.functions.Func1
;
/**
* A specialized {@link AsyncHandlerMethodReturnValueHandler} that handles {@link Single} return types.
* A specialized {@link AsyncHandlerMethodReturnValueHandler} that handles {@link Single}
* return types.
*
* @author Spencer Gibb
* @author Jakub Narloch
...
...
@@ -45,20 +46,23 @@ public class SingleReturnValueHandler implements AsyncHandlerMethodReturnValueHa
@Override
public
boolean
supportsReturnType
(
MethodParameter
returnType
)
{
return
Single
.
class
.
isAssignableFrom
(
returnType
.
getParameterType
())
||
isResponseEntity
(
returnType
);
return
Single
.
class
.
isAssignableFrom
(
returnType
.
getParameterType
())
||
isResponseEntity
(
returnType
);
}
private
boolean
isResponseEntity
(
MethodParameter
returnType
)
{
if
(
ResponseEntity
.
class
.
isAssignableFrom
(
returnType
.
getParameterType
()))
{
Class
<?>
bodyType
=
ResolvableType
.
forMethodParameter
(
returnType
).
getGeneric
(
0
).
resolve
();
if
(
ResponseEntity
.
class
.
isAssignableFrom
(
returnType
.
getParameterType
()))
{
Class
<?>
bodyType
=
ResolvableType
.
forMethodParameter
(
returnType
)
.
getGeneric
(
0
).
resolve
();
return
bodyType
!=
null
&&
Single
.
class
.
isAssignableFrom
(
bodyType
);
}
return
false
;
}
@SuppressWarnings
(
"unchecked"
)
@Override
public
void
handleReturnValue
(
Object
returnValue
,
MethodParameter
returnType
,
ModelAndViewContainer
mavContainer
,
NativeWebRequest
webRequest
)
throws
Exception
{
public
void
handleReturnValue
(
Object
returnValue
,
MethodParameter
returnType
,
ModelAndViewContainer
mavContainer
,
NativeWebRequest
webRequest
)
throws
Exception
{
if
(
returnValue
==
null
)
{
mavContainer
.
setRequestHandled
(
true
);
...
...
@@ -66,7 +70,7 @@ public class SingleReturnValueHandler implements AsyncHandlerMethodReturnValueHa
}
ResponseEntity
<
Single
<?>>
responseEntity
=
getResponseEntity
(
returnValue
);
if
(
responseEntity
!=
null
)
{
if
(
responseEntity
!=
null
)
{
returnValue
=
responseEntity
.
getBody
();
if
(
returnValue
==
null
)
{
mavContainer
.
setRequestHandled
(
true
);
...
...
@@ -75,8 +79,8 @@ public class SingleReturnValueHandler implements AsyncHandlerMethodReturnValueHa
}
final
Single
<?>
single
=
Single
.
class
.
cast
(
returnValue
);
WebAsyncUtils
.
getAsyncManager
(
webRequest
)
.
startDeferredResultProcessing
(
convertToDeferredResult
(
responseEntity
,
single
),
mavContainer
);
WebAsyncUtils
.
getAsyncManager
(
webRequest
).
startDeferredResultProcessing
(
convertToDeferredResult
(
responseEntity
,
single
),
mavContainer
);
}
@SuppressWarnings
(
"unchecked"
)
...
...
@@ -88,13 +92,17 @@ public class SingleReturnValueHandler implements AsyncHandlerMethodReturnValueHa
return
null
;
}
protected
DeferredResult
<?>
convertToDeferredResult
(
final
ResponseEntity
<
Single
<?>>
responseEntity
,
Single
<?>
single
)
{
protected
DeferredResult
<?>
convertToDeferredResult
(
final
ResponseEntity
<
Single
<?>>
responseEntity
,
Single
<?>
single
)
{
//TODO: fix when java8 :-)
Single
<
ResponseEntity
>
singleResponse
=
single
.
map
(
new
Func1
<
Object
,
ResponseEntity
>()
{
// TODO: use lambda when java8 :-)
Single
<
ResponseEntity
<?>>
singleResponse
=
single
.
map
(
new
Func1
<
Object
,
ResponseEntity
<?>>()
{
@Override
public
ResponseEntity
call
(
Object
object
)
{
return
new
ResponseEntity
<>(
object
,
getHttpHeaders
(
responseEntity
),
getHttpStatus
(
responseEntity
));
public
ResponseEntity
<?>
call
(
Object
object
)
{
return
new
ResponseEntity
<
Object
>(
object
,
getHttpHeaders
(
responseEntity
),
getHttpStatus
(
responseEntity
));
}
});
...
...
@@ -102,14 +110,14 @@ public class SingleReturnValueHandler implements AsyncHandlerMethodReturnValueHa
}
private
HttpStatus
getHttpStatus
(
ResponseEntity
<?>
responseEntity
)
{
if
(
responseEntity
==
null
)
{
if
(
responseEntity
==
null
)
{
return
HttpStatus
.
OK
;
}
return
responseEntity
.
getStatusCode
();
}
private
HttpHeaders
getHttpHeaders
(
ResponseEntity
<?>
responseEntity
)
{
if
(
responseEntity
==
null
)
{
if
(
responseEntity
==
null
)
{
return
new
HttpHeaders
();
}
return
responseEntity
.
getHeaders
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment