You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by si...@apache.org on 2019/12/10 04:24:12 UTC
[pulsar-manager] branch master updated: Switch from field injection
to constructor injection for beans (#230)
This is an automated email from the ASF dual-hosted git repository.
sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-manager.git
The following commit(s) were added to refs/heads/master by this push:
new 55693a2 Switch from field injection to constructor injection for beans (#230)
55693a2 is described below
commit 55693a2531d82c2466ebc972ae1d6599a9d34a92
Author: Sergii Zhevzhyk <vz...@users.noreply.github.com>
AuthorDate: Tue Dec 10 05:23:58 2019 +0100
Switch from field injection to constructor injection for beans (#230)
## Motivation
Field injection is not recommended in Spring (for example, IntelliJ shows a warning). There are a couple of articles and discussions showing the advantages of Constructor-based dependency injection and Setter-based dependency injection. For this project, I recommend switching from Field-based dependency injection to Constructor-based injection. It should bring better testability, immutability, and show problems in design.
## Change
Initialization of all fields which were injected with the `@Autowired` annotation was moved to constructors.
---
.../manager/controller/BookiesController.java | 6 ++-
.../manager/controller/BrokerStatsController.java | 17 ++++---
.../manager/controller/BrokerTokensController.java | 9 ++--
.../manager/controller/BrokersController.java | 17 ++++---
.../manager/controller/ClustersController.java | 17 ++++---
.../manager/controller/EnvironmentsController.java | 13 +++--
.../pulsar/manager/controller/LoginController.java | 6 ++-
.../manager/controller/NamespacesController.java | 17 ++++---
.../manager/controller/TenantsController.java | 17 ++++---
.../ThirdPartyLoginCallbackController.java | 6 ++-
.../manager/controller/TopicsController.java | 17 ++++---
.../interceptor/AdminHandlerInterceptor.java | 9 ++--
.../service/impl/BrokerStatsServiceImpl.java | 56 +++++++++++-----------
.../manager/service/impl/ClustersServiceImpl.java | 6 ++-
.../service/impl/EnvironmentCacheServiceImpl.java | 8 ++--
.../service/impl/NamespacesServiceImpl.java | 11 +++--
.../manager/service/impl/TopicsServiceImpl.java | 12 ++---
.../pulsar/manager/zuul/EnvironmentForward.java | 9 +++-
.../zuul/LocationHeaderRewritingFilter.java | 11 +++--
19 files changed, 169 insertions(+), 95 deletions(-)
diff --git a/src/main/java/org/apache/pulsar/manager/controller/BookiesController.java b/src/main/java/org/apache/pulsar/manager/controller/BookiesController.java
index 7794659..c42f9ac 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/BookiesController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BookiesController.java
@@ -34,8 +34,12 @@ import java.util.Map;
@Validated
public class BookiesController {
+ private final BookiesService bookiesService;
+
@Autowired
- private BookiesService bookiesService;
+ public BookiesController(BookiesService bookiesService) {
+ this.bookiesService = bookiesService;
+ }
@ApiOperation(value = "Get the list of existing bookies, support paging, the default is 10 per page")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/BrokerStatsController.java b/src/main/java/org/apache/pulsar/manager/controller/BrokerStatsController.java
index 0f75bf3..5f06089 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/BrokerStatsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BrokerStatsController.java
@@ -38,14 +38,19 @@ import javax.servlet.http.HttpServletRequest;
@RestController
public class BrokerStatsController {
- @Autowired
- private BrokerStatsService brokerStatsService;
-
- @Autowired
- private EnvironmentCacheService environmentCacheService;
+ private final BrokerStatsService brokerStatsService;
+ private final EnvironmentCacheService environmentCacheService;
+ private final HttpServletRequest request;
@Autowired
- private HttpServletRequest request;
+ public BrokerStatsController(
+ BrokerStatsService brokerStatsService,
+ EnvironmentCacheService environmentCacheService,
+ HttpServletRequest request) {
+ this.brokerStatsService = brokerStatsService;
+ this.environmentCacheService = environmentCacheService;
+ this.request = request;
+ }
@ApiOperation(value = "Get the broker stats metrics")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/BrokerTokensController.java b/src/main/java/org/apache/pulsar/manager/controller/BrokerTokensController.java
index ab3296d..7cb973b 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/BrokerTokensController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BrokerTokensController.java
@@ -38,11 +38,14 @@ import java.util.Optional;
@RestController
public class BrokerTokensController {
- @Autowired
- private JwtService jwtService;
+ private final JwtService jwtService;
+ private final BrokerTokensRepository brokerTokensRepository;
@Autowired
- private BrokerTokensRepository brokerTokensRepository;
+ public BrokerTokensController(JwtService jwtService, BrokerTokensRepository brokerTokensRepository) {
+ this.jwtService = jwtService;
+ this.brokerTokensRepository = brokerTokensRepository;
+ }
@ApiOperation(value = "Get the list of existing broker tokens, support paging, the default is 10 per page")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/BrokersController.java b/src/main/java/org/apache/pulsar/manager/controller/BrokersController.java
index 6b4a3c1..473c438 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/BrokersController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/BrokersController.java
@@ -43,14 +43,19 @@ import java.util.Map;
@RestController
public class BrokersController {
- @Autowired
- private BrokersService brokersService;
-
- @Autowired
- private HttpServletRequest request;
+ private final BrokersService brokersService;
+ private final HttpServletRequest request;
+ private final EnvironmentCacheService environmentCacheService;
@Autowired
- private EnvironmentCacheService environmentCacheService;
+ public BrokersController(
+ BrokersService brokersService,
+ HttpServletRequest request,
+ EnvironmentCacheService environmentCacheService) {
+ this.brokersService = brokersService;
+ this.request = request;
+ this.environmentCacheService = environmentCacheService;
+ }
@ApiOperation(value = "Get the list of existing brokers, support paging, the default is 10 per page")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/ClustersController.java b/src/main/java/org/apache/pulsar/manager/controller/ClustersController.java
index 446ba13..92a3beb 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/ClustersController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/ClustersController.java
@@ -42,14 +42,19 @@ import java.util.Map;
@Validated
public class ClustersController {
- @Autowired
- private ClustersService clusterService;
-
- @Autowired
- private EnvironmentCacheService environmentCacheService;
+ private final ClustersService clusterService;
+ private final EnvironmentCacheService environmentCacheService;
+ private final HttpServletRequest request;
@Autowired
- private HttpServletRequest request;
+ public ClustersController(
+ ClustersService clusterService,
+ EnvironmentCacheService environmentCacheService,
+ HttpServletRequest request) {
+ this.clusterService = clusterService;
+ this.environmentCacheService = environmentCacheService;
+ this.request = request;
+ }
@ApiOperation(value = "Get the list of existing clusters, support paging, the default is 10 per page")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java b/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java
index 56d56aa..f5a40b7 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java
@@ -49,14 +49,19 @@ import java.util.Optional;
@RestController
public class EnvironmentsController {
- @Autowired
- private EnvironmentsRepository environmentsRepository;
-
@Value("${backend.jwt.token}")
private String pulsarJwtToken;
+ private final EnvironmentsRepository environmentsRepository;
+ private final EnvironmentCacheService environmentCacheService;
+
@Autowired
- private EnvironmentCacheService environmentCacheService;
+ public EnvironmentsController(
+ EnvironmentsRepository environmentsRepository,
+ EnvironmentCacheService environmentCacheService) {
+ this.environmentsRepository = environmentsRepository;
+ this.environmentCacheService = environmentCacheService;
+ }
@ApiOperation(value = "Get the list of existing environments, support paging, the default is 10 per page")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/LoginController.java b/src/main/java/org/apache/pulsar/manager/controller/LoginController.java
index 8f1411e..051881c 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/LoginController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/LoginController.java
@@ -50,8 +50,12 @@ public class LoginController {
@Value("${pulsar-manager.password}")
private String password;
+ private final JwtService jwtService;
+
@Autowired
- private JwtService jwtService;
+ public LoginController(JwtService jwtService) {
+ this.jwtService = jwtService;
+ }
@ApiOperation(value = "Login pulsar manager")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/NamespacesController.java b/src/main/java/org/apache/pulsar/manager/controller/NamespacesController.java
index a60e53b..5b88e31 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/NamespacesController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/NamespacesController.java
@@ -44,14 +44,19 @@ import java.util.Map;
@RestController
public class NamespacesController {
- @Autowired
- private NamespacesService namespacesService;
-
- @Autowired
- private EnvironmentCacheService environmentCacheService;
+ private final NamespacesService namespacesService;
+ private final EnvironmentCacheService environmentCacheService;
+ private final HttpServletRequest request;
@Autowired
- private HttpServletRequest request;
+ public NamespacesController(
+ NamespacesService namespacesService,
+ EnvironmentCacheService environmentCacheService,
+ HttpServletRequest request) {
+ this.namespacesService = namespacesService;
+ this.environmentCacheService = environmentCacheService;
+ this.request = request;
+ }
@ApiOperation(value = "Query list by the name of tenant or namespace, support paging, the default is 10 per page")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/TenantsController.java b/src/main/java/org/apache/pulsar/manager/controller/TenantsController.java
index 0502575..9fa86d6 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/TenantsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/TenantsController.java
@@ -42,14 +42,19 @@ import java.util.Map;
@Validated
public class TenantsController {
- @Autowired
- private TenantsService tenantsService;
-
- @Autowired
- private EnvironmentCacheService environmentCacheService;
+ private final TenantsService tenantsService;
+ private final EnvironmentCacheService environmentCacheService;
+ private final HttpServletRequest request;
@Autowired
- private HttpServletRequest request;
+ public TenantsController(
+ TenantsService tenantsService,
+ EnvironmentCacheService environmentCacheService,
+ HttpServletRequest request) {
+ this.tenantsService = tenantsService;
+ this.environmentCacheService = environmentCacheService;
+ this.request = request;
+ }
@ApiOperation(value = "Get the list of existing tenants, support paging, the default is 10 per page")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/controller/ThirdPartyLoginCallbackController.java b/src/main/java/org/apache/pulsar/manager/controller/ThirdPartyLoginCallbackController.java
index f9f175d..5093184 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/ThirdPartyLoginCallbackController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/ThirdPartyLoginCallbackController.java
@@ -57,8 +57,12 @@ public class ThirdPartyLoginCallbackController {
@Value("${github.redirect.host}")
private String githubRedirectHost;
+ private final ThirdPartyLoginService thirdPartyLoginService;
+
@Autowired
- private ThirdPartyLoginService thirdPartyLoginService;
+ public ThirdPartyLoginCallbackController(ThirdPartyLoginService thirdPartyLoginService) {
+ this.thirdPartyLoginService = thirdPartyLoginService;
+ }
@ApiOperation(value = "When use pass github authentication, Github platform will carry code parameter to call " +
"back this address actively. At this time, we can request token and get user information through " +
diff --git a/src/main/java/org/apache/pulsar/manager/controller/TopicsController.java b/src/main/java/org/apache/pulsar/manager/controller/TopicsController.java
index 3075076..8e94b4d 100644
--- a/src/main/java/org/apache/pulsar/manager/controller/TopicsController.java
+++ b/src/main/java/org/apache/pulsar/manager/controller/TopicsController.java
@@ -43,14 +43,19 @@ import java.util.Map;
@RestController
public class TopicsController {
- @Autowired
- private TopicsService topicsService;
-
- @Autowired
- private EnvironmentCacheService environmentCacheService;
+ private final TopicsService topicsService;
+ private final EnvironmentCacheService environmentCacheService;
+ private final HttpServletRequest request;
@Autowired
- private HttpServletRequest request;
+ public TopicsController(
+ TopicsService topicsService,
+ EnvironmentCacheService environmentCacheService,
+ HttpServletRequest request) {
+ this.topicsService = topicsService;
+ this.environmentCacheService = environmentCacheService;
+ this.request = request;
+ }
@ApiOperation(value = "Query topic info by tenant and namespace")
@ApiResponses({
diff --git a/src/main/java/org/apache/pulsar/manager/interceptor/AdminHandlerInterceptor.java b/src/main/java/org/apache/pulsar/manager/interceptor/AdminHandlerInterceptor.java
index 3fc8e01..0df5c4d 100644
--- a/src/main/java/org/apache/pulsar/manager/interceptor/AdminHandlerInterceptor.java
+++ b/src/main/java/org/apache/pulsar/manager/interceptor/AdminHandlerInterceptor.java
@@ -32,11 +32,14 @@ import java.util.Optional;
@Component
public class AdminHandlerInterceptor extends HandlerInterceptorAdapter {
- @Autowired
- private JwtService jwtService;
+ private final JwtService jwtService;
+ private final EnvironmentsRepository environmentsRepository;
@Autowired
- private EnvironmentsRepository environmentsRepository;
+ public AdminHandlerInterceptor(JwtService jwtService, EnvironmentsRepository environmentsRepository) {
+ this.jwtService = jwtService;
+ this.environmentsRepository = environmentsRepository;
+ }
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
index 258d924..c44b3cd 100644
--- a/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
@@ -59,7 +59,6 @@ public class BrokerStatsServiceImpl implements BrokerStatsService {
private static final Logger log = LoggerFactory.getLogger(BrokerStatsServiceImpl.class);
-
@Value("${backend.directRequestHost}")
private String directRequestHost;
@@ -69,37 +68,40 @@ public class BrokerStatsServiceImpl implements BrokerStatsService {
@Value("${clear.stats.interval}")
private Long clearStatsInterval;
- @Autowired
- private EnvironmentsRepository environmentsRepository;
-
- @Autowired
- private ClustersService clustersService;
-
- @Autowired
- private BrokersService brokersService;
-
- @Autowired
- private TopicsStatsRepository topicsStatsRepository;
-
- @Autowired
- private SubscriptionsStatsRepository subscriptionsStatsRepository;
-
- @Autowired
- private PublishersStatsRepository publishersStatsRepository;
-
- @Autowired
- private ReplicationsStatsRepository replicationsStatsRepository;
-
- @Autowired
- private ConsumersStatsRepository consumersStatsRepository;
-
- @Autowired
- private EnvironmentCacheService environmentCache;
+ private final EnvironmentsRepository environmentsRepository;
+ private final ClustersService clustersService;
+ private final BrokersService brokersService;
+ private final TopicsStatsRepository topicsStatsRepository;
+ private final SubscriptionsStatsRepository subscriptionsStatsRepository;
+ private final PublishersStatsRepository publishersStatsRepository;
+ private final ReplicationsStatsRepository replicationsStatsRepository;
+ private final ConsumersStatsRepository consumersStatsRepository;
private static final Map<String, String> header = new HashMap<String, String>(){{
put("Content-Type","application/json");
}};
+ @Autowired
+ public BrokerStatsServiceImpl(
+ EnvironmentsRepository environmentsRepository,
+ ClustersService clustersService,
+ BrokersService brokersService,
+ TopicsStatsRepository topicsStatsRepository,
+ SubscriptionsStatsRepository subscriptionsStatsRepository,
+ PublishersStatsRepository publishersStatsRepository,
+ ReplicationsStatsRepository replicationsStatsRepository,
+ ConsumersStatsRepository consumersStatsRepository,
+ EnvironmentCacheService environmentCache) {
+ this.environmentsRepository = environmentsRepository;
+ this.clustersService = clustersService;
+ this.brokersService = brokersService;
+ this.topicsStatsRepository = topicsStatsRepository;
+ this.subscriptionsStatsRepository = subscriptionsStatsRepository;
+ this.publishersStatsRepository = publishersStatsRepository;
+ this.replicationsStatsRepository = replicationsStatsRepository;
+ this.consumersStatsRepository = consumersStatsRepository;
+ }
+
public String forwardBrokerStatsMetrics(String broker, String requestHost) {
if (StringUtils.isNotBlank(pulsarJwtToken)) {
header.put("Authorization", String.format("Bearer %s", pulsarJwtToken));
diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/ClustersServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/ClustersServiceImpl.java
index 920e4d3..ee82df6 100644
--- a/src/main/java/org/apache/pulsar/manager/service/impl/ClustersServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/ClustersServiceImpl.java
@@ -40,8 +40,12 @@ public class ClustersServiceImpl implements ClustersService {
@Value("${backend.jwt.token}")
private String pulsarJwtToken;
+ private final BrokersService brokersService;
+
@Autowired
- private BrokersService brokersService;
+ public ClustersServiceImpl(BrokersService brokersService) {
+ this.brokersService = brokersService;
+ }
public Map<String, Object> getClustersList(Integer pageNum,
diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
index 40bf894..f62dbd8 100644
--- a/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java
@@ -44,15 +44,15 @@ import org.springframework.stereotype.Service;
@Service
public class EnvironmentCacheServiceImpl implements EnvironmentCacheService {
- @Autowired
- private EnvironmentsRepository environmentsRepository;
-
@Value("${backend.jwt.token}")
private String pulsarJwtToken;
+ private final EnvironmentsRepository environmentsRepository;
private final Map<String, Map<String, ClusterData>> environments;
- public EnvironmentCacheServiceImpl() {
+ @Autowired
+ public EnvironmentCacheServiceImpl(EnvironmentsRepository environmentsRepository) {
+ this.environmentsRepository = environmentsRepository;
this.environments = new ConcurrentHashMap<>();
}
diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java
index fb48dff..5c34b1d 100644
--- a/src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/NamespacesServiceImpl.java
@@ -38,11 +38,16 @@ public class NamespacesServiceImpl implements NamespacesService {
@Value("${backend.jwt.token}")
private String pulsarJwtToken;
- @Autowired
- private TopicsStatsRepository topicsStatsRepository;
+ private final TopicsStatsRepository topicsStatsRepository;
+ private final TopicsService topicsService;
@Autowired
- private TopicsService topicsService;
+ public NamespacesServiceImpl(
+ TopicsStatsRepository topicsStatsRepository,
+ TopicsService topicsService) {
+ this.topicsStatsRepository = topicsStatsRepository;
+ this.topicsService = topicsService;
+ }
public Map<String, Object> getNamespaceList(Integer pageNum, Integer pageSize, String tenant, String requestHost) {
Map<String, Object> namespacesMap = Maps.newHashMap();
diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/TopicsServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/TopicsServiceImpl.java
index 85e3c17..9d2fb22 100644
--- a/src/main/java/org/apache/pulsar/manager/service/impl/TopicsServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/TopicsServiceImpl.java
@@ -34,8 +34,7 @@ import java.util.*;
@Service
public class TopicsServiceImpl implements TopicsService {
- private static final Logger log = LoggerFactory.getLogger(TopicsServiceImpl.class);
-
+ public static final String PARTITIONED_TOPIC_SUFFIX = "-partition-";
@Value("${backend.directRequestBroker}")
private boolean directRequestBroker;
@@ -43,11 +42,12 @@ public class TopicsServiceImpl implements TopicsService {
@Value("${backend.jwt.token}")
private String pulsarJwtToken;
- @Autowired
- private TopicsStatsRepository topicsStatsRepository;
-
- public static final String PARTITIONED_TOPIC_SUFFIX = "-partition-";
+ private final TopicsStatsRepository topicsStatsRepository;
+ @Autowired
+ public TopicsServiceImpl(TopicsStatsRepository topicsStatsRepository) {
+ this.topicsStatsRepository = topicsStatsRepository;
+ }
private boolean isPartitionedTopic(List<String> topics, String topic) {
if (topic.contains(PARTITIONED_TOPIC_SUFFIX)) {
diff --git a/src/main/java/org/apache/pulsar/manager/zuul/EnvironmentForward.java b/src/main/java/org/apache/pulsar/manager/zuul/EnvironmentForward.java
index 6b5eafa..4be4c8a 100644
--- a/src/main/java/org/apache/pulsar/manager/zuul/EnvironmentForward.java
+++ b/src/main/java/org/apache/pulsar/manager/zuul/EnvironmentForward.java
@@ -39,11 +39,16 @@ public class EnvironmentForward extends ZuulFilter {
private static final Logger log = LoggerFactory.getLogger(EnvironmentForward.class);
- @Autowired
- private EnvironmentCacheService environmentCacheService;
@Value("${backend.jwt.token}")
private String pulsarJwtToken;
+ private final EnvironmentCacheService environmentCacheService;
+
+ @Autowired
+ public EnvironmentForward(EnvironmentCacheService environmentCacheService) {
+ this.environmentCacheService = environmentCacheService;
+ }
+
@Override
public String filterType() {
return PRE_TYPE;
diff --git a/src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java b/src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
index 4ab871f..7432c0c 100644
--- a/src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
+++ b/src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java
@@ -39,9 +39,6 @@ public class LocationHeaderRewritingFilter extends ZuulFilter {
private final UrlPathHelper urlPathHelper = new UrlPathHelper();
- @Autowired
- private RouteLocator routeLocator;
-
@Value("${redirect.host}")
private String host;
@@ -50,6 +47,14 @@ public class LocationHeaderRewritingFilter extends ZuulFilter {
@Value("${redirect.scheme}")
private String scheme;
+
+ private final RouteLocator routeLocator;
+
+ @Autowired
+ public LocationHeaderRewritingFilter(RouteLocator routeLocator) {
+ this.routeLocator = routeLocator;
+ }
+
@Override
public String filterType() {
return POST_TYPE;