Skip to content

Package: BrokerJAXBContextProvider

BrokerJAXBContextProvider

nameinstructionbranchcomplexitylinemethod
BrokerJAXBContextProvider()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getJAXBContext()
M: 166 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 10 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%

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;
14:
15: import org.eclipse.kapua.KapuaException;
16: import org.eclipse.kapua.app.api.core.exception.model.CleanJobDataExceptionInfo;
17: import org.eclipse.kapua.app.api.core.exception.model.ExceptionInfo;
18: import org.eclipse.kapua.app.api.core.exception.model.JobAlreadyRunningExceptionInfo;
19: import org.eclipse.kapua.app.api.core.exception.model.JobEngineExceptionInfo;
20: import org.eclipse.kapua.app.api.core.exception.model.JobExecutionEnqueuedExceptionInfo;
21: import org.eclipse.kapua.app.api.core.exception.model.JobInvalidTargetExceptionInfo;
22: import org.eclipse.kapua.app.api.core.exception.model.JobMissingStepExceptionInfo;
23: import org.eclipse.kapua.app.api.core.exception.model.JobMissingTargetExceptionInfo;
24: import org.eclipse.kapua.app.api.core.exception.model.JobNotRunningExceptionInfo;
25: import org.eclipse.kapua.app.api.core.exception.model.JobResumingExceptionInfo;
26: import org.eclipse.kapua.app.api.core.exception.model.JobRunningExceptionInfo;
27: import org.eclipse.kapua.app.api.core.exception.model.JobStartingExceptionInfo;
28: import org.eclipse.kapua.app.api.core.exception.model.JobStoppingExceptionInfo;
29: import org.eclipse.kapua.app.api.core.exception.model.ThrowableInfo;
30: import org.eclipse.kapua.broker.core.router.EndChainEndPoint;
31: import org.eclipse.kapua.broker.core.router.EndPointContainer;
32: import org.eclipse.kapua.broker.core.router.ParentEndPoint;
33: import org.eclipse.kapua.broker.core.router.SimpleEndPoint;
34: import org.eclipse.kapua.commons.configuration.metatype.TscalarImpl;
35: import org.eclipse.kapua.commons.service.event.store.api.EventStoreRecordCreator;
36: import org.eclipse.kapua.commons.service.event.store.api.EventStoreRecordListResult;
37: import org.eclipse.kapua.commons.service.event.store.api.EventStoreRecordQuery;
38: import org.eclipse.kapua.commons.service.event.store.api.EventStoreXmlRegistry;
39: import org.eclipse.kapua.commons.util.xml.JAXBContextProvider;
40: import org.eclipse.kapua.event.ServiceEvent;
41: import org.eclipse.kapua.job.engine.JobStartOptions;
42: import org.eclipse.kapua.model.config.metatype.KapuaTad;
43: import org.eclipse.kapua.model.config.metatype.KapuaTdesignate;
44: import org.eclipse.kapua.model.config.metatype.KapuaTicon;
45: import org.eclipse.kapua.model.config.metatype.KapuaTmetadata;
46: import org.eclipse.kapua.model.config.metatype.KapuaTobject;
47: import org.eclipse.kapua.model.config.metatype.KapuaTocd;
48: import org.eclipse.kapua.model.config.metatype.KapuaToption;
49: import org.eclipse.kapua.model.config.metatype.MetatypeXmlRegistry;
50: import org.eclipse.persistence.jaxb.JAXBContextFactory;
51: import org.eclipse.persistence.jaxb.MarshallerProperties;
52: import org.slf4j.Logger;
53: import org.slf4j.LoggerFactory;
54:
55: import javax.xml.bind.JAXBContext;
56: import javax.xml.bind.JAXBException;
57: import java.util.HashMap;
58: import java.util.Map;
59:
60: public class BrokerJAXBContextProvider implements JAXBContextProvider {
61:
62: private static Logger logger = LoggerFactory.getLogger(BrokerJAXBContextProvider.class);
63:
64: private JAXBContext context;
65:
66: @Override
67: public JAXBContext getJAXBContext() throws KapuaException {
68:• if (context == null) {
69: Map<String, Object> properties = new HashMap<>(1);
70: properties.put(MarshallerProperties.JSON_WRAPPER_AS_ARRAY_NAME, true);
71:
72: Class<?>[] classes = new Class<?>[]{
73: KapuaTmetadata.class,
74: KapuaTocd.class,
75: KapuaTad.class,
76: KapuaTicon.class,
77: TscalarImpl.class,
78: KapuaToption.class,
79: KapuaTdesignate.class,
80: KapuaTobject.class,
81: MetatypeXmlRegistry.class,
82: EndPointContainer.class,
83: SimpleEndPoint.class,
84: ParentEndPoint.class,
85: EndChainEndPoint.class,
86:
87: // KapuaEvent
88: ServiceEvent.class,
89: EventStoreRecordCreator.class,
90: EventStoreRecordListResult.class,
91: EventStoreRecordQuery.class,
92: EventStoreXmlRegistry.class,
93:
94: // Job Engine
95: JobStartOptions.class,
96:
97: // REST API exception models
98: ThrowableInfo.class,
99: ExceptionInfo.class,
100:
101: // Jobs Exception Info
102: CleanJobDataExceptionInfo.class,
103: JobAlreadyRunningExceptionInfo.class,
104: JobEngineExceptionInfo.class,
105: JobExecutionEnqueuedExceptionInfo.class,
106: JobInvalidTargetExceptionInfo.class,
107: JobMissingStepExceptionInfo.class,
108: JobMissingTargetExceptionInfo.class,
109: JobNotRunningExceptionInfo.class,
110: JobResumingExceptionInfo.class,
111: JobRunningExceptionInfo.class,
112: JobStartingExceptionInfo.class,
113: JobStoppingExceptionInfo.class
114: };
115: try {
116: context = JAXBContextFactory.createContext(classes, properties);
117: logger.debug("Broker JAXB context initialized!");
118: } catch (JAXBException jaxbException) {
119: throw KapuaException.internalError(jaxbException, "Error creating JAXBContext!");
120: }
121: }
122: return context;
123: }
124: }