mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'master' into 'master'
Modify code to limit garbage collectible objects and create method to deploy adapters without custom mapping See merge request entgra/carbon-device-mgt!316
This commit is contained in:
commit
35015471e4
@ -27,7 +27,7 @@ import java.util.List;
|
||||
*/
|
||||
public class AdapterConfiguration {
|
||||
@ApiModelProperty(value = "Adapter properties list")
|
||||
private List<AdapterProperty> adapterProperties = new ArrayList<>();
|
||||
private List<AdapterProperty> adapterProperties;
|
||||
@ApiModelProperty(value = "Custom-mapping flag")
|
||||
private boolean isCustomMappingEnabled;
|
||||
@ApiModelProperty(value = "Mapping configurations")
|
||||
|
||||
@ -36,11 +36,11 @@ public class EventStream {
|
||||
@ApiModelProperty(value = "Stream description")
|
||||
private String description;
|
||||
@ApiModelProperty(value = "Meta attribute list")
|
||||
private List<Attribute> metaData = new ArrayList<>();
|
||||
private List<Attribute> metaData;
|
||||
@ApiModelProperty(value = "Correlation attribute list")
|
||||
private List<Attribute> correlationData = new ArrayList<>();
|
||||
private List<Attribute> correlationData;
|
||||
@ApiModelProperty(value = "Payload attribute list")
|
||||
private List<Attribute> payloadData = new ArrayList<>();
|
||||
private List<Attribute> payloadData;
|
||||
|
||||
@ApiModelProperty(value = "Stream definition" , notes = "use only when creating stream as a String")
|
||||
private String definition;
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
package org.wso2.carbon.device.mgt.jaxrs.exception;
|
||||
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response;
|
||||
@ -27,8 +28,30 @@ import javax.ws.rs.core.Response;
|
||||
* Custom exception class for wrapping BadRequest related exceptions.
|
||||
*/
|
||||
public class BadRequestException extends WebApplicationException {
|
||||
private String message;
|
||||
private static final long serialVersionUID = -24991723711391192L;
|
||||
|
||||
public BadRequestException(ErrorResponse error) {
|
||||
super(Response.status(Response.Status.BAD_REQUEST).entity(error).build());
|
||||
}
|
||||
|
||||
public BadRequestException(ErrorDTO errorDTO) {
|
||||
super(Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(errorDTO)
|
||||
.header(Constants.DeviceConstants.HEADER_CONTENT_TYPE, Constants.DeviceConstants.APPLICATION_JSON)
|
||||
.build());
|
||||
message = errorDTO.getMessage();
|
||||
}
|
||||
|
||||
public BadRequestException(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
}
|
||||
@ -36,7 +36,11 @@ public class InvalidExecutionPlanException extends WebApplicationException {
|
||||
.entity(errorDTO)
|
||||
.header(Constants.DeviceConstants.HEADER_CONTENT_TYPE, Constants.DeviceConstants.APPLICATION_JSON)
|
||||
.build());
|
||||
message = errorDTO.getDescription();
|
||||
message = errorDTO.getMessage();
|
||||
}
|
||||
|
||||
public InvalidExecutionPlanException(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -18,7 +18,6 @@
|
||||
package org.wso2.carbon.device.mgt.jaxrs.service.impl;
|
||||
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.Attribute;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.AdapterMappingConfiguration;
|
||||
import org.wso2.carbon.device.mgt.jaxrs.beans.analytics.MappingProperty;
|
||||
@ -116,8 +115,13 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
public Response deployEventDefinitionAsDto(@Valid EventStream stream) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
try {
|
||||
validateStreamProperties(stream);
|
||||
deployStream(stream);
|
||||
return Response.ok().build();
|
||||
} catch (BadRequestException e) {
|
||||
String errMsg = "Failed to deploy stream due to invalid payload";
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(errMsg).build();
|
||||
} catch (AxisFault e) {
|
||||
String errMsg = "Failed to create event definitions for tenant " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
@ -187,6 +191,10 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
}
|
||||
deployReceiver(receiver, customMapping, adapterConfiguration);
|
||||
return Response.ok().build();
|
||||
} catch (BadRequestException e) {
|
||||
String errMsg = "Failed to deploy receiver due to invalid payload";
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(errMsg).build();
|
||||
} catch (AxisFault e) {
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
@ -256,6 +264,10 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
}
|
||||
deployPublisher(publisher, customMapping, adapterConfiguration);
|
||||
return Response.ok().build();
|
||||
} catch (BadRequestException e) {
|
||||
String errMsg = "Failed to deploy publisher due to invalid payload";
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(errMsg).build();
|
||||
} catch (AxisFault e) {
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
@ -283,8 +295,12 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
@Valid SiddhiExecutionPlan plan) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||
try {
|
||||
publishSiddhiExecutionPlan(name, isEdited, plan.getDefinition());
|
||||
deploySiddhiExecutionPlan(name, isEdited, plan.getDefinition());
|
||||
return Response.ok().build();
|
||||
} catch (InvalidExecutionPlanException e) {
|
||||
String errMsg = "Failed to deploy siddhi script due to invalid payload";
|
||||
log.error(errMsg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(errMsg).build();
|
||||
} catch (AxisFault e) {
|
||||
String errMsg = "Failed to create event definitions for tenantDomain: " + tenantDomain;
|
||||
log.error(errMsg, e);
|
||||
@ -315,14 +331,6 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
List<Attribute> metaData = stream.getMetaData();
|
||||
List<Attribute> payloadData = stream.getPayloadData();
|
||||
List<Attribute> correlationData = stream.getCorrelationData();
|
||||
if (metaData.isEmpty() && correlationData.isEmpty() && payloadData.isEmpty()) {
|
||||
String errMsg = String.format("Failed to validate Stream property attributes of %s:%s",
|
||||
stream.getName(), stream.getVersion());
|
||||
ErrorResponse errorResponse = new ErrorResponse();
|
||||
errorResponse.setMessage(errMsg);
|
||||
log.error(errMsg);
|
||||
throw new BadRequestException(errorResponse);
|
||||
}
|
||||
try {
|
||||
eventStreamAdminServiceStub = DeviceMgtAPIUtils.getEventStreamAdminServiceStub();
|
||||
|
||||
@ -331,10 +339,15 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
eventStreamDefinitionDto.setVersion(stream.getVersion());
|
||||
eventStreamDefinitionDto.setNickName(stream.getNickName());
|
||||
eventStreamDefinitionDto.setDescription(stream.getDescription());
|
||||
eventStreamDefinitionDto.setMetaData(addEventAttributesToDto(metaData));
|
||||
eventStreamDefinitionDto.setPayloadData(addEventAttributesToDto(payloadData));
|
||||
eventStreamDefinitionDto.setCorrelationData(addEventAttributesToDto(correlationData));
|
||||
|
||||
if (metaData != null) {
|
||||
eventStreamDefinitionDto.setMetaData(addEventAttributesToDto(metaData));
|
||||
}
|
||||
if (payloadData != null) {
|
||||
eventStreamDefinitionDto.setPayloadData(addEventAttributesToDto(payloadData));
|
||||
}
|
||||
if (correlationData != null) {
|
||||
eventStreamDefinitionDto.setCorrelationData(addEventAttributesToDto(correlationData));
|
||||
}
|
||||
String streamId = stream.getName() + ":" + stream.getVersion();
|
||||
if (eventStreamAdminServiceStub.getStreamDefinitionDto(streamId) != null) {
|
||||
eventStreamAdminServiceStub.editEventStreamDefinitionAsDto(eventStreamDefinitionDto, streamId);
|
||||
@ -344,7 +357,6 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
} finally {
|
||||
cleanup(eventStreamAdminServiceStub);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -360,8 +372,8 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
private void deployReceiver(Adapter receiver, boolean customMapping,
|
||||
AdapterConfiguration adapterConfiguration)
|
||||
throws RemoteException, UserStoreException, JWTClientException {
|
||||
EventReceiverAdminServiceStub eventReceiverAdminServiceStub = DeviceMgtAPIUtils.getEventReceiverAdminServiceStub();
|
||||
|
||||
EventReceiverAdminServiceStub eventReceiverAdminServiceStub = DeviceMgtAPIUtils
|
||||
.getEventReceiverAdminServiceStub();
|
||||
try {
|
||||
String receiverName = receiver.getAdapterName();
|
||||
String adapterType = receiver.getAdapterType().toStringFormatted();
|
||||
@ -374,55 +386,95 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
}
|
||||
BasicInputAdapterPropertyDto[] basicInputAdapterPropertyDtos = addReceiverConfigToDto(adapterProperties);
|
||||
|
||||
AdapterMappingConfiguration adapterMappingConfiguration = adapterConfiguration.getAdapterMappingConfiguration();
|
||||
MessageFormat messageFormat = adapterMappingConfiguration.getMessageFormat();
|
||||
if (!messageFormat.toString().equals("wso2event")) {
|
||||
EventMappingPropertyDto[] inputMappingPropertyDtos =
|
||||
addReceiverMappingToDto(adapterMappingConfiguration.getInputMappingProperties());
|
||||
if (messageFormat.toString().equals("xml")) {
|
||||
EventMappingPropertyDto[] namespaceMappingPropertyDtos =
|
||||
addReceiverMappingToDto(adapterMappingConfiguration.getNamespaceMappingProperties());
|
||||
eventReceiverAdminServiceStub.deployXmlEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, namespaceMappingPropertyDtos, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping);
|
||||
} else {
|
||||
if (messageFormat.toString().equals("map")) {
|
||||
eventReceiverAdminServiceStub.deployMapEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping);
|
||||
} else if (messageFormat.toString().equals("text")) {
|
||||
eventReceiverAdminServiceStub.deployTextEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping);
|
||||
if (customMapping) {
|
||||
AdapterMappingConfiguration adapterMappingConfiguration = adapterConfiguration
|
||||
.getAdapterMappingConfiguration();
|
||||
MessageFormat messageFormat = adapterMappingConfiguration.getMessageFormat();
|
||||
if (!messageFormat.toString().equals("wso2event")) {
|
||||
EventMappingPropertyDto[] inputMappingPropertyDtos =
|
||||
addReceiverMappingToDto(adapterMappingConfiguration.getInputMappingProperties());
|
||||
if (messageFormat.toString().equals("xml")) {
|
||||
EventMappingPropertyDto[] namespaceMappingPropertyDtos =
|
||||
addReceiverMappingToDto(adapterMappingConfiguration.getNamespaceMappingProperties());
|
||||
eventReceiverAdminServiceStub.deployXmlEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, namespaceMappingPropertyDtos, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, true);
|
||||
} else {
|
||||
eventReceiverAdminServiceStub.deployJsonEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping);
|
||||
if (messageFormat.toString().equals("map")) {
|
||||
eventReceiverAdminServiceStub.deployMapEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, true);
|
||||
} else if (messageFormat.toString().equals("text")) {
|
||||
eventReceiverAdminServiceStub.deployTextEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, true);
|
||||
} else {
|
||||
eventReceiverAdminServiceStub.deployJsonEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
EventMappingPropertyDto[] correlationMappingPropertyDtos = addReceiverMappingToDto(
|
||||
adapterMappingConfiguration.getCorrelationMappingProperties()
|
||||
);
|
||||
EventMappingPropertyDto[] metaMappingPropertyDtos = addReceiverMappingToDto(
|
||||
adapterMappingConfiguration.getInputMappingProperties()
|
||||
);
|
||||
EventMappingPropertyDto[] payloadMappingPropertyDtos = addReceiverMappingToDto(
|
||||
adapterMappingConfiguration.getPayloadMappingProperties()
|
||||
);
|
||||
|
||||
eventReceiverAdminServiceStub.deployWso2EventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, metaMappingPropertyDtos
|
||||
, correlationMappingPropertyDtos, payloadMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, true
|
||||
, eventStreamWithVersion);
|
||||
}
|
||||
} else {
|
||||
EventMappingPropertyDto[] correlationMappingPropertyDtos = addReceiverMappingToDto(
|
||||
adapterMappingConfiguration.getCorrelationMappingProperties()
|
||||
);
|
||||
EventMappingPropertyDto[] metaMappingPropertyDtos = addReceiverMappingToDto(
|
||||
adapterMappingConfiguration.getInputMappingProperties()
|
||||
);
|
||||
EventMappingPropertyDto[] payloadMappingPropertyDtos = addReceiverMappingToDto(
|
||||
adapterMappingConfiguration.getPayloadMappingProperties()
|
||||
);
|
||||
|
||||
eventReceiverAdminServiceStub.deployWso2EventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, metaMappingPropertyDtos
|
||||
, correlationMappingPropertyDtos, payloadMappingPropertyDtos
|
||||
, basicInputAdapterPropertyDtos, customMapping
|
||||
, eventStreamWithVersion);
|
||||
deployReceiverWithoutMapping(receiverName, eventStreamWithVersion, adapterType,
|
||||
eventReceiverAdminServiceStub, basicInputAdapterPropertyDtos);
|
||||
}
|
||||
} finally {
|
||||
cleanup(eventReceiverAdminServiceStub);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To deploy receiver if custom mapping is false
|
||||
*
|
||||
* @param receiverName Name of the receiver
|
||||
* @param eventStreamWithVersion Attached event stream of the receiver
|
||||
* @param adapterType Adapter type name
|
||||
* @param eventReceiverAdminServiceStub Stub to deploy receiver
|
||||
* @param basicInputAdapterPropertyDtos DTO to attach receiver data
|
||||
* @throws RemoteException Exception that may occur during a remote method call
|
||||
*/
|
||||
private void deployReceiverWithoutMapping(String receiverName, String eventStreamWithVersion
|
||||
, String adapterType, EventReceiverAdminServiceStub eventReceiverAdminServiceStub
|
||||
, BasicInputAdapterPropertyDto[] basicInputAdapterPropertyDtos)
|
||||
throws RemoteException {
|
||||
switch (adapterType) {
|
||||
case "iot-event":
|
||||
case "wso2event":
|
||||
eventReceiverAdminServiceStub.deployWso2EventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, null, null
|
||||
, null, basicInputAdapterPropertyDtos, false
|
||||
, eventStreamWithVersion);
|
||||
break;
|
||||
case "soap":
|
||||
eventReceiverAdminServiceStub.deployXmlEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, null, null
|
||||
, null, basicInputAdapterPropertyDtos, false);
|
||||
break;
|
||||
default:
|
||||
eventReceiverAdminServiceStub.deployTextEventReceiverConfiguration(receiverName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, basicInputAdapterPropertyDtos, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set data to a publisher dto and deploy dto through a stub
|
||||
*
|
||||
@ -436,7 +488,8 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
private void deployPublisher(Adapter publisher, boolean customMapping,
|
||||
AdapterConfiguration adapterConfiguration)
|
||||
throws RemoteException, UserStoreException, JWTClientException {
|
||||
EventPublisherAdminServiceStub eventPublisherAdminServiceStub = DeviceMgtAPIUtils.getEventPublisherAdminServiceStub();
|
||||
EventPublisherAdminServiceStub eventPublisherAdminServiceStub = DeviceMgtAPIUtils
|
||||
.getEventPublisherAdminServiceStub();
|
||||
try {
|
||||
String publisherName = publisher.getAdapterName();
|
||||
String adapterType = publisher.getAdapterType().toStringFormatted();
|
||||
@ -451,53 +504,65 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
BasicOutputAdapterPropertyDto[] basicOutputAdapterPropertyDtos =
|
||||
addPublisherConfigToDto(adapterProperties);
|
||||
|
||||
AdapterMappingConfiguration adapterMappingConfiguration = adapterConfiguration.getAdapterMappingConfiguration();
|
||||
MessageFormat messageFormat = adapterMappingConfiguration.getMessageFormat();
|
||||
if (!messageFormat.toString().equals("wso2event")) {
|
||||
if (!messageFormat.toString().equals("map")) {
|
||||
if (messageFormat.toString().equals("xml")) {
|
||||
eventPublisherAdminServiceStub.deployXmlEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, customMapping);
|
||||
} else if (messageFormat.toString().equals("text")) {
|
||||
eventPublisherAdminServiceStub.deployTextEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, customMapping);
|
||||
if (customMapping) {
|
||||
AdapterMappingConfiguration adapterMappingConfiguration = adapterConfiguration
|
||||
.getAdapterMappingConfiguration();
|
||||
MessageFormat messageFormat = adapterMappingConfiguration.getMessageFormat();
|
||||
if (!messageFormat.toString().equals("wso2event")) {
|
||||
if (!messageFormat.toString().equals("map")) {
|
||||
if (messageFormat.toString().equals("xml")) {
|
||||
eventPublisherAdminServiceStub.deployXmlEventPublisherConfiguration(
|
||||
publisherName, eventStreamWithVersion, adapterType
|
||||
, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, true);
|
||||
} else if (messageFormat.toString().equals("text")) {
|
||||
eventPublisherAdminServiceStub.deployTextEventPublisherConfiguration(
|
||||
publisherName, eventStreamWithVersion, adapterType
|
||||
, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, true);
|
||||
} else {
|
||||
eventPublisherAdminServiceStub.deployJsonEventPublisherConfiguration(
|
||||
publisherName, eventStreamWithVersion, adapterType
|
||||
, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, true);
|
||||
}
|
||||
} else {
|
||||
eventPublisherAdminServiceStub.deployJsonEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, adapterMappingConfiguration.getInputMappingString()
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, customMapping);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] inputMappingPropertyDtos =
|
||||
addPublisherMappingToDto(
|
||||
adapterMappingConfiguration.getInputMappingProperties()
|
||||
);
|
||||
eventPublisherAdminServiceStub.deployMapEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicOutputAdapterPropertyDtos, true);
|
||||
}
|
||||
} else {
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] inputMappingPropertyDtos =
|
||||
addPublisherMappingToDto(
|
||||
adapterMappingConfiguration.getInputMappingProperties()
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[]
|
||||
correlationMappingPropertyDtos = addPublisherMappingToDto
|
||||
(
|
||||
adapterMappingConfiguration.getCorrelationMappingProperties()
|
||||
);
|
||||
eventPublisherAdminServiceStub.deployMapEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, inputMappingPropertyDtos
|
||||
, basicOutputAdapterPropertyDtos, customMapping);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[]
|
||||
metaMappingPropertyDtos = addPublisherMappingToDto
|
||||
(
|
||||
adapterMappingConfiguration.getMetaMappingProperties()
|
||||
);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[]
|
||||
payloadMappingPropertyDtos = addPublisherMappingToDto
|
||||
(
|
||||
adapterMappingConfiguration.getPayloadMappingProperties()
|
||||
);
|
||||
eventPublisherAdminServiceStub.deployWSO2EventPublisherConfiguration(
|
||||
publisherName, eventStreamWithVersion, adapterType, metaMappingPropertyDtos
|
||||
, correlationMappingPropertyDtos, payloadMappingPropertyDtos
|
||||
, basicOutputAdapterPropertyDtos, true
|
||||
, eventStreamWithVersion);
|
||||
}
|
||||
} else {
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] correlationMappingPropertyDtos =
|
||||
addPublisherMappingToDto(
|
||||
adapterMappingConfiguration.getCorrelationMappingProperties()
|
||||
);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] metaMappingPropertyDtos =
|
||||
addPublisherMappingToDto(
|
||||
adapterMappingConfiguration.getMetaMappingProperties()
|
||||
);
|
||||
org.wso2.carbon.event.publisher.stub.types.EventMappingPropertyDto[] payloadMappingPropertyDtos =
|
||||
addPublisherMappingToDto(
|
||||
adapterMappingConfiguration.getPayloadMappingProperties()
|
||||
);
|
||||
eventPublisherAdminServiceStub.deployWSO2EventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, metaMappingPropertyDtos
|
||||
, correlationMappingPropertyDtos, payloadMappingPropertyDtos
|
||||
, basicOutputAdapterPropertyDtos, customMapping
|
||||
, eventStreamWithVersion);
|
||||
deployPublisherWithoutMapping(publisherName, eventStreamWithVersion, adapterType
|
||||
, eventPublisherAdminServiceStub, basicOutputAdapterPropertyDtos);
|
||||
}
|
||||
|
||||
} finally {
|
||||
@ -505,6 +570,49 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To deploy publisher if custom mapping is false
|
||||
*
|
||||
* @param publisherName Name of the publisher
|
||||
* @param eventStreamWithVersion Attached event stream of the publisher
|
||||
* @param adapterType Adapter type name
|
||||
* @param eventPublisherAdminServiceStub Stub to deploy publisher
|
||||
* @param basicOutputAdapterPropertyDtos DTO to attach publisher data
|
||||
* @throws RemoteException Exception that may occur during a remote method call
|
||||
*/
|
||||
private void deployPublisherWithoutMapping(String publisherName, String eventStreamWithVersion
|
||||
, String adapterType, EventPublisherAdminServiceStub eventPublisherAdminServiceStub
|
||||
, BasicOutputAdapterPropertyDto[] basicOutputAdapterPropertyDtos)
|
||||
throws RemoteException {
|
||||
switch (adapterType) {
|
||||
case "wso2event":
|
||||
case "ui":
|
||||
case "secured-websocket":
|
||||
eventPublisherAdminServiceStub.deployWSO2EventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, null, null, basicOutputAdapterPropertyDtos
|
||||
, false, eventStreamWithVersion);
|
||||
break;
|
||||
case "soap":
|
||||
eventPublisherAdminServiceStub.deployXmlEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, false);
|
||||
break;
|
||||
case "cassandra":
|
||||
case "rdbms":
|
||||
eventPublisherAdminServiceStub.deployMapEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, basicOutputAdapterPropertyDtos, false);
|
||||
break;
|
||||
default:
|
||||
eventPublisherAdminServiceStub.deployTextEventPublisherConfiguration(publisherName
|
||||
, eventStreamWithVersion, adapterType, null
|
||||
, basicOutputAdapterPropertyDtos, eventStreamWithVersion
|
||||
, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish a siddhi execution plan using a stub
|
||||
*
|
||||
@ -516,9 +624,9 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
* @throws JWTClientException Exception that may occur during connecting to client store
|
||||
* @throws InvalidExecutionPlanException Exception that may occur if execution plan validation fails
|
||||
*/
|
||||
private void publishSiddhiExecutionPlan(String name, boolean isEdited,
|
||||
String plan)
|
||||
throws RemoteException, UserStoreException, JWTClientException {
|
||||
private void deploySiddhiExecutionPlan(String name, boolean isEdited, String plan)
|
||||
throws RemoteException, UserStoreException, JWTClientException,
|
||||
InvalidExecutionPlanException {
|
||||
EventProcessorAdminServiceStub eventProcessorAdminServiceStub = null;
|
||||
try {
|
||||
eventProcessorAdminServiceStub = DeviceMgtAPIUtils.getEventProcessorAdminServiceStub();
|
||||
@ -530,10 +638,7 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
eventProcessorAdminServiceStub.editActiveExecutionPlan(plan, name);
|
||||
}
|
||||
} else {
|
||||
ErrorDTO errorDTO = new ErrorDTO();
|
||||
errorDTO.setMessage(validationResponse);
|
||||
log.error(validationResponse);
|
||||
throw new InvalidExecutionPlanException(errorDTO);
|
||||
throw new InvalidExecutionPlanException(validationResponse);
|
||||
}
|
||||
} finally {
|
||||
cleanup(eventProcessorAdminServiceStub);
|
||||
@ -541,20 +646,19 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
}
|
||||
|
||||
/**
|
||||
* This will set payload of event attribute's mapping to the DTO
|
||||
* Validate stream properties
|
||||
*
|
||||
* @param attributes list of event attributes
|
||||
* @return DTO with all the event attributes
|
||||
* @param stream EventStream object
|
||||
*/
|
||||
private EventStreamAttributeDto[] addEventAttributesToDto(List<Attribute> attributes) {
|
||||
EventStreamAttributeDto[] eventStreamAttributeDtos = new EventStreamAttributeDto[attributes.size()];
|
||||
for (Attribute attribute : attributes) {
|
||||
EventStreamAttributeDto eventStreamAttributeDto = new EventStreamAttributeDto();
|
||||
eventStreamAttributeDto.setAttributeName(attribute.getName());
|
||||
eventStreamAttributeDto.setAttributeType(attribute.getType().toString());
|
||||
|
||||
private void validateStreamProperties(EventStream stream) throws BadRequestException {
|
||||
if ((stream.getMetaData() == null || stream.getMetaData().isEmpty()) &&
|
||||
(stream.getCorrelationData() == null || stream.getCorrelationData().isEmpty()) &&
|
||||
(stream.getPayloadData() == null || stream.getPayloadData().isEmpty())) {
|
||||
String errMsg = String.format("Failed to validate Stream property attributes of %s:%s. " +
|
||||
"Stream mapping can't be null or empty",
|
||||
stream.getName(), stream.getVersion());
|
||||
throw new BadRequestException(errMsg);
|
||||
}
|
||||
return eventStreamAttributeDtos;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -562,13 +666,11 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
*
|
||||
* @param adapterProperties Adapter payload attributes
|
||||
*/
|
||||
private void validateAdapterProperties(List<AdapterProperty> adapterProperties) {
|
||||
if (adapterProperties.isEmpty()) {
|
||||
String errMsg = "Invalid payload: event property attributes invalid!!!";
|
||||
ErrorResponse errorResponse = new ErrorResponse();
|
||||
errorResponse.setMessage(errMsg);
|
||||
log.error(errMsg);
|
||||
throw new BadRequestException(errorResponse);
|
||||
private void validateAdapterProperties(List<AdapterProperty> adapterProperties)
|
||||
throws BadRequestException {
|
||||
if (adapterProperties == null) {
|
||||
String errMsg = "Failed to validate adapter attributes. Adapter attributes can't be null";
|
||||
throw new BadRequestException(errMsg);
|
||||
}
|
||||
}
|
||||
|
||||
@ -583,25 +685,51 @@ public class AnalyticsArtifactsManagementServiceImpl
|
||||
*
|
||||
* @param adapterMappingConfiguration Adapter mapping attributes
|
||||
*/
|
||||
private void validateAdapterMapping(AdapterMappingConfiguration adapterMappingConfiguration) {
|
||||
|
||||
if (adapterMappingConfiguration.getInputMappingString() == null &&
|
||||
(adapterMappingConfiguration.getInputMappingProperties().isEmpty() &&
|
||||
adapterMappingConfiguration.getNamespaceMappingProperties().isEmpty()) &&
|
||||
(
|
||||
adapterMappingConfiguration.getCorrelationMappingProperties().isEmpty() &&
|
||||
adapterMappingConfiguration.getPayloadMappingProperties().isEmpty() &&
|
||||
adapterMappingConfiguration.getMetaMappingProperties().isEmpty()
|
||||
)
|
||||
|| adapterMappingConfiguration.getMessageFormat() == null) {
|
||||
String errMsg = "Invalid payload: event mapping attributes invalid!!!";
|
||||
ErrorResponse errorResponse = new ErrorResponse();
|
||||
errorResponse.setMessage(errMsg);
|
||||
log.error(errMsg);
|
||||
throw new BadRequestException(errorResponse);
|
||||
private void validateAdapterMapping(AdapterMappingConfiguration adapterMappingConfiguration)
|
||||
throws BadRequestException {
|
||||
if (adapterMappingConfiguration == null) {
|
||||
String errMsg = "Failed to validate adapter mapping attributes. " +
|
||||
"Adapter mapping configuration can't be null";
|
||||
throw new BadRequestException(errMsg);
|
||||
} else if (adapterMappingConfiguration.getMessageFormat() == null ||
|
||||
((adapterMappingConfiguration.getInputMappingString() == null)
|
||||
&& (adapterMappingConfiguration.getInputMappingProperties() == null ||
|
||||
adapterMappingConfiguration.getInputMappingProperties().isEmpty())
|
||||
&& (adapterMappingConfiguration.getNamespaceMappingProperties() == null ||
|
||||
adapterMappingConfiguration.getNamespaceMappingProperties().isEmpty()))
|
||||
&&
|
||||
((adapterMappingConfiguration.getCorrelationMappingProperties() == null ||
|
||||
adapterMappingConfiguration.getCorrelationMappingProperties().isEmpty())
|
||||
&& (adapterMappingConfiguration.getPayloadMappingProperties() == null ||
|
||||
adapterMappingConfiguration.getPayloadMappingProperties().isEmpty())
|
||||
&& (adapterMappingConfiguration.getMetaMappingProperties() == null ||
|
||||
adapterMappingConfiguration.getMetaMappingProperties().isEmpty()))
|
||||
) {
|
||||
String errMsg = "Failed to validate adapter mapping attributes. " +
|
||||
"Adapter mapping configuration invalid";
|
||||
ErrorDTO errorDTO = new ErrorDTO();
|
||||
errorDTO.setMessage(errMsg);
|
||||
throw new BadRequestException(errorDTO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This will set payload of event attribute's mapping to the DTO
|
||||
*
|
||||
* @param attributes list of event attributes
|
||||
* @return DTO with all the event attributes
|
||||
*/
|
||||
private EventStreamAttributeDto[] addEventAttributesToDto(List<Attribute> attributes) {
|
||||
EventStreamAttributeDto[] eventStreamAttributeDtos = new EventStreamAttributeDto[attributes.size()];
|
||||
for (int i = 0; i < attributes.size(); i++) {
|
||||
EventStreamAttributeDto eventStreamAttributeDto = new EventStreamAttributeDto();
|
||||
eventStreamAttributeDto.setAttributeName(attributes.get(i).getName());
|
||||
eventStreamAttributeDto.setAttributeType(attributes.get(i).getType().toString());
|
||||
eventStreamAttributeDtos[i] = eventStreamAttributeDto;
|
||||
}
|
||||
return eventStreamAttributeDtos;
|
||||
}
|
||||
|
||||
/**
|
||||
* This will set payload of receiver attributes to the DTO
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user