Ruslan Hryn created CXF-8943:
--------------------------------
Summary: Adding a listener for Container events is not working on
Jetty 9
Key: CXF-8943
URL: https://issues.apache.org/jira/browse/CXF-8943
Project: CXF
Issue Type: Bug
Affects Versions: 3.6.2
Environment: Spring Boot 2.7
Camel 3.21.1
CXF 3.6.2
Reporter: Ruslan Hryn
Attachments: Screenshot from 2023-10-10 20-01-23.png
Adding a listener for Container events is not working on Jetty 9
For example.
Add listener using JettyHTTPServerEngine
{code:java}
@Bean
public JettyHTTPServerEngineFactory jettyHTTPServerEngineFactory() {
JettyHTTPServerEngineFactory engineFactory = new
JettyHTTPServerEngineFactory();
JettyHTTPServerEngine engine = new JettyHTTPServerEngine(
new Container.Listener() {
@Override
public void beanAdded(Container parent, Object child) {
//
}
@Override
public void beanRemoved(Container parent, Object child) {
//
}
},
"localhost",
8080);
engineFactory.setEnginesList(Collections.singletonList(engine));
return engineFactory;
}{code}
The JettyHTTPServerEngine can't add this listener after the start of the server
because Server class does not implement addEventListener method directly, this
method comes from the parent class.
Therefore
ReflectionUtil.getDeclaredMethods(container.getClass()) does not return the
method addEventListener because this call does not consider methods from parent
classes.
The issue was caused by this commit
[https://github.com/apache/cxf/commit/2ff109358027653d1afd6f252cf6f25048cafbb9]
!Screenshot from 2023-10-10 20-01-23.png!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)