1313import javasabr .mqtt .service .ClientIdRegistry ;
1414import javasabr .mqtt .service .ConnectionService ;
1515import javasabr .mqtt .service .CredentialSource ;
16- import javasabr .mqtt .service .MqttSessionService ;
16+ import javasabr .mqtt .service .MessageOutFactoryService ;
17+ import javasabr .mqtt .service .SessionService ;
1718import javasabr .mqtt .service .PublishDeliveringService ;
1819import javasabr .mqtt .service .PublishReceivingService ;
1920import javasabr .mqtt .service .SubscriptionService ;
2021import javasabr .mqtt .service .handler .client .ExternalMqttClientReleaseHandler ;
2122import javasabr .mqtt .service .impl .DefaultConnectionService ;
2223import javasabr .mqtt .service .impl .DefaultMqttConnectionFactory ;
24+ import javasabr .mqtt .service .impl .DefaultMessageOutFactoryService ;
2325import javasabr .mqtt .service .impl .DefaultPublishDeliveringService ;
2426import javasabr .mqtt .service .impl .DefaultPublishReceivingService ;
2527import javasabr .mqtt .service .impl .ExternalMqttClientFactory ;
2628import javasabr .mqtt .service .impl .FileCredentialsSource ;
2729import javasabr .mqtt .service .impl .InMemoryClientIdRegistry ;
28- import javasabr .mqtt .service .impl .InMemoryMqttSessionService ;
30+ import javasabr .mqtt .service .impl .InMemorySessionService ;
2931import javasabr .mqtt .service .impl .SimpleAuthenticationService ;
3032import javasabr .mqtt .service .impl .SimpleSubscriptionService ;
3133import javasabr .mqtt .service .message .handler .MqttInMessageHandler ;
3840import javasabr .mqtt .service .message .handler .impl .PublishReleaseMqttInMessageHandler ;
3941import javasabr .mqtt .service .message .handler .impl .SubscribeMqttInMessageHandler ;
4042import javasabr .mqtt .service .message .handler .impl .UnsubscribeMqttInMessageHandler ;
43+ import javasabr .mqtt .service .message .out .factory .Mqtt311MessageOutFactory ;
44+ import javasabr .mqtt .service .message .out .factory .Mqtt5MessageOutFactory ;
45+ import javasabr .mqtt .service .message .out .factory .MessageOutFactory ;
4146import javasabr .mqtt .service .publish .handler .MqttPublishInMessageHandler ;
4247import javasabr .mqtt .service .publish .handler .MqttPublishOutMessageHandler ;
4348import javasabr .mqtt .service .publish .handler .impl .Qos0MqttPublishInMessageHandler ;
@@ -71,9 +76,9 @@ ClientIdRegistry clientIdRegistry(Environment env) {
7176 }
7277
7378 @ Bean
74- MqttSessionService mqttSessionService (
79+ SessionService mqttSessionService (
7580 @ Value ("${sessions.clean.thread.interval:60000}" ) int cleanInterval ) {
76- return new InMemoryMqttSessionService (cleanInterval );
81+ return new InMemorySessionService (cleanInterval );
7782 }
7883
7984 @ Bean
@@ -94,17 +99,35 @@ SubscriptionService subscriptionService() {
9499 return new SimpleSubscriptionService ();
95100 }
96101
102+ @ Bean
103+ MessageOutFactory mqtt311MessageOutFactory () {
104+ return new Mqtt311MessageOutFactory ();
105+ }
106+
107+ @ Bean
108+ MessageOutFactory mqtt5MessageOutFactory () {
109+ return new Mqtt5MessageOutFactory ();
110+ }
111+
112+ @ Bean
113+ MessageOutFactoryService mqttMessageOutFactoryService (
114+ Collection <? extends MessageOutFactory > knownFactories ) {
115+ return new DefaultMessageOutFactoryService (knownFactories );
116+ }
117+
97118 @ Bean
98119 MqttInMessageHandler connectInMqttInMessageHandler (
99120 ClientIdRegistry clientIdRegistry ,
100121 AuthenticationService authenticationService ,
101- MqttSessionService mqttSessionService ,
102- SubscriptionService subscriptionService ) {
122+ SessionService sessionService ,
123+ SubscriptionService subscriptionService ,
124+ MessageOutFactoryService messageOutFactoryService ) {
103125 return new ConnectInMqttInMessageHandler (
104126 clientIdRegistry ,
105127 authenticationService ,
106- mqttSessionService ,
107- subscriptionService );
128+ sessionService ,
129+ subscriptionService ,
130+ messageOutFactoryService );
108131 }
109132
110133 @ Bean
@@ -138,13 +161,17 @@ MqttInMessageHandler disconnectMqttInMessageHandler() {
138161 }
139162
140163 @ Bean
141- MqttInMessageHandler subscribeMqttInMessageHandler (SubscriptionService subscriptionService ) {
142- return new SubscribeMqttInMessageHandler (subscriptionService );
164+ MqttInMessageHandler subscribeMqttInMessageHandler (
165+ SubscriptionService subscriptionService ,
166+ MessageOutFactoryService messageOutFactoryService ) {
167+ return new SubscribeMqttInMessageHandler (subscriptionService , messageOutFactoryService );
143168 }
144169
145170 @ Bean
146- MqttInMessageHandler unsubscribeMqttInMessageHandler (SubscriptionService subscriptionService ) {
147- return new UnsubscribeMqttInMessageHandler (subscriptionService );
171+ MqttInMessageHandler unsubscribeMqttInMessageHandler (
172+ SubscriptionService subscriptionService ,
173+ MessageOutFactoryService messageOutFactoryService ) {
174+ return new UnsubscribeMqttInMessageHandler (subscriptionService , messageOutFactoryService );
148175 }
149176
150177 @ Bean
@@ -153,18 +180,24 @@ ConnectionService mqttConnectionService(Collection<? extends MqttInMessageHandle
153180 }
154181
155182 @ Bean
156- MqttPublishOutMessageHandler qos0MqttPublishOutMessageHandler (SubscriptionService subscriptionService ) {
157- return new Qos0MqttPublishOutMessageHandler (subscriptionService );
183+ MqttPublishOutMessageHandler qos0MqttPublishOutMessageHandler (
184+ SubscriptionService subscriptionService ,
185+ MessageOutFactoryService messageOutFactoryService ) {
186+ return new Qos0MqttPublishOutMessageHandler (subscriptionService , messageOutFactoryService );
158187 }
159188
160189 @ Bean
161- MqttPublishOutMessageHandler qos1MqttPublishOutMessageHandler (SubscriptionService subscriptionService ) {
162- return new Qos1MqttPublishOutMessageHandler (subscriptionService );
190+ MqttPublishOutMessageHandler qos1MqttPublishOutMessageHandler (
191+ SubscriptionService subscriptionService ,
192+ MessageOutFactoryService messageOutFactoryService ) {
193+ return new Qos1MqttPublishOutMessageHandler (subscriptionService , messageOutFactoryService );
163194 }
164195
165196 @ Bean
166- MqttPublishOutMessageHandler qos2MqttPublishOutMessageHandler (SubscriptionService subscriptionService ) {
167- return new Qos2MqttPublishOutMessageHandler (subscriptionService );
197+ MqttPublishOutMessageHandler qos2MqttPublishOutMessageHandler (
198+ SubscriptionService subscriptionService ,
199+ MessageOutFactoryService messageOutFactoryService ) {
200+ return new Qos2MqttPublishOutMessageHandler (subscriptionService , messageOutFactoryService );
168201 }
169202
170203 @ Bean
@@ -183,15 +216,23 @@ MqttPublishInMessageHandler qos0MqttPublishInMessageHandler(
183216 @ Bean
184217 MqttPublishInMessageHandler qos1MqttPublishInMessageHandler (
185218 SubscriptionService subscriptionService ,
186- PublishDeliveringService publishDeliveringService ) {
187- return new Qos1MqttPublishInMessageHandler (subscriptionService , publishDeliveringService );
219+ PublishDeliveringService publishDeliveringService ,
220+ MessageOutFactoryService messageOutFactoryService ) {
221+ return new Qos1MqttPublishInMessageHandler (
222+ subscriptionService ,
223+ publishDeliveringService ,
224+ messageOutFactoryService );
188225 }
189226
190227 @ Bean
191228 MqttPublishInMessageHandler qos2MqttPublishInMessageHandler (
192229 SubscriptionService subscriptionService ,
193- PublishDeliveringService publishDeliveringService ) {
194- return new Qos2MqttPublishInMessageHandler (subscriptionService , publishDeliveringService );
230+ PublishDeliveringService publishDeliveringService ,
231+ MessageOutFactoryService messageOutFactoryService ) {
232+ return new Qos2MqttPublishInMessageHandler (
233+ subscriptionService ,
234+ publishDeliveringService ,
235+ messageOutFactoryService );
195236 }
196237
197238 @ Bean
@@ -203,9 +244,9 @@ PublishReceivingService publishReceivingService(
203244 @ Bean
204245 MqttClientReleaseHandler externalMqttClientReleaseHandler (
205246 ClientIdRegistry clientIdRegistry ,
206- MqttSessionService mqttSessionService ,
247+ SessionService sessionService ,
207248 SubscriptionService subscriptionService ) {
208- return new ExternalMqttClientReleaseHandler (clientIdRegistry , mqttSessionService , subscriptionService );
249+ return new ExternalMqttClientReleaseHandler (clientIdRegistry , sessionService , subscriptionService );
209250 }
210251
211252 @ Bean
0 commit comments