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
a805b53d
Unverified
Commit
a805b53d
authored
Oct 30, 2017
by
Spencer Gibb
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'daniellavoie-no-eureka-fix'
parents
271bfcfb
c0c59320
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
143 additions
and
16 deletions
+143
-16
HystrixStreamAutoConfiguration.java
...etflix/hystrix/stream/HystrixStreamAutoConfiguration.java
+9
-2
HystrixStreamTask.java
...ework/cloud/netflix/hystrix/stream/HystrixStreamTask.java
+20
-14
HystrixStreamAutoConfigurationNoRegistrationTests.java
...am/HystrixStreamAutoConfigurationNoRegistrationTests.java
+61
-0
HystrixStreamAutoConfigurationTests.java
...x/hystrix/stream/HystrixStreamAutoConfigurationTests.java
+53
-0
No files found.
spring-cloud-netflix-hystrix-stream/src/main/java/org/springframework/cloud/netflix/hystrix/stream/HystrixStreamAutoConfiguration.java
View file @
a805b53d
...
...
@@ -22,7 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.cloud.client.ServiceInstance
;
import
org.springframework.cloud.client.actuator.HasFeatures
;
import
org.springframework.cloud.client.discovery.DiscoveryClient
;
import
org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClient
;
import
org.springframework.cloud.client.serviceregistry.Registration
;
import
org.springframework.cloud.stream.annotation.EnableBinding
;
import
org.springframework.cloud.stream.annotation.Output
;
...
...
@@ -97,8 +100,12 @@ public class HystrixStreamAutoConfiguration {
}
@Bean
public
HystrixStreamTask
hystrixStreamTask
()
{
return
new
HystrixStreamTask
(
this
.
outboundChannel
,
this
.
registration
,
public
HystrixStreamTask
hystrixStreamTask
(
SimpleDiscoveryClient
simpleDiscoveryClient
)
{
ServiceInstance
serviceInstance
=
this
.
registration
;
if
(
serviceInstance
==
null
)
{
serviceInstance
=
simpleDiscoveryClient
.
getLocalServiceInstance
();
}
return
new
HystrixStreamTask
(
this
.
outboundChannel
,
serviceInstance
,
this
.
properties
);
}
...
...
spring-cloud-netflix-hystrix-stream/src/main/java/org/springframework/cloud/netflix/hystrix/stream/HystrixStreamTask.java
View file @
a805b53d
...
...
@@ -22,28 +22,27 @@ import java.util.ArrayList;
import
java.util.Collection
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
com.fasterxml.jackson.core.JsonFactory
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.netflix.hystrix.HystrixCircuitBreaker
;
import
com.netflix.hystrix.HystrixCommandKey
;
import
com.netflix.hystrix.HystrixCommandMetrics
;
import
com.netflix.hystrix.HystrixCommandProperties
;
import
com.netflix.hystrix.HystrixThreadPoolKey
;
import
com.netflix.hystrix.HystrixThreadPoolMetrics
;
import
com.netflix.hystrix.util.HystrixRollingNumberEvent
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.beans.BeansException
;
import
org.springframework.cloud.client.ServiceInstance
;
import
org.springframework.cloud.client.serviceregistry.Registration
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.messaging.MessageChannel
;
import
org.springframework.messaging.MessageHeaders
;
import
org.springframework.messaging.support.MessageBuilder
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.util.Assert
;
import
com.fasterxml.jackson.core.JsonFactory
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.netflix.hystrix.HystrixCircuitBreaker
;
import
com.netflix.hystrix.HystrixCommandKey
;
import
com.netflix.hystrix.HystrixCommandMetrics
;
import
com.netflix.hystrix.HystrixCommandProperties
;
import
com.netflix.hystrix.HystrixThreadPoolKey
;
import
com.netflix.hystrix.HystrixThreadPoolMetrics
;
import
com.netflix.hystrix.util.HystrixRollingNumberEvent
;
/**
* @author Spencer Gibb
...
...
@@ -57,7 +56,7 @@ public class HystrixStreamTask implements ApplicationContextAware {
private
MessageChannel
outboundChannel
;
private
Registration
registration
;
private
ServiceInstance
registration
;
private
HystrixStreamProperties
properties
;
...
...
@@ -69,13 +68,20 @@ public class HystrixStreamTask implements ApplicationContextAware {
private
final
JsonFactory
jsonFactory
=
new
JsonFactory
();
public
HystrixStreamTask
(
MessageChannel
outboundChannel
,
Registration
registration
,
HystrixStreamProperties
properties
)
{
ServiceInstance
registration
,
HystrixStreamProperties
properties
)
{
Assert
.
notNull
(
outboundChannel
,
"outboundChannel may not be null"
);
Assert
.
notNull
(
registration
,
"registration may not be null"
);
Assert
.
notNull
(
properties
,
"properties may not be null"
);
this
.
outboundChannel
=
outboundChannel
;
this
.
registration
=
registration
;
this
.
properties
=
properties
;
this
.
jsonMetrics
=
new
LinkedBlockingQueue
<>(
properties
.
getSize
());
}
/* for testing */
ServiceInstance
getRegistration
()
{
return
registration
;
}
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
...
...
spring-cloud-netflix-hystrix-stream/src/test/java/org/springframework/cloud/netflix/hystrix/stream/HystrixStreamAutoConfigurationNoRegistrationTests.java
0 → 100644
View file @
a805b53d
/*
* Copyright 2013-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
cloud
.
netflix
.
hystrix
.
stream
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.SpringBootConfiguration
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClient
;
import
org.springframework.cloud.client.serviceregistry.Registration
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* @author Spencer Gibb
*/
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
"eureka.client.enabled=false"
)
@DirtiesContext
public
class
HystrixStreamAutoConfigurationNoRegistrationTests
{
@Autowired
HystrixStreamTask
task
;
@Autowired
(
required
=
false
)
Registration
registration
;
@Autowired
SimpleDiscoveryClient
simpleDiscoveryClient
;
@Test
public
void
withoutRegistrationWorks
()
throws
Exception
{
assertThat
(
this
.
registration
).
isNull
();
assertThat
(
this
.
simpleDiscoveryClient
).
isNotNull
();
assertThat
(
task
.
getRegistration
()).
isEqualTo
(
this
.
simpleDiscoveryClient
.
getLocalServiceInstance
());
}
@EnableAutoConfiguration
@SpringBootConfiguration
protected
static
class
Config
{
}
}
spring-cloud-netflix-hystrix-stream/src/test/java/org/springframework/cloud/netflix/hystrix/stream/HystrixStreamAutoConfigurationTests.java
0 → 100644
View file @
a805b53d
/*
* Copyright 2013-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
cloud
.
netflix
.
hystrix
.
stream
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.SpringBootConfiguration
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.cloud.client.serviceregistry.Registration
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* @author Spencer Gibb
*/
@RunWith
(
SpringRunner
.
class
)
@DirtiesContext
public
class
HystrixStreamAutoConfigurationTests
{
@Autowired
HystrixStreamTask
task
;
@Autowired
Registration
registration
;
@Test
public
void
withRegistrationWorks
()
throws
Exception
{
assertThat
(
task
.
getRegistration
()).
isEqualTo
(
this
.
registration
);
}
@EnableAutoConfiguration
@SpringBootConfiguration
protected
static
class
Config
{
}
}
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