Skip to content

Commit 66aae00

Browse files
Remove dependency on framework-jmx-command-client (#115)
Co-authored-by: santhosh <santhosh.kotha@hmcts.net>
1 parent 3f6ac48 commit 66aae00

File tree

6 files changed

+74
-81
lines changed

6 files changed

+74
-81
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ on [Keep a CHANGELOG](http://keepachangelog.com/). This project adheres to
44
[Semantic Versioning](http://semver.org/).
55

66
[Unreleased]
7+
### Changed
8+
- Break dependency on framework-command-client in test-utils-jmx library
79

810
## [17.4.5] - 2024-05-29
911
### Changed

framework-jmx-command-client/src/main/java/uk/gov/justice/framework/command/client/startup/ObjectFactory.java

Lines changed: 12 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package uk.gov.justice.framework.command.client.startup;
22

3-
import uk.gov.justice.framework.command.client.CommandExecutor;
4-
import uk.gov.justice.framework.command.client.CommandRunModeSelector;
5-
import uk.gov.justice.framework.command.client.JmxParametersFactory;
6-
import uk.gov.justice.framework.command.client.MainApplication;
7-
import uk.gov.justice.framework.command.client.ReturnCodeFactory;
3+
import org.apache.commons.cli.BasicParser;
4+
import org.apache.commons.cli.HelpFormatter;
5+
import uk.gov.justice.framework.command.client.*;
86
import uk.gov.justice.framework.command.client.cdi.producers.OptionsFactory;
97
import uk.gov.justice.framework.command.client.io.CommandPrinter;
108
import uk.gov.justice.framework.command.client.io.ToConsolePrinter;
@@ -14,21 +12,17 @@
1412
import uk.gov.justice.framework.command.client.jmx.SystemCommandInvoker;
1513
import uk.gov.justice.framework.command.client.util.Sleeper;
1614
import uk.gov.justice.framework.command.client.util.UtcClock;
17-
import uk.gov.justice.services.jmx.api.name.CommandMBeanNameProvider;
18-
import uk.gov.justice.services.jmx.api.name.ObjectNameFactory;
15+
import uk.gov.justice.services.jmx.system.command.client.ConnectorObjectFactory;
1916
import uk.gov.justice.services.jmx.system.command.client.SystemCommanderClientFactory;
20-
import uk.gov.justice.services.jmx.system.command.client.connection.ConnectorWrapper;
21-
import uk.gov.justice.services.jmx.system.command.client.connection.EnvironmentFactory;
22-
import uk.gov.justice.services.jmx.system.command.client.connection.JMXConnectorFactory;
23-
import uk.gov.justice.services.jmx.system.command.client.connection.JmxUrlFactory;
24-
import uk.gov.justice.services.jmx.system.command.client.connection.MBeanConnector;
25-
import uk.gov.justice.services.jmx.system.command.client.connection.RemoteMBeanFactory;
26-
27-
import org.apache.commons.cli.BasicParser;
28-
import org.apache.commons.cli.HelpFormatter;
2917

3018
public class ObjectFactory {
3119

20+
private final ConnectorObjectFactory connectorObjectFactory;
21+
22+
public ObjectFactory() {
23+
this.connectorObjectFactory = new ConnectorObjectFactory();
24+
}
25+
3226
public MainApplication mainApplication() {
3327

3428
return new MainApplication(
@@ -77,8 +71,8 @@ public ToConsolePrinter toConsolePrinter() {
7771

7872
public SystemCommanderClientFactory systemCommanderClientFactory() {
7973
return new SystemCommanderClientFactory(
80-
mBeanConnector(),
81-
jmxConnectorFactory()
74+
connectorObjectFactory.mBeanConnector(),
75+
connectorObjectFactory.jmxConnectorFactory()
8276
);
8377
}
8478

@@ -118,40 +112,4 @@ public CommandRunModeSelector commandRunModeSelector() {
118112
return new CommandRunModeSelector();
119113
}
120114

121-
public MBeanConnector mBeanConnector() {
122-
return new MBeanConnector(
123-
commandMBeanNameProvider(),
124-
remoteMBeanFactory());
125-
}
126-
public JMXConnectorFactory jmxConnectorFactory() {
127-
return new JMXConnectorFactory(
128-
jmxUrlFactory(),
129-
connectorWrapper(),
130-
environmentFactory()
131-
);
132-
}
133-
134-
public JmxUrlFactory jmxUrlFactory() {
135-
return new JmxUrlFactory();
136-
}
137-
138-
public ConnectorWrapper connectorWrapper() {
139-
return new ConnectorWrapper();
140-
}
141-
142-
public EnvironmentFactory environmentFactory() {
143-
return new EnvironmentFactory();
144-
}
145-
146-
public CommandMBeanNameProvider commandMBeanNameProvider() {
147-
return new CommandMBeanNameProvider(objectNameFactory());
148-
}
149-
150-
public ObjectNameFactory objectNameFactory() {
151-
return new ObjectNameFactory();
152-
}
153-
154-
public RemoteMBeanFactory remoteMBeanFactory() {
155-
return new RemoteMBeanFactory();
156-
}
157115
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package uk.gov.justice.services.jmx.system.command.client;
2+
3+
import uk.gov.justice.services.jmx.api.name.CommandMBeanNameProvider;
4+
import uk.gov.justice.services.jmx.api.name.ObjectNameFactory;
5+
import uk.gov.justice.services.jmx.system.command.client.connection.*;
6+
7+
public class ConnectorObjectFactory {
8+
9+
public MBeanConnector mBeanConnector() {
10+
return new MBeanConnector(
11+
commandMBeanNameProvider(),
12+
remoteMBeanFactory());
13+
}
14+
public JMXConnectorFactory jmxConnectorFactory() {
15+
return new JMXConnectorFactory(
16+
jmxUrlFactory(),
17+
connectorWrapper(),
18+
environmentFactory()
19+
);
20+
}
21+
22+
private JmxUrlFactory jmxUrlFactory() {
23+
return new JmxUrlFactory();
24+
}
25+
26+
private ConnectorWrapper connectorWrapper() {
27+
return new ConnectorWrapper();
28+
}
29+
30+
private EnvironmentFactory environmentFactory() {
31+
return new EnvironmentFactory();
32+
}
33+
34+
private CommandMBeanNameProvider commandMBeanNameProvider() {
35+
return new CommandMBeanNameProvider(new ObjectNameFactory());
36+
}
37+
38+
private RemoteMBeanFactory remoteMBeanFactory() {
39+
return new RemoteMBeanFactory();
40+
}
41+
}

test-utils/test-utils-jmx/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@
2626
<artifactId>framework-management</artifactId>
2727
<version>${project.version}</version>
2828
</dependency>
29-
<dependency>
30-
<groupId>uk.gov.justice.services</groupId>
31-
<artifactId>framework-jmx-command-client</artifactId>
32-
<version>${project.version}</version>
33-
</dependency>
3429
</dependencies>
3530

3631
</project>

test-utils/test-utils-jmx/src/main/java/uk/gov/justice/services/jmx/system/command/client/TestSystemCommanderClientFactory.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package uk.gov.justice.services.jmx.system.command.client;
22

3-
import uk.gov.justice.framework.command.client.startup.ObjectFactory;
43
import uk.gov.justice.services.jmx.system.command.client.connection.JMXConnectorFactory;
54
import uk.gov.justice.services.jmx.system.command.client.connection.JmxParameters;
65
import uk.gov.justice.services.jmx.system.command.client.connection.MBeanConnector;
@@ -9,20 +8,20 @@
98

109
public class TestSystemCommanderClientFactory {
1110

12-
private final ObjectFactory objectFactory;
11+
private final ConnectorObjectFactory connectorObjectFactory;
1312

1413
public TestSystemCommanderClientFactory() {
15-
this(new ObjectFactory());
14+
this(new ConnectorObjectFactory());
1615
}
1716

18-
public TestSystemCommanderClientFactory(final ObjectFactory objectFactory) {
19-
this.objectFactory = objectFactory;
17+
public TestSystemCommanderClientFactory(ConnectorObjectFactory connectorObjectFactory) {
18+
this.connectorObjectFactory = connectorObjectFactory;
2019
}
2120

2221
public SystemCommanderClient create(final JmxParameters jmxParameters) {
2322

24-
final JMXConnectorFactory jmxConnectorFactory = objectFactory.jmxConnectorFactory();
25-
final MBeanConnector mBeanConnector = objectFactory.mBeanConnector();
23+
final JMXConnectorFactory jmxConnectorFactory = connectorObjectFactory.jmxConnectorFactory();
24+
final MBeanConnector mBeanConnector = connectorObjectFactory.mBeanConnector();
2625

2726

2827
final JMXConnector jmxConnector = jmxConnectorFactory.createJmxConnector(jmxParameters);

test-utils/test-utils-jmx/src/test/java/uk/gov/justice/services/jmx/system/command/client/TestSystemCommanderClientFactoryTest.java

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,27 @@
11
package uk.gov.justice.services.jmx.system.command.client;
22

3-
import static org.hamcrest.CoreMatchers.is;
4-
import static org.hamcrest.MatcherAssert.assertThat;
5-
import static org.mockito.Mockito.mock;
6-
import static org.mockito.Mockito.when;
7-
import static uk.gov.justice.services.test.utils.core.reflection.ReflectionUtil.getValueOfField;
8-
9-
import uk.gov.justice.framework.command.client.startup.ObjectFactory;
3+
import org.junit.jupiter.api.Test;
4+
import org.junit.jupiter.api.extension.ExtendWith;
5+
import org.mockito.InjectMocks;
6+
import org.mockito.Mock;
7+
import org.mockito.junit.jupiter.MockitoExtension;
108
import uk.gov.justice.services.jmx.system.command.client.connection.JMXConnectorFactory;
119
import uk.gov.justice.services.jmx.system.command.client.connection.JmxParameters;
1210
import uk.gov.justice.services.jmx.system.command.client.connection.MBeanConnector;
1311

1412
import javax.management.remote.JMXConnector;
1513

16-
import org.junit.jupiter.api.Test;
17-
import org.junit.jupiter.api.extension.ExtendWith;
18-
import org.mockito.InjectMocks;
19-
import org.mockito.Mock;
20-
import org.mockito.junit.jupiter.MockitoExtension;
14+
import static org.hamcrest.CoreMatchers.is;
15+
import static org.hamcrest.MatcherAssert.assertThat;
16+
import static org.mockito.Mockito.mock;
17+
import static org.mockito.Mockito.when;
18+
import static uk.gov.justice.services.test.utils.core.reflection.ReflectionUtil.getValueOfField;
2119

2220
@ExtendWith(MockitoExtension.class)
2321
public class TestSystemCommanderClientFactoryTest {
2422

2523
@Mock
26-
private ObjectFactory objectFactory;
24+
private ConnectorObjectFactory connectorObjectFactory;
2725

2826
@InjectMocks
2927
private TestSystemCommanderClientFactory testSystemCommanderClientFactory;
@@ -36,8 +34,8 @@ public void shouldCreateCorrectlyConfiguredInstanceOfSystemCommanderClient() thr
3634
final JmxParameters jmxParameters = mock(JmxParameters.class);
3735
final JMXConnector jmxConnector = mock(JMXConnector.class);
3836

39-
when(objectFactory.jmxConnectorFactory()).thenReturn(jmxConnectorFactory);
40-
when(objectFactory.mBeanConnector()).thenReturn(mBeanConnector);
37+
when(connectorObjectFactory.jmxConnectorFactory()).thenReturn(jmxConnectorFactory);
38+
when(connectorObjectFactory.mBeanConnector()).thenReturn(mBeanConnector);
4139
when(jmxConnectorFactory.createJmxConnector(jmxParameters)).thenReturn(jmxConnector);
4240

4341
final SystemCommanderClient systemCommanderClient = testSystemCommanderClientFactory.create(jmxParameters);

0 commit comments

Comments
 (0)