Skip to content

Commit

Permalink
Merge pull request #3073 from Coduz/feature-storableApiRefactor
Browse files Browse the repository at this point in the history
Storable API Refactoring
  • Loading branch information
Coduz authored Oct 12, 2020
2 parents b5c1501 + 5155fca commit 977db8d
Showing 209 changed files with 5,589 additions and 3,881 deletions.
19 changes: 12 additions & 7 deletions assembly/broker/configurations/locator.xml
Original file line number Diff line number Diff line change
@@ -46,14 +46,15 @@
<api>org.eclipse.kapua.service.certificate.info.CertificateInfoService</api>
<api>org.eclipse.kapua.service.certificate.info.CertificateInfoFactory</api>

<api>org.eclipse.kapua.service.datastore.MessageStoreService</api>
<api>org.eclipse.kapua.service.datastore.ClientInfoRegistryService</api>
<api>org.eclipse.kapua.service.datastore.ClientInfoFactory</api>
<api>org.eclipse.kapua.service.datastore.ChannelInfoRegistryService</api>
<api>org.eclipse.kapua.service.datastore.ChannelInfoFactory</api>
<api>org.eclipse.kapua.service.datastore.MessageStoreService</api>
<api>org.eclipse.kapua.service.datastore.MessageStoreFactory</api>
<api>org.eclipse.kapua.service.datastore.MetricInfoRegistryService</api>

<api>org.eclipse.kapua.model.config.metatype.KapuaMetatypeFactory</api>
<api>org.eclipse.kapua.service.datastore.DatastoreObjectFactory</api>
<api>org.eclipse.kapua.service.datastore.model.query.StorablePredicateFactory</api>
<api>org.eclipse.kapua.service.datastore.MetricInfoFactory</api>
<api>org.eclipse.kapua.service.datastore.model.query.predicate.DatastorePredicateFactory</api>

<api>org.eclipse.kapua.service.device.call.DeviceCallFactory</api>
<api>org.eclipse.kapua.service.device.call.DeviceMessageFactory</api>
@@ -94,6 +95,9 @@
<api>org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionService</api>
<api>org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionFactory</api>

<api>org.eclipse.kapua.service.storable.model.id.StorableIdFactory</api>
<api>org.eclipse.kapua.service.storable.model.query.predicate.StorablePredicateFactory</api>

<api>org.eclipse.kapua.service.tag.TagFactory</api>
<api>org.eclipse.kapua.service.tag.TagService</api>

@@ -103,13 +107,14 @@
<api>org.eclipse.kapua.job.engine.JobEngineService</api>
<api>org.eclipse.kapua.job.engine.JobEngineFactory</api>

<api>org.eclipse.kapua.commons.service.event.store.api.EventStoreFactory</api>

<api>org.eclipse.kapua.message.KapuaMessageFactory</api>
<api>org.eclipse.kapua.message.device.data.KapuaDataMessageFactory</api>
<api>org.eclipse.kapua.message.device.lifecycle.KapuaLifecycleMessageFactory</api>

<api>org.eclipse.kapua.model.id.KapuaIdFactory</api>

<api>org.eclipse.kapua.commons.service.event.store.api.EventStoreFactory</api>
<api>org.eclipse.kapua.model.config.metatype.KapuaMetatypeFactory</api>

<provide>
<interceptor>annotation</interceptor>
2 changes: 2 additions & 0 deletions assembly/broker/descriptors/kapua-broker.xml
Original file line number Diff line number Diff line change
@@ -272,6 +272,8 @@
<include>${pom.groupId}:kapua-service-elasticsearch-client-api</include>
<include>${pom.groupId}:kapua-service-elasticsearch-client-rest</include>
<include>${pom.groupId}:kapua-service-elasticsearch-client-transport</include>
<include>${pom.groupId}:kapua-service-storable-api</include>
<include>${pom.groupId}:kapua-service-storable-internal</include>
<include>${pom.groupId}:kapua-tag-api</include>
<include>${pom.groupId}:kapua-tag-internal</include>
<include>${pom.groupId}:kapua-translator-api</include>
Original file line number Diff line number Diff line change
@@ -12,19 +12,13 @@
*******************************************************************************/
package org.eclipse.kapua.broker.core.message;

import java.util.Date;

import javax.jms.BytesMessage;
import javax.jms.JMSException;
import javax.jms.Topic;

import org.apache.activemq.command.ActiveMQMessage;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.kapua.KapuaException;
import org.eclipse.kapua.broker.core.converter.AbstractKapuaConverter;
import org.eclipse.kapua.broker.core.plugin.ConnectorDescriptor;
import org.eclipse.kapua.broker.core.plugin.KapuaSecurityBrokerFilter;
import org.eclipse.kapua.broker.core.plugin.ConnectorDescriptor.MessageType;
import org.eclipse.kapua.broker.core.plugin.KapuaSecurityBrokerFilter;
import org.eclipse.kapua.message.KapuaMessage;
import org.eclipse.kapua.model.id.KapuaId;
import org.eclipse.kapua.service.device.call.message.DeviceMessage;
@@ -35,6 +29,11 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.jms.BytesMessage;
import javax.jms.JMSException;
import javax.jms.Topic;
import java.util.Date;

/**
* Jms message utility class
*
@@ -109,8 +108,8 @@ public static CamelKapuaMessage<?> convertToKapuaMessage(ConnectorDescriptor con

// TODO check the code with huge messages
private static CamelKapuaMessage<?> convertToKapuaMessage(ConnectorDescriptor connectorDescriptor, Class<? extends DeviceMessage<?, ?>> deviceMessageType,
Class<? extends KapuaMessage<?, ?>> kapuaMessageType, BytesMessage jmsMessage, String jmsTopic,
Date queuedOn, KapuaId connectionId, String clientId)
Class<? extends KapuaMessage<?, ?>> kapuaMessageType, BytesMessage jmsMessage, String jmsTopic,
Date queuedOn, KapuaId connectionId, String clientId)
throws JMSException, KapuaException {
byte[] payload = null;
// TODO JMS message have no size limits!
@@ -136,7 +135,7 @@ private static CamelKapuaMessage<?> convertToKapuaMessage(ConnectorDescriptor co
* @throws KapuaException
*/
public static CamelKapuaMessage<?> convertToCamelKapuaMessage(ConnectorDescriptor connectorDescriptor, MessageType messageType, byte[] messageBody, String jmsTopic, Date queuedOn,
KapuaId connectionId, String clientId)
KapuaId connectionId, String clientId)
throws KapuaException {
KapuaMessage<?, ?> kapuaMessage = convertToKapuaMessage(connectorDescriptor.getDeviceClass(messageType), connectorDescriptor.getKapuaClass(messageType), messageBody, jmsTopic, queuedOn, clientId);
return new CamelKapuaMessage<>(kapuaMessage, connectionId, connectorDescriptor);
@@ -154,7 +153,7 @@ public static CamelKapuaMessage<?> convertToCamelKapuaMessage(ConnectorDescripto
* @throws KapuaException
*/
private static KapuaMessage<?, ?> convertToKapuaMessage(Class<? extends DeviceMessage<?, ?>> deviceMessageType, Class<? extends KapuaMessage<?, ?>> kapuaMessageType, byte[] messageBody,
String jmsTopic, Date queuedOn, String clientId)
String jmsTopic, Date queuedOn, String clientId)
throws KapuaException {
// first step... from jms to device dependent protocol level (unknown)
Translator<JmsMessage, DeviceMessage<?, ?>> translatorFromJms = Translator.getTranslatorFor(JmsMessage.class, deviceMessageType);// birth ...
@@ -178,12 +177,10 @@ public static CamelKapuaMessage<?> convertToCamelKapuaMessage(ConnectorDescripto
* @param kapuaMessage
* @return
* @throws KapuaException
* @throws ClassNotFoundException
*/
public static JmsMessage convertToJmsMessage(ConnectorDescriptor connectorDescriptor, MessageType messageType, KapuaMessage<?, ?> kapuaMessage) throws KapuaException {
// first step... from Kapua to device level dependent protocol (unknown)
Translator<KapuaMessage<?, ?>, DeviceMessage<?, ?>> translatorFromKapua = Translator
.getTranslatorFor(connectorDescriptor.getKapuaClass(messageType), connectorDescriptor.getDeviceClass(messageType));
Translator<KapuaMessage<?, ?>, DeviceMessage<?, ?>> translatorFromKapua = Translator.getTranslatorFor(connectorDescriptor.getKapuaClass(messageType), connectorDescriptor.getDeviceClass(messageType));
DeviceMessage<?, ?> deviceMessage = translatorFromKapua.translate(kapuaMessage);

// second step.... from device level dependent protocol (unknown) to jms
@@ -219,12 +216,12 @@ public static String convertJmsWildCardToMqtt(String jmsTopic) {

private static char convertWildcardJmsToMqtt(char c) {
switch (c) {
case '.':
return '/';
case '/':
return '.';
default:
return c;
case '.':
return '/';
case '/':
return '.';
default:
return c;
}
}

@@ -252,12 +249,12 @@ public static String convertMqttWildCardToJms(String mqttTopic) {

private static char convertWildcardMqttToJms(char c) {
switch (c) {
case '.':
return '/';
case '/':
return '.';
default:
return c;
case '.':
return '/';
case '/':
return '.';
default:
return c;
}
}

15 changes: 10 additions & 5 deletions broker/core/src/test/resources/locator.xml
Original file line number Diff line number Diff line change
@@ -46,15 +46,17 @@
<api>org.eclipse.kapua.service.certificate.info.CertificateInfoService</api>
<api>org.eclipse.kapua.service.certificate.info.CertificateInfoFactory</api>

<!-- datastore -->
<api>org.eclipse.kapua.service.datastore.MessageStoreService</api>
<api>org.eclipse.kapua.service.datastore.ClientInfoRegistryService</api>
<api>org.eclipse.kapua.service.datastore.ClientInfoFactory</api>
<api>org.eclipse.kapua.service.datastore.ChannelInfoRegistryService</api>
<api>org.eclipse.kapua.service.datastore.ChannelInfoFactory</api>
<api>org.eclipse.kapua.service.datastore.MessageStoreService</api>
<api>org.eclipse.kapua.service.datastore.MessageStoreFactory</api>
<api>org.eclipse.kapua.service.datastore.MetricInfoRegistryService</api>
<!-- datastore scope configuration -->
<api>org.eclipse.kapua.service.datastore.MetricInfoFactory</api>
<api>org.eclipse.kapua.service.datastore.model.query.predicate.DatastorePredicateFactory</api>

<api>org.eclipse.kapua.model.config.metatype.KapuaMetatypeFactory</api>
<api>org.eclipse.kapua.service.datastore.DatastoreObjectFactory</api>
<api>org.eclipse.kapua.service.datastore.model.query.StorablePredicateFactory</api>

<api>org.eclipse.kapua.service.device.call.DeviceCallFactory</api>
<api>org.eclipse.kapua.service.device.call.DeviceMessageFactory</api>
@@ -75,6 +77,9 @@
<api>org.eclipse.kapua.service.user.UserFactory</api>
<api>org.eclipse.kapua.service.user.UserService</api>

<api>org.eclipse.kapua.service.storable.model.id.StorableIdFactory</api>
<api>org.eclipse.kapua.service.storable.model.query.predicate.StorablePredicateFactory</api>

<api>org.eclipse.kapua.message.KapuaMessageFactory</api>

<api>org.eclipse.kapua.model.id.KapuaIdFactory</api>
Loading

0 comments on commit 977db8d

Please sign in to comment.