Skip to content

Package: JmsAssistantProducerWrapperFactory

JmsAssistantProducerWrapperFactory

nameinstructionbranchcomplexitylinemethod
JmsAssistantProducerWrapperFactory(String)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
create()
M: 9 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
destroyObject(PooledObject)
M: 15 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
static {...}
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
validateObject(PooledObject)
M: 23 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
wrap(JmsAssistantProducerWrapper)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others
3: *
4: * This program and the accompanying materials are made
5: * available under the terms of the Eclipse Public License 2.0
6: * which is available at https://www.eclipse.org/legal/epl-2.0/
7: *
8: * SPDX-License-Identifier: EPL-2.0
9: *
10: * Contributors:
11: * Eurotech - initial API and implementation
12: *******************************************************************************/
13: package org.eclipse.kapua.broker.core.pool;
14:
15: import javax.jms.Session;
16:
17: import org.apache.activemq.ActiveMQSession;
18: import org.apache.commons.pool2.BasePooledObjectFactory;
19: import org.apache.commons.pool2.PooledObject;
20: import org.apache.commons.pool2.impl.DefaultPooledObject;
21: import org.slf4j.Logger;
22: import org.slf4j.LoggerFactory;
23:
24: /**
25: * {@link BasePooledObjectFactory} assistant broker wrapper factory implementation.
26: *
27: * @since 1.0
28: */
29: public class JmsAssistantProducerWrapperFactory extends BasePooledObjectFactory<JmsAssistantProducerWrapper> {
30:
31: private static final Logger logger = LoggerFactory.getLogger(JmsAssistantProducerWrapperFactory.class);
32:
33: private final String destination;
34:
35: public JmsAssistantProducerWrapperFactory(String destination) {
36: this.destination = destination;
37: }
38:
39: @Override
40: public JmsAssistantProducerWrapper create() throws Exception {
41: return new JmsAssistantProducerWrapper(JmsConnectionFactory.VM_CONN_FACTORY, destination, false, false);
42: }
43:
44: @Override
45: public PooledObject<JmsAssistantProducerWrapper> wrap(JmsAssistantProducerWrapper producerWrapper) {
46: return new DefaultPooledObject<JmsAssistantProducerWrapper>(producerWrapper);
47: }
48:
49: /**
50: * Check if the session is still active
51: */
52: @Override
53: public boolean validateObject(PooledObject<JmsAssistantProducerWrapper> p) {
54: Session session = p.getObject().session;
55:• if (session instanceof ActiveMQSession) {
56:• return !((ActiveMQSession) session).isClosed();
57: } else {
58: logger.warn("Wrong session object type {}", session.getClass());
59: return true;
60: }
61: }
62:
63: @Override
64: public void destroyObject(PooledObject<JmsAssistantProducerWrapper> pooledProducerWrapper) throws Exception {
65: JmsAssistantProducerWrapper producerWrapper = pooledProducerWrapper.getObject();
66: logger.info("Close jms broker assistant producer wrapper: {}", producerWrapper.toString());
67: producerWrapper.close();
68: super.destroyObject(pooledProducerWrapper);
69: }
70:
71: }